dire che ho un set di dati come questo:difficoltà a capire in uscita dal scikit foresta casuale
5.9;0.645;0.12;2;0.075;32;44;0.99547;3.57;0.71;10.2;5
6;0.31;0.47;3.6;0.067;18;42;0.99549;3.39;0.66;11;6
dove il 1 ° 11 colonne indicano caratteristiche (acidità, cloruri, ecc) e l'ultima colonna indica il rating attribuito alla voce (ad esempio 5 o 6).
Il set di dati è addestrato in tal modo:
target = [x[11] for x in dataset]
train = [x[0:11] for x in dataset]
rf = RandomForestClassifier(n_estimators=120, n_jobs=-1)
rf.fit(train, target)
predictions = rf.predict_proba(testdataset)
print predictions[0]
che stampa qualcosa come
[ 0. 0.01666667 0.98333333 0. 0. 0. ]
Ora, perché non emette una classificazione singola, ad esempio una valutazione 5 o 6?
La documentazione dice "Le probabilità di classe previste di un campione di input sono calcolate come probabilità medie della classe prevista degli alberi nella foresta", che non riesco a capire.
Se si utilizza
print rf.predict(testdataset[-1])
[ 6. 6. 6. 6. 6. 6. 6. 6. 6. 6. 6.]
Esso stampa qualcosa di più come ci si aspetterebbe - almeno sembra valutazioni - ma io ancora non capisco perché ci sia una previsione per ogni funzione e non una sola previsione di prendere in considerazione tutte le funzionalità?
btw I dati provengono da set di dati del vino qui: http://www3.dsi.uminho.pt/pcortez/wine/ – Sofia
Qual è la forma di testdatasets? –