代价敏感决策树模型算法代码
时间: 2023-07-20 10:17:52 浏览: 122
下面是一个使用 scikit-learn 库中的代价敏感决策树模型的示例代码:
```
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import confusion_matrix, classification_report
from sklearn.utils.class_weight import compute_sample_weight
import numpy as np
# 构造数据集
X = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12], [13, 14], [15, 16]])
y = np.array([1, 1, 1, 0, 0, 0, 0, 0])
# 计算样本权重
sample_weight = compute_sample_weight(class_weight={0: 1, 1: 5}, y=y)
# 构建代价敏感决策树模型
clf = DecisionTreeClassifier(criterion='entropy', min_samples_leaf=5, class_weight={0: 1, 1: 5})
# 训练模型
clf.fit(X, y, sample_weight=sample_weight)
# 预测
y_pred = clf.predict(X)
# 打印结果
print(confusion_matrix(y, y_pred))
print(classification_report(y, y_pred))
```
在这个代码中,我们首先构造了一个样本数量不平衡的二分类数据集 X 和 y,其中 y 中有5个负例和3个正例。然后,我们使用 `compute_sample_weight` 函数计算每个样本的权重,其中 class_weight 参数指定了不同类别的权重。接着,我们使用 `DecisionTreeClassifier` 类构建一个代价敏感决策树模型,并传入各种参数,例如 criterion、min_samples_leaf 和 class_weight 等。最后,我们使用 `fit` 方法训练模型,使用 `predict` 方法对训练集进行预测,并使用 `confusion_matrix` 和 `classification_report` 函数打印模型的评估结果。
阅读全文