数据挖掘之决策树
决策树是一个非参数的监督式学习方法,主要用于分类和回归。算法的目标是通过推断数据特征,学习决策规则从而创建一个预测目标变量的模型。
利用Anaconda sklearn生成决策树并利用决策树进行预测,利用pydotplus来显示
自己创建至少2个向量,每个向量至少1个属性和1个类标号,根据向量生成决策树,并利用该决策树进行预测。如:
from sklearn import tree
X = [[0, 0], [1, 1]]
Y = [0, 1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
clf.predict([[2., 2.]])
clf.predict_proba([[2., 2.]]) #计算属于每个类的概率
根据要求随机生成数据,并构建决策树,并举例预测。
from sklearn import tree
import numpy as np
a = np.random.RandomState()
# 随机数返回32行2列的矩阵 表示32组
X = a.rand(32, 2)
# 从X这个32行2列的矩阵中 取出一行 判断如果和小于1 给Y赋值1 如果和不小于1 给Y赋值0
# 作为输入数据集的标签(正确答案)
Y = [[int(x0 + x1 < 1)] for (x0, x1) in X]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
clf.predict([[2., 2.]])
clf.predict_proba([[2., 2.]]) #计算属于每个类的概率
对鸢尾花数据构建决策树
from sklearn.datasets import load_iris
iris = load_iris()# 从sklearn 数据集中获取鸢尾花数据。
X = iris.data
Y = iris.target
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
clf.predict([[2., 2.,3.,2.]])
clf.predict_proba([[2., 2.,3.,2.]]) #计算属于每个类的概率
其中调用数据的方法如下:
from sklearn.datasets import load_iris
iris = load_iris()# 从sklearn 数据集中获取鸢尾花数据。
另外为了能够直观看到建好的决策树,安装 pydotplus
pip install pydotplus
pydotplus使用方法:
在代码后面引入pydotplus
import pydotplus #引入pydotplus
dot_data = tree.export_graphviz(clf, out_file=None)
graph = pydotplus.graph_from_dot_data(dot_data)
graph.write_pdf("iris.pdf")#将图写成pdf文件
最后可生成pdf文件