如何采用DecisionTreeClassifier决策树模型建模,比较各因素的重要性(feature_importances_),并分析模型的准确率。
时间: 2024-03-18 14:41:23 浏览: 81
决策树分类算法的分析和比较
4星 · 用户满意度95%
您可以使用scikit-learn库中的DecisionTreeClassifier类来建立决策树分类模型。该类的输入参数包括树的最大深度、节点分裂的最小样本数等参数,输出结果为决策树分类器。您可以使用训练集数据集来fit该分类器,然后使用测试集数据集来预测分类结果。
在得到分类器后,您可以使用feature_importances_属性来比较各因素的重要性。该属性的输出结果为每个特征的重要性得分,得分越高表示该特征对模型的贡献越大。
最后,您可以使用sklearn库中的accuracy_score函数来评估模型的准确率。该函数的输入参数包括真实分类结果和预测分类结果,输出结果为模型的准确率。
以下是一个简单的代码示例:
``` python
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# 假设X和y是样本数据和标签
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 建立决策树分类器
dtc = DecisionTreeClassifier(max_depth=3, min_samples_split=2)
# 使用训练集数据集来fit分类器
dtc.fit(X_train, y_train)
# 使用测试集数据集来预测分类结果
y_pred = dtc.predict(X_test)
# 评估模型准确率
accuracy = accuracy_score(y_test, y_pred)
print("模型准确率为:", accuracy)
# 比较各因素的重要性
importance = dtc.feature_importances_
print("各因素的重要性为:", importance)
```
需要注意的是,本示例中树的最大深度和节点分裂的最小样本数等参数均为人为设定,您可以根据实际情况进行调整。另外,在得到分类器后,您可以使用graphviz库将决策树可视化,以更好地理解模型的决策过程。
阅读全文