实验目的:
1.学习使用Microsoft NaïveBayes创建OLAP数据挖掘模型。
2.深入理解贝叶斯分类的数据挖掘意义。
实验步骤:
(1)打开程序->Microsoft SQL Server 2008->SQL Server Business Intelligence Development Studio,启动SQL Server 2008 BI的开发环境。
(2)在“文件”菜单上,指向“新建”,然后选择“项目”。选中“项目类型”窗格中的“商业智能项目”。选中“模板”窗格中的“Analysis Services项目”。在“名称”框中,将新项目重命名,单击“确定”。
(3)参照实验一具体方法,在“解决方案资源管理器”中“新建数据源”。
(4)参照实验一具体方法,在解决方案资源管理器中“新建数据源视图”。
(5)参照实验一具体方法,在“解决方案资源管理器”中“新建挖掘结构”。注意在“创建数据挖掘结构”页上,选择“MicrosoftNaïveBayes”。
如图所示:
在进行类型选择的时候,发现只能检测的属性的类型有点误差,所以需要手动修改出身、国别、身份的属性类别为离散的,其他输入属性都为可离散化的属性类型。
在这里我使用的是测试集为30%的比例。
(6)在解决方案资源管理器中,右键单击创建的挖掘结构,选择“处理”该挖掘结构;在“处理挖掘结构”页面中单击“运行”按钮,完成数据挖掘过程。
(7)通过“挖掘模型查看器”、“挖掘准确性图表”和“挖掘模型预测”查看挖掘结果,并能通过模型预测未知数据的结果。
点击依赖网络,根据实验结果的观察,发现政治、统御、忠诚、武力、智慧都是输入属性,可预测的输出属性只有身份。
通过点击查找节点(望远镜),选择武力对身份预测的颜色变化,可以清楚的看到武力对身份的影响。
通过点击属性配置文件,可以观察到每个输入属性和每个输出属性的关系。
比如说看到统御对身份预测的影响,结果可以看到,统御这个属性对身份1和身份2的预测能力比较好,可以清楚的区分出几个身份,就拿统御来说就可以清楚的分辨出身份1和身份2,因为色块占的比重区别很大。
对挖掘模型的预测中,发现贝叶斯算法和决策树算法有点不同,连续的属性不能进行自动输入值,而是一个区间的值,预测的步骤相同。
可以看到预测为身份1
可以看到提升图中预测的准确率可以达到73%,比贝叶斯算法准确率高。
通过观察属性特征,对身份值为3即文官来说,属性忠诚、政治、智慧的概率达到了50%以上,说明对文官来说这三个属性是决定属性。
通过观察属性对比,当武力值大于86、统御值大于83明显倾向于身份为1即将军。
其他属性倾向不明显或者趋向于其他状态。
观察分类矩阵可以看到对角线上是准确的值,其他部分就是不准确的预测点。
在这里可以设置算法的参数,根据需要对输出属性、输入属性以及状态值得设置,但是一般不进行最后一个参数的修改。
实验总结:
对于朴素贝叶斯算法,我在实验的过程中可以感觉到决策树和贝叶斯算法的一些区别,可以看到预测的准确率要比决策树的准确率高很多,离群点对于整体影响并不大。但是缺点就是在实际生活中,各属性一般情况下都会有关联,不会绝对的独立。在属性的特征和属性对比图上可以很清晰的属性与预测部分的关系。