代价敏感决策树模型平衡数据集算法代码
时间: 2023-08-03 13:21:14 浏览: 22
下面是一个使用 scikit-learn 库中的代价敏感决策树模型平衡数据集的示例代码:
```
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import confusion_matrix, classification_report
from imblearn.datasets import make_imbalance
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])
# 平衡数据集
X_resampled, y_resampled = make_imbalance(X, y, sampling_strategy={0: 3, 1: 3})
# 构建代价敏感决策树模型
clf = DecisionTreeClassifier(criterion='entropy', min_samples_leaf=5, class_weight={0: 1, 1: 5})
# 训练模型
clf.fit(X_resampled, y_resampled)
# 预测
y_pred = clf.predict(X)
# 打印结果
print(confusion_matrix(y, y_pred))
print(classification_report(y, y_pred))
```
在这个代码中,我们首先构造了一个样本数量不平衡的二分类数据集 X 和 y,其中 y 中有5个负例和3个正例。然后,我们使用 `make_imbalance` 函数平衡数据集,其中 sampling_strategy 参数指定了不同类别的采样数量。接着,我们使用 `DecisionTreeClassifier` 类构建一个代价敏感决策树模型,并传入各种参数,例如 criterion、min_samples_leaf 和 class_weight 等。最后,我们使用 `fit` 方法训练模型,使用 `predict` 方法对原始数据集进行预测,并使用 `confusion_matrix` 和 `classification_report` 函数打印模型的评估结果。