《BI那点儿事》Microsoft 决策树算法——找出三国武将特性分布,献给广大的三国爱好者们

根据游戏《三国志11》武将数据,利用决策树分析,找出三国武将特性分布。其中变量包括统率、武力、智力、政治、魅力、身分。
变量说明:
统率:武将带兵出征时的部队防御力。统帅越高受到普通攻击与兵法攻击越少。
武力:武将带兵出征时的部队攻击力,武力越高发动兵法或者普通攻击时对地方部队的伤害就越高;并且当发动单挑时双方武将武力值相差越少则成功率越高,同时武力也代表单挑时的武将攻击力。
智力:武将发动部队计略时的效果与成功率,当武将智力高时则可以降低中计的几率;同时智力代表军师能力。
政治:武将发展内政时的能力,内政越高则生产兵器、买卖粮草、建造建筑时间等内政系都有优势。并且,当搜索人才和与敌方势力交涉时,政治也有至关重要的作用。
魅力:武将在登用在野或者其他势力武将时的能力,魅力越高则成功几率越高。并且,当武将征兵时,魅力也将影响其效果。

三国志每个人物都有一定的身分,除君主,还有侍中、军师、将军、武官和文官。

将军需要统帅武力相加大于150才能封;
军师要求智力90以上并且和政治相加大于160;
侍中需要政治85,并且和智力相加应不小于150(往往成为事实上的宰相);
为简化验证:我们设置三个身份:将军、军师、其他;


序号


身份


要求


人数


1


将军


将军需要统帅武力相加大于150才能封


112


2


军师


军师要求智力90以上并且和政治相加大于160;


20


3


其他


538

准备数据:

ALTER TABLE FactSanguo11 ADD [身分] NVARCHAR(255) NULL

-- 将军 将军需要统帅武力相加大于150才能封
SELECT  *
FROM    FactSanguo11
WHERE   [统率] + [武力] > 150
ORDER BY [统率] + [武力] DESC

UPDATE  FactSanguo11
SET     [身分] = N‘将军‘
WHERE   [统率] + [武力] > 150

SELECT  *
FROM    FactSanguo11
WHERE   [身分] = N‘将军‘
ORDER BY [统率] + [武力] DESC

-- 军师 军师要求智力90以上并且和政治相加大于160
SELECT  *
FROM    FactSanguo11
WHERE   ( [智力] + [政治] > 160 )
        AND ( [智力] >= 90 )
ORDER BY [智力] + [政治] DESC

UPDATE  FactSanguo11
SET     [身分] = N‘军师‘
WHERE   ( [智力] + [政治] > 160 )
        AND ( [智力] >= 90 )

SELECT  *
FROM    FactSanguo11
WHERE   [身分] = N‘军师‘
ORDER BY [智力] + [政治] DESC        

UPDATE  FactSanguo11
SET     [身分] = N‘其他‘
WHERE   [身分] IS NULL

SELECT  [身分] ,
        COUNT(*)
FROM    FactSanguo11
GROUP BY [身分]     

SELECT  *
FROM    FactSanguo11

分析数据:

--统率前10:司马懿、周瑜、曹操、陆逊、关羽、邓艾、孙坚、张辽、孙策、诸葛亮
SELECT TOP 10
        *
FROM    FactSanguo11
ORDER BY 统率 DESC

--武力前10:吕布、张飞、关羽、马超、赵云、许褚、典韦、文丑、庞德、甘宁
SELECT TOP 10
        *
FROM    FactSanguo11
ORDER BY 武力 DESC

--智力前10:诸葛亮、郭嘉、贾诩、庞统、周瑜、司马懿、荀彧、陆逊、荀攸、法正
SELECT TOP 10
        *
FROM    FactSanguo11
ORDER BY 智力 DESC

--政治前10:荀彧、张昭、陈群、张纮、诸葛亮、曹操、司马懿、蒋琬、费祎、夏侯玄
SELECT TOP 10
        *
FROM    FactSanguo11
ORDER BY 政治 DESC

--魅力前10:刘备、张角、曹操、孙权、貂蝉、甄氏、关羽、荀彧、周瑜、刘虞
SELECT TOP 10
        *
FROM    FactSanguo11
ORDER BY 魅力 DESC

--统率武力前10:关羽、吕布、赵云、张辽、马超、孙策、孙坚、张飞、邓艾、甘宁
SELECT TOP 10
        *
FROM    FactSanguo11
WHERE   [统率] + [武力] > 150
ORDER BY [统率] + [武力] DESC

--智力政治前10:诸葛亮、荀彧、司马懿、曹操、周瑜、鲁肃、郭嘉、贾诩、荀攸、庞统
SELECT TOP 10
        *
FROM    FactSanguo11
WHERE   ( [智力] + [政治] > 160 )
        AND ( [智力] >= 90 )
ORDER BY [智力] + [政治] DESC

分析过程:












时间: 2024-10-18 20:49:03

《BI那点儿事》Microsoft 决策树算法——找出三国武将特性分布,献给广大的三国爱好者们的相关文章

《BI那点儿事》Microsoft 决策树算法

Microsoft 决策树算法是由 Microsoft SQL Server Analysis Services 提供的分类和回归算法,用于对离散和连续属性进行预测性建模.对于离散属性,该算法根据数据集中输入列之间的关系进行预测.它使用这些列的值(也称之为状态)预测指定为可预测的列的状态.具体地说,该算法标识与可预测列相关的输入列.例如,在预测哪些客户可能购买自行车的方案中,假如在十名年轻客户中有九名购买了自行车,但在十名年龄较大的客户中只有两名购买了自行车,则该算法从中推断出年龄是自行车购买情

