以鸢尾花为例进行决策树算法的计算
香农:信息是消除不确定性的东西
消除的不确定性有多少---信息熵
ID3 信息增益 最大的准则
信息增益比 最大的准则
CART 分类树:基尼系数 最小准则
gini基尼系数
entropy信息增益的熵
max_depth树的深度 如果不设会比较大 比较细,泛化能力可能就比较差
#1.获取数据集
from sklearn.datasets import load_iris
iris = load_iris()
#2.划分数据集
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,random_state =22)
#3.决策树预估器
from sklearn.tree import DecisionTreeClassifier
estimator = DecisionTreeClassifier(criterion="entropy")
estimator.fit(x_train,y_train)
# 4.模型评估
# 方法1:直接比对真实值和预测值
y_predict = estimator.predict(x_test)
print("y_predict:n", y_predict)
print("直接对弈真实性和预测值:n", y_test == y_predict)
# 方法2:计算准确率
score = estimator.score(x_test, y_test)
print("准确率:n", score);
以下为决策树可视化,将dot文件转为决策树图
# 决策树的可视化 from sklearn.tree import export_graphviz import graphviz dot_data = export_graphviz(estimator,out_file = "iris_tree.dot",feature_names = iris.feature_names)
1.首先在这个网站安装Graphviz
2.设置环境变量:在系统变量的PATH中添加Graphviz的bin目录路径,如我的安装路径是"C:Program Files (x86)Graphviz2.38bin"
3.验证一下环境变量是否设置成功:在cmd中输入dot -version
4.在Powershell窗口的dot的路径下输入:dot -Tpng Dtree.dot -o Dtree.png"
图片结果:
暑期编程PK赛 得CSDN机械键盘等精美礼品!


