2016-04-19 10 views
0

Aus irgendeinem Grund werden die Features dieses Datasets als Zeilen interpretiert: "Modell n_features ist 16 und Eingabe n_features ist 18189" Dabei ist 18189 die Anzahl der Zeilen und 16 ist die richtige Merkmalsliste.Anzahl der Features des Modells muss mit der Eingabe übereinstimmen

Der Verdächtige Code ist hier:

for var in cat_cols: 
    num = LabelEncoder() 
    train[var] = num.fit_transform(train[var].astype('str')) 
    train['output'] = num.fit_transform(train['output'].astype('str')) 

for var in cat_cols: 
    num = LabelEncoder() 
    test[var] = num.fit_transform(test[var].astype('str')) 
    test['output'] = num.fit_transform(test['output'].astype('str')) 


clf = RandomForestClassifier(n_estimators = 10) 

xTrain = train[list(features)].values 
yTrain = train["output"].values 

xTest = test[list(features)].values 
xTest = test["output"].values 

clf.fit(xTrain,yTrain) 
clfProbs = clf.predict(xTest)#Error happens here. 

Wer irgendwelche Ideen hat?

Beispieltrainingstermin csv

tr4,42,"JobCat4","divorced","tertiary","yes",2,"yes","no","unknown",5,"may",0,1,-1,0,"unknown","TypeA" 

Beispieltestdaten csv

tst2,47,"JobCat3","married","unknown","no",1506,"yes","no","unknown",5,"may",0,1,-1,0,"unknown",? 

Antwort

0

Sie haben einen kleinen Tippfehler - die Variable xTest erstellt und dann sofort auf eine falsche etwas überschreiben werden. Ändern Sie die fehlerhaften Linien zu:

xTest = test[list(features)].values 
yTest = test["output"].values 
Verwandte Themen