全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
1830 1
2014-05-19
                           三国英雄人物分析
一部三国几多痴迷,一段历史荡气回肠。
滚滚长江东逝水,浪花淘尽英雄。是非成败转头,空青山依旧在,几度夕阳红。
白发渔樵江渚上,惯看秋月春风。一壶浊酒喜相逢,古今多少事,都付笑谈中。                                                                                                                                                   
    三国志出到了12版本,游戏内容的变化像是一个DEMO,不过却找到了三国志12中各个武将的设定值,又恰逢老虎老师逼迫诸同学写大作业,不如试试看能否用老虎老师教的技能去品味一下日本人对三国的态度吧!
1、  问题背景
三国中武将人物众多,三国志中更是通过繁多的数据去描述每个武将。但是一一牢记些指标相当费时、费力,而且仅仅停留在对于英雄人物在表面上的品头论足有些显得过于无趣。是否能找到一个隐藏在众多数据指标之后的综合性指标呢?
三国中乱世风云,难道是能力决定个人成败吗?众多能力中又有什么是保命神功呢?
2、  数据获取
通过网络得到了三国志12全英雄武将的各项指标数据。删除掉其中的日本战国武将和隐藏、自制武将。
3、  数据信息描述
由于本人数据处理能力不足,仅仅在各种技能中挑了部分能够处理的数据进行分析。
选择的指标:
統率:带领军队的作战能力。
武力:单枪匹马的作战能力。
智力:描述一名武将的智力和知识水平,作战中的发动计谋和躲避计谋的能力。
政治:描述一名武将的行政、外交能力,对于建设的能力。
以上指标的取值为0~100,值越高能力越强。
勇猛:类似于性格,描述一名武将是否有和人单挑的冲动。取值为0~3,越高越冲动。
义理:描述一名武将的忠诚模式。取值为0~4,越高越忠诚。
性别:1为男,0为女。
死因:1为自然死,0为不自然死。
4、  因子分析
制作数据文件为sg12_data.txt,其中各变量对应关系如下:


变量 变量名
X 武将序号
X1 性别
X2 统率
X3 武力
X4 智力
X5 政治
X6 勇猛
X7 义理
Y 死因


#读取数据
rd <- read.delim("sg12_data.txt")
#为了方便使用,制作df数据框
df<-data.frame(
X1=rd$X1,X2=rd$X2,X3=rd$X3,X4=rd$X4,X5=rd$X5,X6=rd$X6,X7=rd$X7);
从上面的分布情况可以看出,表示基本能力的四维属性,大部分集中在 60到80这个区域 ,最多的是在70到80之间,说明各位英雄的平均能力还是不错的。可以看出冷静的英雄占了大多数。义理是一个正态分布,看来日本开发商还是真的很用心哦,占大多数的人代表了社会上的普遍的价值观,在普世价值观之外的两个极端,拥有天使和恶魔习性的人永远是少数的!
原始变量之间有较强的相关性,进行因子分析是合适的。
#进行因子分析,只使用X2到X7变量得到的效果最好
> factanal(~X2+X3+X4+X5+X6+X7, factors=3, data=df)
   Factor1 Factor2 Factor3
X2  0.869   0.138   0.112
X3  0.916  -0.316         
X4          0.900   0.165
X5 -0.232   0.914   0.206
X6  0.644  -0.458         
X7  0.112   0.226   0.965
               Factor1 Factor2 Factor3
Cumulative Var   0.346   0.684   0.853
三个因子的贡献率达到了85.3%。
第一个因子,表示统率、武力和勇猛,政治是反向的,表示一个武将的上阵杀敌的能力。
第二个因子 ,表示智力和政治,勇猛和武力是反向,表示一个武将的运筹帷幄的能力。决定大局的时候冷静很重要啊!而且看来貌似头脑和力量很难兼得啊!
第三个因子,表示义理,表示一个 武将的鞠躬尽瘁的理想程度。忠诚很重要啊!
当需要战将的话,选择第一个因子大的;需要智谋之士的话,选择第二个因子大的;需要忠义之士时,选择第三个因子大的。

5、  回归分析
通过X1到X7变量,对Y做回归分析。
#简单的做个线性回归看看!
lm.sol<-lm(Y~X1+X2+X3+X4+X5+X6+X7, data=rd)
lm.step<-step(lm.sol)
#通过逐步回归得到的变量是1、5、6
> lm.sol1<-lm(Y ~ X1+ X5 + X6, data=rd)
> summary(lm.sol1)
Coefficients:
             Estimate Std. Error t value Pr(>|t|)   
(Intercept)  0.296409   0.107298   2.762  0.00596 **
X1          -0.227800   0.083220  -2.737  0.00643 **
X5           0.008359   0.001050   7.964 1.27e-14 ***
X6          -0.039199   0.022579  -1.736  0.08321 .  
Multiple R-squared: 0.223,      Adjusted R-squared: 0.218
F-statistic: 44.96 on 3 and 470 DF,  p-value: < 2.2e-16

#不带性别
> glm.sol<-glm(Y~X2+X3+X4+X5+X6+X7, family=binomial, data=rd)
> summary(glm.sol)
#带性别
> glm.sol<-glm(Y~X1+X2+X3+X4+X5+X6+X7, family=binomial, data=rd)
> summary(glm.sol)
这两个哪个会更好呢……

从上面的回归方程来看,我选择的几个变量不能很好的预测死因,果然是人在江湖飘,谁能不挨刀啊,若想混到金盆洗手得个善终,别管本事高低,也必须虔诚的祈求命运之神的眷顾啊!不过从上面的方程中,仿佛可以看到多懂点建设国家的能力,遇到事情多多冷静的思考下,对于人生还是有些意义的哦!
6、  存在的问题
由于选择的变量比较少,所以没有太 深入的分析游戏中设定的更细处,导致无法对死因做一个比较好的预测。没有考虑武将技能以及四维属性达到一定值后的附加技能,所以也没有做对于神级武将的分析。没有处理好武将的官职数据,无法更好的说明因子的实际效用……


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-5-19 11:13:34
有趣有趣。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群