Fork me on GitHub

python使用sklearn实现决策树

python使用sklearn实现决策树

什么是决策树

在机器学习中,决策树是一个预测模型,代表的是对象属性与对象值之间的一种映射关系。通过学习大量样本数据得到一个分类器,这个分类器能够对新出现的对象给出正确的分类。

举个例子,outlook的被划分为上图中三个组:晴天,多云天和雨天。
如果天气是多云,人们总是选择玩高尔夫,而只有少数很着迷的甚至在雨天也会玩。
接下来我们把晴天组的分为两部分,我们发现人们不喜欢湿度高于70%的天气;如果雨天还有风的话,就不会有人打了。

安装sklearn

首先我们使用pip安装sklearn (scikit-learn)

1
pip install scikit-learn

等待安装完成

决策树实现程序实例

接下来,我们来实现一个判断性别的决策树。
这里features是样本特征,总共为5个样本数据,
拿第一个数据[165,25,0]举例子,165代表的是身高,25代表的是头发长度,0代表的有无胡子(0为没有,1为有)。
我们使用身高、头发长度以及腰围来作为我们判断性别的特征,
labels就是标签,规定了0代表性别为女,1代表性别为男。

1
2
3
4
5
6
7
from sklearn.tree import DecisionTreeClassifier

features = [[165,25,0],[170,11,1],[178,8,1],[188,10,0],[168,22,0]]
labels = [0,1,1,1,0]
clf = DecisionTreeClassifier()
clf.fit(features,labels)
print(clf.predict([[181, 14, 0]]))

使用fit()函数来匹配特征和标签,训练分类器clf
这里输出的结果是1,说明决策树认为这个人性别为男。
当然,还可以使用更多的特征,加入样本数据中,样本越多也能作出更准确的判断。
总之,决策树也可以用来解决一些实际问题。