gpt4 book ai didi

scikit-learn - 如何使用sklearn获得K-Fold交叉验证的平均分数

转载 作者:行者123 更新时间:2023-12-05 00:14:17 25 4
gpt4 key购买 nike

我使用 sklearn 应用带有 K-fold 的决策树,有人可以帮助我显示它的平均分数。下面是我的代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import KFold
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import confusion_matrix,classification_report

dta=pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/blood-transfusion/transfusion.data")

X=dta.drop("whether he/she donated blood in March 2007",axis=1)

X=X.values # convert dataframe to numpy array

y=dta["whether he/she donated blood in March 2007"]

y=y.values # convert dataframe to numpy array

kf = KFold(n_splits=10)

KFold(n_splits=10, random_state=None, shuffle=False)

clf_tree=DecisionTreeClassifier()

for train_index, test_index in kf.split(X):
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]
clf=clf_tree.fit(X_train,y_train)
print("classification_report_tree",
classification_report(y_test,clf_tree.predict(X_test)))

最佳答案

如果你只想要准确性,那么你可以简单地使用 cross_val_score()

kf = KFold(n_splits=10)
clf_tree=DecisionTreeClassifier()
scores = cross_val_score(clf_tree, X, y, cv=kf)

avg_score = np.mean(score_array)
print(avg_score)

这里 cross_val_score将把你的原始 X 和 y 作为输入(不分成训练和测试)。 cross_val_score将自动将它们拆分为训练和测试,在训练数据上拟合模型并在测试数据上打分。这些分数将在 scores 中返回多变的。

所以当你有 10 折时,在 scores 中会返回 10 个分数。多变的。然后你可以取平均值。

关于scikit-learn - 如何使用sklearn获得K-Fold交叉验证的平均分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47257952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com