Python 为什么两个不同功能的精度测量结果是这样的?

Python 为什么两个不同功能的精度测量结果是这样的?,python,machine-learning,knn,Python,Machine Learning,Knn,我正在对数据集进行一些分析,并希望使用kNN分类器预测值。我的教授要求对我们的模型使用n倍交叉验证,我一直在用两种不同的方法: 方式1: scores = cross_val_score(knn, scaled_features_data, covers, scoring='accuracy', cv=lOO, n_jobs=-1) # lOO is a leave-one-out selector 方式2: fold = KFold(k) cov_true, cov_pred

我正在对数据集进行一些分析,并希望使用kNN分类器预测值。我的教授要求对我们的模型使用n倍交叉验证,我一直在用两种不同的方法:

方式1:

scores = cross_val_score(knn, scaled_features_data, covers,
scoring='accuracy', cv=lOO, n_jobs=-1) # lOO is a leave-one-out selector
方式2:

    fold = KFold(k)
    cov_true, cov_predict = list(), list()
    for train, test in fold.split(scaled_features_data):
        feature_train, feature_test = scaled_features_data[train, :],
        scaled_features_data[test, :]

        cover_train, cover_test = covers[train], covers[test]
        knn.fit(feature_train, cover_train)

        yhat = knn.predict(feature_test)
        cov_predict.append(yhat[0])
        cov_true.append(cover_test[0])

    accuracy = accuracy_score(cov_true, cov_predict)
我想,通过使用方法2,我可以训练我的kNN分类器来做出未来的预测,以及判断它的准确性。这是因为方法1实际上并没有训练分类器来进行未来的预测

当我研究方法2时,我注意到它给了我一个非常相似的精度,折叠值要小得多,我想看看这两种方法之间是否存在一些相似之处。这是我的图表,画出了精度(蓝色是方式1,红色是方式2):

这两条线在开始时如此明显,然后在结束时逐渐变细,这有什么原因吗