《BI那点儿事—数据的艺术》目录索引

转自:http://www.cnblogs.com/Bobby0322/p/4052495.html 原创·<BI那点儿事—数据的艺术>教程免费发布 各位园友,大家好,我是Bobby,在学习BI和开发的项目的过程中有一些感悟和想法,整理和编写了一些学习资料,本来只是内部学习使用,但为了方便更多的BI开发者,推动BI企业级应用开发,决定整理成一部教程,并在网络上免费发布该教程,希望为BI时代贡献绵薄之力! 本教程是由Bobby参考官方文档,综合市面相关书籍,经过充分的吸收消化,结合开发实践的而创

《BI那点儿事》Microsoft 神经网络算法

原文:<BI那点儿事>Microsoft 神经网络算法 Microsoft神经网络是迄今为止最强大.最复杂的算法.要想知道它有多复杂,请看SQL Server联机丛书对该算法的说明:“这个算法通过建立多层感知神经元网络,建立分类和回归挖掘模型.与Microsoft决策树算法类似,在给定了可预测属性的每个状态时, Microsoft神经网络算法计算输入属性每个可能状态的概率.然后可以用这些概率根据输入属性预测被预测属性的输出.”什么时候用这个算法呢?推荐在其他算法无法得出有意义的结果时再用,如提

《BI那点儿事》Microsoft 线性回归算法

原文:<BI那点儿事>Microsoft 线性回归算法 Microsoft 线性回归算法是 Microsoft 决策树算法的一种变体,有助于计算依赖变量和独立变量之间的线性关系,然后使用该关系进行预测.该关系采用的表示形式是最能代表数据序列的线的公式.例如,以下关系图中的线是数据最可能的线性表示形式. 关系图中的每个数据点都有一个与该数据点与回归线之间距离关联的错误.回归方程式中的系数 a 和 b 可以调整回归线的角度和位置.可以对 a 和 b 进行调整,直到与所有点都关联的错误总数达到最低值

《BI那点儿事》数据挖掘初探

什么是数据挖掘? 数据挖掘(Data Mining),又称信息发掘(Knowledge Discovery),是用自动或半自动化的方法在数据中找到潜在的,有价值的信息和规则. 数据挖掘技术来源于数据库,统计和人工智能. 数据挖掘能够做什么 对企业中产生的大量的数据进行分析,找出其中潜藏的规则更加清晰的了解目前的业务运行状况使得决策者把握未来的决策方向有了科学的依据预测销售额 向特定客户发送邮件 确定可能需要搭售的产品 查找客户将产品放入购物车的顺序序列 ...... 数据挖掘算法数据挖掘是从特定

《BI那点儿事》Microsoft 顺序分析和聚类分析算法

原文:<BI那点儿事>Microsoft 顺序分析和聚类分析算法 Microsoft 顺序分析和聚类分析算法是由 Microsoft SQL Server Analysis Services 提供的一种顺序分析算法.您可以使用该算法来研究包含可通过下面的路径或“顺序”链接到的事件的数据.该算法通过对相同的顺序进行分组或分类来查找最常见的顺序.下面是一些顺序示例: 用来说明用户在导航或浏览网站时产生的点击路径的数据. 用来说明客户将商品添加到在线零售商的购物车中的顺序的数据. 该算法在许多方面都

《BI那点儿事》Microsoft 聚类分析算法——三国人物身份划分

什么是聚类分析? 聚类分析属于探索性的数据分析方法.通常,我们利用聚类分析将看似无序的对象进行分组.归类,以达到更好地理解研究对象的目的.聚类结果要求组内对象相似性较高,组间对象相似性较低.在三国数据分析中,很多问题可以借助聚类分析来解决,比如三国人物身份划分.聚类分析的基本过程是怎样的?  选择聚类变量 在分析三国人物身份的时候,我们会根据一定的假设,尽可能选取对角色身份有影响的变量,这些变量一般包含与身份密切相关的统率.武力.智力.政治.魅力.特技.枪兵.戟兵.弩兵.骑兵.兵器.水军等.但是

scikit-learn决策树算法类库使用小结

参考:http://www.cnblogs.com/pinard/p/6056319.html 之前对决策树的算法原理做了总结,包括决策树算法原理(上)和决策树算法原理(下).今天就从实践的角度来介绍决策树算法,主要是讲解使用scikit-learn来跑决策树算法,结果的可视化以及一些参数调参的关键点. 1. scikit-learn决策树算法类库介绍 scikit-learn决策树算法类库内部实现是使用了调优过的CART树算法,既可以做分类,又可以做回归.分类决策树的类对应的是Decision

决策树算法

利用ID3算法来判断某天是否适合打网球. (1)类别属性信息熵的计算由于未分区前,训练数据集中共有14个实例, 其中有9个实例属于yes类(适合打网球的),5个实例属于no类(不适合打网球), 因此分区前类别属性的熵为: (2)非类别属性信息熵的计算,若先选择Outlook属性. (3)Outlook属性的信息增益为: (4)同理计算出其他3个非类别属性的信息增益,取最大的那个属性作为分裂节点,此例中最大的是Outlook,进而得到如下图所示: (5)上图中,针对sunny中的子训练数据集分支,