每次启动脚本时,带有 sklearn 的 AUC 都会有所不同

数据挖掘 scikit-学习 决策树
2022-02-21 03:33:41

我正在使用以下代码来执行树分类。random_state我为in函数设置了一个 int 值,train_test_split但每次我为aucor得到不同的值accuracy_score我没有看到我错过了什么......

X_train, X_test, y_train, y_test = train_test_split(X, Y, random_state=1,stratify=Y, test_size=0.33)

clf = clf.fit(X_train, y_train)

predicted_probas = clf.predict_proba(X_test)
y_predict = clf.predict(X_test)

print(accuracy_score(y_test, y_predict))

print(classification_report(y_test, y_predict))

classes = np.unique(y_test)
probas = predicted_probas

fpr = {}
tpr = {}
roc_auc = {}

for i in range(len(classes)):
        fpr[i], tpr[i], _ = roc_curve(y_test, probas[:,i],pos_label=classes[i])
        roc_auc[i] = auc(fpr[i], tpr[i])
        print(classes[i])
        print(fpr[i], tpr[i])
        print("roc_auc")
        print(roc_auc[i])
1个回答

好的,我想念您也可以在此处设置 random_state 以消除这种可变性的事实...但是我看不到它在这里的工作原理,所以如果有人想解释...欢迎您。

   clf = tree.DecisionTreeClassifier(random_state=5)