机器学习-决策树

Posted yifengjianbai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习-决策树相关的知识,希望对你有一定的参考价值。

决策树算法是机器学习中十分重要的算法,它的思想很简单,模拟了人的决策思想,就是根据一些条件做一些决策。比如,我们决策今天是否要去逛街,要看天气好不好、心情好不好、有没有妹子陪等等。

常见的决策树有ID3、C4.5和CART决策树,主要区别是在选择相关因数的算法不同,前两者和信息增益有关、后一种是与基尼指数有关。具体关于这几种决策树的详细信息就不说明了,大家可以网上看看,我这里主要是以代码实现为主以及一些代码的说明。

这次代码还是使用sklearn的的数据吧,以iris花为列子。

#第三天决策树
from sklearn import tree
from sklearn.datasets import load_iris
from sklearn.metrics import classification_report,confusion_matrix
from sklearn.model_selection import train_test_split

#我的例子主要是以代码实现和对其中的说明为主
#如果想了解具体的算法原理网上有很多,我也不想复制粘贴了
#这里还是用iris花作为例子
iris_data = load_iris()[data]
iris_label = load_iris()[target]

#将数据分为训练集和测试集合,test_size表示测试集锁占的比例
#得到的四个值分别是训练集的特征、测试集的特征、训练集的label、测试集的label
train_x,test_x,train_y,test_y = train_test_split(iris_data,iris_label,test_size=0.3)

#ID3和C4.5就是基于信息增益和信息增益率的,cart决策树则是基于基尼指数的
#criterion默认为gini指数,我们这里用entropy表示用信息增益
clf = tree.DecisionTreeClassifier(criterion=entropy)

#训练和预测
clf.fit(train_x,train_y)
predict_y = clf.predict(test_x)

#预测结果打印,上一篇逻辑回归和线性回归中有解释classification_report的结果说明
print(classification_report(test_y,predict_y))

预测结果分析如下:

            precision    recall    f1-score   support

0              1.00      1.00      1.00        18
1              0.93      0.93      0.93        15
2              0.92      0.92      0.92        12

avg / total    0.96      0.96      0.96        45

机器学习-逻辑回归和线性回归中我已经说明过这个结果的含义了。

这四列分别表示准确率、召回率、F1分数以及与数量,三行分别是每个一个类别的预测数据。

之前还些了一篇ID3决策树算法,主要讲了一下原理并且用matlab实现了一下算法。

以上是关于机器学习-决策树的主要内容,如果未能解决你的问题,请参考以下文章

决策树代码《机器学习实战》

机器学习-决策树

机器学习-------决策树算法

机器学习-决策树

机器学习算法学习02:决策树的学习以及应用决策树解决Cora数据集论文分类问题

《全网最强》详解机器学习分类算法之决策树(附可视化和代码)