2016-08-05 19 views
1

Meine csv Daten folgt:Kreuzvalidierung nicht kompatibel Formen

0.03095566878715169,False 
0.9700097239723956,False 
0.9756176662740987,False 
0.9516273399151274,False 
0.21111951544035354,False 
0.10371038060888567,False 
0.018505911665029413,True 
0.3595877911788813,True 
0.010223522470333259,True 
0.0812290660300292,True 
0.19798744613629704,True 

Ich versuche, eine k-fache Kreuzvalidierung Score zu erwerben.

Dies ist mein Code wie folgt:

import os,csv 
import numpy as np 
from sklearn import cross_validation 
from sklearn import datasets 
from sklearn import svm 

import numpy as np 

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

f='some.csv' 
try: 
    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(row[1]) 

    npX=np.array(X) 
    npY=np.array(Y) 
    clf = svm.SVC() 
    xval_score=cross_validation.cross_val_score(clf,X=npX,y=npY,cv=10) 
    csvwriter.writerow([feat,str(xval_score[-1])]) 
except Exception,e: 
    print(e)  
csvout.close() 

aber ich erhalte eine Fehlermeldung wie folgt:

X and y have incompatible shapes. 
X has 1 samples, but y has 837 

Oder soll ich das über der falsche Weg? Ich wäre dankbar, wenn jemand mehr darüber aufklären könnte.

Antwort

0

Für Sklearn-Schätzer muss X ein 2-dimensionales Array sein. Versuchen Sie Folgendes:

npX = np.array(X).reshape([-1, 1]) 
Verwandte Themen