- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
哈尔滨工业大学
数据挖掘理论与算法实验报告
(2016年度秋季学期)
课程编码 S1300019C
授课教师 邹兆年
学生姓名 汪 瑞
学 号 16S003011
学 院 计算机学院
一、实验内容
决策树算法是一种有监督学习的分类算法;kmeans是一种无监督的聚类算法。
本次实验实现了以上两种算法。在决策树算法中采用了不同的样本划分方式、不同的分支属性的选择标准。在kmeans算法中,比较了不同初始质心产生的差异。
本实验主要使用python语言实现,使用了sklearn包作为实验工具。
二、实验设计
1.决策树算法
1.1读取数据集
本次实验主要使用的数据集是汽车价值数据。有6个属性,命名和属性值分别如下:
buying: vhigh, high, med, low.
maint: vhigh, high, med, low.
doors: 2, 3, 4, 5more.
persons: 2, 4, more.
lug_boot: small, med, big.
safety: low, med, high.
分类属性是汽车价值,共4类,如下:
class values:unacc, acc, good, vgood
该数据集不存在空缺值。
由于sklearn.tree只能使用数值数据,因此需要对数据进行预处理,将所有标签类属性值转换为整形。
1.2数据集划分
数据集预处理完毕后,对该数据进行数据集划分。数据集划分方法有hold-out法、k-fold交叉验证法以及有放回抽样法(boottrap)。
Hold—out法在pthon中的实现是使用如下语句:
其中,cv是sklearn中cross_validation包,train_test_split方法的参数分别是数据集、数据集大小、测试集所占比、随机生成方法的可选项。该方法分别返回,训练集、测试集在原数据集中的序号以及对应的所属类别的序号。
K-flod法实现较为简单。如下:
xl为数据集大小,n_folds为划分若干折,一般可用10-fold验证。返回值loo中是包含两个元组的列表,这两个元组分别是train_index和test_index的列表。
Bootstrap法实现如下,其与k-fold方法类似。
1.3创建和训练决策树及评价
数据集划分完毕后,就需要建立决策树并结合训练集来训练决策树。
建立决策树只需要调用tree.DecisionTreeClassifier()方法即可。它有一些参数可以根据需求进行设置。
Criterion选项,默认是“Gini”,表示决策树非叶节点划分依据是根据Gini指数表示划分的纯度。可选值有“entropy”,用信息增益来衡量划分的优劣。Sklearn.tree中没有支持用错分类误差法来衡量节点划分的优劣。
min_samples_split选项,是指一个非叶节点继续划分所需要的最小样本数,如果该节点下的待分样本小于该值,则终止该节点划分,节点被标记为占多少的类,形成叶节点。它属于提前抑制决策树增长的方法。
max_depth选项,是指该训练决策树时允许达到的最大深度。默认深度是一直划分到节点纯净或者达到min_samples_split的要求。因此该选项是实验中有必要进行设置的项,以控制决策树过拟合,它属于前剪枝的操作。
min_impurity_split选项,是指划分某节点时所需要的最低不纯度阈值,如果某一节点划分的不纯度低于该值,表明该节点已经可以被接受成为叶节点,无须继续划分。它也是一种提前停止增长的策略。
决策树建立和训练的具体实例如下(用10-fold做例子):
由于实验采用的是10-fold交叉验证,因此最终准确率应该是每一折准确率的平均值。上述代码也包含了训练决策树和使用测试集验证决策树的代码,即:
该实验的最终准确率约是:test right rate: 0.8165
1.4基于树桩的Adaboost算法
在python中同样也实现了adaboost算法,需要使用AdaBoostClassifier()方法构造它。它有若干可选项:
base_estimator是设置adaboost算法使用的弱分类器,默认是一层决策树,即树桩。
n_estimators是设置迭代次数,每一次迭代时该算法选择数据集中的某一特征作为树桩的分类节点,训练集中被错误分类的记录将被增加权重,正确分类的记录将被降低权重,权重更新后的数据集将用于下一次迭代。初始时各个记录权重均为1/n,n为记录数目。
主要的实
您可能关注的文档
最近下载
- 大学东南大学vlsi设计基础数字集成电路_2016vlsi1-课程介绍for mooc.pdf VIP
- 医美网络咨询与沟通(医美咨询师课件).pptx
- 2025中国华电集团有限公司校招+社招笔试参考题库附带答案详解.docx
- 【打印】人教版小学3-6年级英语词汇表.pdf VIP
- 液化气体钢瓶充装前后检查及充装记录.docx VIP
- 2025年高考数学新定义题型:集合下的新定义(四大题型)学生版+解析.pdf VIP
- 科室医疗质量自查工作制度.docx VIP
- 江苏省2017届九年级化学下学期第二次模拟试题.pdf VIP
- 广州市公务车维修项目工时费明细表.pdf VIP
- 内蒙古自治区点石联考2026届高三上学期9月份联合考试政治试卷(含答案).docx VIP
文档评论(0)