gpt4 book ai didi

machine-learning - cross_val_score 与另一种计算准确度的方法之间的差异

转载 作者:行者123 更新时间:2023-11-30 08:50:39 24 4
gpt4 key购买 nike

我尝试计算准确性,但对 cross_val_score 给出的结果相当低这一事实感到困惑,而不是通过将预测结果与正确结果进行比较。

第一种计数方式,给出

[0.8033333333333333、0.7908333333333334、0.8033333333333333、0.7925、0.8066666666666666]

kf = KFold(shuffle=True, n_splits=5)
scores = []

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]

model = KNeighborsClassifier(n_jobs=-1, n_neighbors=5)
model.fit(X_train, y_train)

y_pred = model.predict(X_test)

scores.append(np.sum(y_pred == y_test) / len(y_test))

第二种方式给出array([0.46166667, 0.53583333, 0.40916667, 0.44666667, 0.3775 ]):

model = KNeighborsClassifier(n_jobs=-1, n_neighbors=5)
cross_val_score(model, X, y, cv = 5, scoring='accuracy')

我的错误是什么?

最佳答案

如果没有另外指定,

cross_val_score 将使用 StratifiedKFold cv 迭代器。 StratifiedKFold 将以相同的方式在训练和测试拆分中保持类别比例平衡。有关更多解释,请参阅我的其他答案:-

另一方面,在第一种方法中,您使用的是 KFold ,它不会保持类的平衡。此外,您正在其中对数据进行洗牌。

因此,在每次折叠中,两种方法都存在数据差异,因此结果也不同。

关于machine-learning - cross_val_score 与另一种计算准确度的方法之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52242492/

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