交叉验证预测器得分相同

Cross validation predictor score the same

我正在尝试选择具有更好预测分数的数据的 csv 文件。 我正在尝试使用以下代码确定交叉验证分数:

from __future__ import division
import os,csv
from sklearn import cross_validation
import numpy as np
from sklearn import svm
from sklearn import metrics

files = [e for e in os.listdir('.') if e.endswith('.csv')]

csvout = open('xval.csv','wb')
csvwriter=csv.writer(csvout)

for f in files:

    X,Y=[],[]
    feat=f[4:-4]
    print feat

    csvin = open(f,'rb')
    csvread=csv.reader(csvin)
    for row in csvread:
        X.append([row[0]])
        Y.append(1 if row[1]=='True' else 0)

    clf = svm.SVC(kernel='linear', C=1)
    predicted = cross_validation.cross_val_predict(clf, X, Y, cv=3) 
    print metrics.accuracy_score(Y, predicted)

csvout.close()

两个csv如下,a.csv和b.csv:

0.8307059089237866,False
0.07933411654760168,False
0.07933411654760168,False
0.07933411654760168,False
0.07933411654760168,False
0.8050114148789536,False
0.7050883824823811,True
0.07933411654760168,True
0.07933411654760168,True
0.07933411654760168,True
0.07933411654760168,True
0.07933411654760168,True
0.07933411654760168,True
0.07933411654760168,True
0.07933411654760168,True
0.6251499565651232,True

0.3507377775833331,False
0.2609619627153587,False
0.24483806968609972,False
0.7122564948467026,False
0.7172548646226102,False
0.1321163493448647,False
0.023658678331543205,True
0.5954080270729952,True
0.632479304055982,True
0.22412105580276065,True
0.3431509885671966,True
0.5954080270729952,True
0.1137442754294842,True
0.8312144672461341,True
0.1137442754294842,True

但是,我得到了完全相同的预测分数。这怎么可能?

当前代码将无法运行,因为 cross_val_predict() 函数的变量 CV(折叠数)大于 class 0(假)的样本数。如果您将它降低到小于(或等于)6,它将起作用并且您将获得 a.csv 的 0.6 和 b.csv.

的 0.625 的准确度