小企业网站建设在哪里,wordpress 评论ip拉黑,百度快照怎么使用,网页视频怎么下载到手机本地视频决策树是一种由算法自动设计的模型。在机器学习中#xff0c;构建决策树的过程通常遵循以下步骤#xff1a; 特征选择#xff1a;算法会评估每个特征#xff0c;并选择一个特征作为节点分裂的依据。这个选择基于某种准则#xff0c;如信息增益#xff08;ID3算法#xf…决策树是一种由算法自动设计的模型。在机器学习中构建决策树的过程通常遵循以下步骤 特征选择算法会评估每个特征并选择一个特征作为节点分裂的依据。这个选择基于某种准则如信息增益ID3算法或Gini不纯度CART算法。 最佳分裂点确定算法会计算每个特征的所有可能分裂点并选择一个使得不纯度最小或信息增益最大的分裂点。 递归分裂在选择了特征和分裂点后算法会递归地对数据集的每个子集重复上述过程直到满足停止条件。 停止条件停止条件可以是多种因素例如 数据集的不纯度低于某个阈值。达到预设的最大树深度。节点中的样本数量低于某个阈值。没有更多的特征可以用来分裂。 剪枝为了防止过拟合算法可能会采用剪枝技术来减少树的复杂度。这包括预剪枝在生长过程中限制树的大小和后剪枝先生长整棵树然后从底部剪除不必要的分支。 输出模型最终算法会输出一个决策树模型该模型可以通过一系列的问题特征和分裂点来对新的数据点进行分类。
首先导入库和数据分割数据集创建 DecisionTreeClassifier 的实例并使用训练集数据对其进行训练。预测分数
import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn import datasets
import graphviz
from sklearn.model_selection import train_test_split
from sklearn import treeiris datasets.load_iris()
X iris[data]
y iris[target]feature_names iris[feature_names]X_train,X_test,y_train,y_test train_test_split(X,y,test_size0.2,random_state 256)model DecisionTreeClassifier()
model.fit(X_train,y_train)print(测试数据得分,model.score(X_test,y_test))print(算法预测结果,model.predict(X_test))
print(真实结果 ,y_test)#逻辑斯蒂回归中手动计算过概率
model.predict_proba(X_test) 构建决策树
dot_data tree.export_graphviz(model,filledTrue,roundedTrue,feature_namesfeature_names)graphviz.Source(dot_data) 我们可以分析出构建的决策树使用了以下特征和策略 特征选择决策树使用了鸢尾花数据集中的以下特征 petal length (cm)花瓣长度petal width (cm)花瓣宽度sepal width (cm)萼片宽度 分裂准则决策树的每个节点都基于某个特征的阈值进行分裂例如 petal length (cm) 2.45 表示如果花瓣长度小于或等于2.45厘米则按照这个条件进行数据的分裂。 Gini不纯度每个节点都显示了Gini不纯度值这是衡量数据集纯度的指标。Gini不纯度越低表示数据集的纯度越高。例如一个节点显示 gini 0.666 表示该节点的不纯度较高而 gini 0.0 表示该节点的样本全部属于同一类别。 样本数量每个节点都显示了该节点下的样本数量例如 samples 120 表示该节点下有120个样本。 类别分布每个节点都显示了该节点下各个类别的样本数量例如 value [39, 39, 42] 表示该节点下有39个样本属于第一类39个样本属于第二类42个样本属于第三类。 递归分裂决策树通过递归的方式进行分裂直到满足停止条件例如Gini不纯度降至0所有样本属于同一类别或者达到预设的最大深度。 停止条件当一个节点的Gini不纯度降至0或者样本数量很少时分裂会停止。例如gini 0.0 表示该节点下的所有样本都属于同一类别不需要进一步分裂。 特征重要性从截图中可以看出花瓣长度和宽度的特征在多个节点中被用作分裂准则这表明这些特征对于分类可能更为重要。 树的深度从截图中可以看出树的深度相对较浅这意味着模型可能没有过拟合但也可能没有捕捉到数据的所有特征。 预测结果最终每个叶节点都会给出一个预测结果通常是多数投票的结果。