2016-04-15 7 views
0

Ich möchte ein decision tree classifier verwenden, um etwas vorherzusagen.Wie trainiert man einen Klassifikator mit einem Array von Arrays?

Wie Sie hier sehen können:

from sklearn import tree 

sample1 = [120,1] 
sample2 = [123,3] 
features = [sample1,sample2] 

labels = [0,1] 

clf = tree.DecisionTreeClassifier() 
clf = clf.fit(features, labels) 

Ich habe zwei Proben:

  • Probe ein: [120,1], die ich als 0 gekennzeichnet

  • Probe zwei: [123,3] was ich labe gefüllte als 1

So weit so gut.

Aber jetzt, statt dieser Proben, ich möchte eine Reihe trainieren verwenden, so etwas wie:

features = [[120,120.2][1, 1.2]] 

und dem jeweiligen Etikett für diese Probe ist:

label = [1] 

So sollte mein Code sein:

from sklearn import tree 

features = [[120,120.2][1, 1.2]] 

labels = [1] 

clf = tree.DecisionTreeClassifier() 
clf = clf.fit(features, labels) 

ich erhalte die folgende error:

Typeerror: Liste Indizes müssen ganze Zahlen sein, nicht

tuple Ich verstehe, dass der Klassifikator eine Liste von ganzen Zahlen will, und nicht Tupel. und eine Lösung kann sein:

features = [[120, 120.2, 1, 1.2]] 

labels = [1] 

Aber ich möchte die Daten nicht zu verwechseln, da ich es separat in Arrays haben.

Gibt es eine Möglichkeit, meinen Classifier mit Arrays von Datenfeldern zu trainieren?

Dank

+1

Ich würde persönlich gehen für 'features = [[120, 120.2, 1, 1.2]]'. Habe noch nie ein Tupel als Feature gesehen und ich sehe in der vorgeschlagenen Lösung nichts falsches. –

Antwort

1

Nein Sie dieses Format mit Ihren Daten nicht verwenden können, müssen Sie sie in einem Array aggregieren.

Die expected shape ist (n_samples, n_features).

Es ist noch mehr Logik, weil ein Beispiel von einigen Funktionen beschrieben wird und durch die Verwendung des erwarteten Formats beschreibt es besser Ihre Daten.

+0

ok;) vielen Dank für die Hilfe – waas1919

Verwandte Themen