【发布时间】:2016-12-11 21:10:39
【问题描述】:
我正在尝试选择具有更好预测分数的数据的 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
但是,我得到了完全相同的预测分数。这怎么可能?
【问题讨论】:
标签: python scikit-learn cross-validation