|
|
|
|
移动端

3.8 实例详解

《大数据分析:数据挖掘必备算法示例详解》第3章决策树算法,本章重点介绍三个非常经典的决策树算法,分别是 ID3、C45和 CART。在具体讲解本章的算法之前,需要引入信息熵值的概念。本节为实例详解。

作者:张重生来源:机械工业出版社|2017-12-13 17:51

有奖调研 | 1TB硬盘等你拿 AI+区块链的发展趋势及应用调研


3.8 实例详解

本节通过实例向读者介绍 C45算法的调用方法。关于数据集的准备,以及数据集格式的转换,读者可参照 AdaBoost算法的调用实例操作。

首先,需要设置分类器参数如下:

  1.  >>classifiername=′treesJ48′;  
  2. >>classifierparameter={}; 

在本实例中,先采用 C45算法的默认参数进行测试。参数设置完毕后,可以对训练集进行训练,命令如下:

  1. >>ifisempty(classifier(1)parameter)  
  2.  net=trainWekaClassifier(tr,classifier(1)name);  
  3. else  
  4.  net=trainWekaClassifier(tr,classifier(1)name,classifier(1)parameter);  
  5. end 

此时,双击工作区中的变量 “net”,可以看到训练模型详细信息如图 3-2所示。在命令行窗口中输入如下命令,即可得到 C45算法在默认参数下的预测准确率。

  1. >>[predicted,classProbs]=wekaClassify(ts,net);  
  2. >>actual=tsattributeToDoubleArray(classindex-1);  
  3. >>accuracy=sum(actual==predicted)/size(test,1);  
  4. >>predicted=predicted+1; 

可以看出,在默认参数下,C45算法对测试集的预测准确率为 9711%。那么修改C45算法的参数,会得到怎样的训练模型和预测结果呢?在命令行输入如下命令:

  1.  >>classifiername=′treesJ48′;  
  2. >>classifierparameter={‘-U’};  
  3. >>ifisempty(classifier(1)parameter)  
  4. net=trainWekaClassifier(tr,classifier(1)name);  
  5. else  
  6. net=trainWekaClassifier(tr,classifier(1)name,classifier(1)parameter);  
  7. end 

双击工作区中的 “net”,我们发现,使用未修剪过的决策树训练出来的模型与之前的模型 (见图 3-2)相比发生了明显的变化,如图 3-3所示。

输入如下命令计算预测的准确率:

  1.  >>[predicted,classProbs]=wekaClassify(ts,net);  
  2. >>actual=tsattributeToDoubleArray(classindex-1);  
  3. >>accuracy=sum(actual==predicted)/size(test,1);  
  4. >>predicted=predicted+1; 

即可看出在当前参数下,C45算法的预测准确率为 9653%,相比使用默认参数,准确率下降了 058%。


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码

 

51CTO读书频道活动讨论群:365934973
【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Linux安全体系分析与编程

本书选择经典的开放源代码,全面系统地分析了Linux安全机制。本书共有17章,前10章着重介绍了Linux操作系统的安全机制及实现方法,阐述了公...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