【发布时间】:2019-02-13 23:38:37
【问题描述】:
我试图计算准确度,但对 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')
我的错误是什么?
【问题讨论】:
标签: machine-learning scikit-learn cross-validation knn