一,决策树概念
通过分支进行判断结果,而这些分支就是特征,如果重要的特征在根节点,就能有效的减少决策次数。所以决策树的问题在于如何高效的构建决策树。
二。 信息论
1.信息熵 -代表信息(结果)的不确定性
2.信息增益 当确定某个特征后,信息熵改变的大小(信息熵-条件熵)
三。sklearn决策树
1 from sklearn.datasets import load_iris 2 from sklearn.model_selection import train_test_split 3 from sklearn.tree import DecisionTreeClassifier,export_graphviz 4 import pydotplus 5 6 def decision_iris(): 7 """ 8 用决策树对鸢尾花进行分类 9 :return: 10 """ 11 #1.获取数据集 12 iris=load_iris() 13 #2.划分数据集 14 x_train,x_test,y_train,y_test=train_test_split(iris.data,iris.target) 15 #3.决策树预估器 16 estimator=DecisionTreeClassifier(criterion="entropy") 17 estimator.fit(x_train,y_train) 18 #4.模型评估 19 y_predict=estimator.predict(x_test) 20 print("y_predict:\n",y_test) 21 print("直接对比真实值和预测值",y_predict==y_test) 22 score=estimator.score(x_test,y_test) 23 print("准确率为:",score) 24 #可视化决策树 25 export_graphviz(estimator,out_file="iris_tree.dot",feature_names=iris.feature_names) 26 graph=pydotplus.graph_from_dot_file("iris_tree.dot") 27 graph.write_pdf('iris.pdf') 28 29 if __name__ == "__main__": 30 decision_iris()