2017-01-15 6 views
0

Ich möchte Informationen über das Ergebnis der Ausgabe der isolierten Gesamtstruktur anzeigen, wie die Isolationsindizes (in der Grafik) und die Genauigkeit der Vorhersage.Anzeigen von Informationen über Isolationswald

Ich benutze Sklearns Isolation Forest-Funktion.

clf = IsolationForest() 
clf.fit(X_train) 
yPredTest = clf.predict(X_test) 
xx, yy = np.meshgrid(np.linspace(-3, 88), np.linspace(-1, 50)) 
Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()]) 
Z = Z.reshape(xx.shape) 
plt.title("Isolation Forest") 
plt.contourf(xx, yy, Z, cmap=plt.cm.Blues_r) 
b = plt.scatter(X_test[:, 0], X_test[:, 1], c='black') 
plt.show() 

Das Ergebnis, das ich habe, ist, wie die image aber mit nur einem Cluster (und einige Punkte Spread) und alle Punkte sind in der gleichen Farbe: Problem gelöst durch yPredTest als Farbe setzen.

Ein anderes Problem, ich weiß nicht, wie Sie mehr als zwei Funktionen aktivieren. Ich habe zwei Sätze (Zug und Test), die wie [[0,1,34,38O,24],[98,938,238,23,1],[...],[0,13,3,23,49]] sind und der Algorithmus machen mir meine Sätze wie X_train = np.array(list)[:100,[1,2]] gestutzt und X_test = np.array(list)[101:,[1,2]] sonst (np.array(list)[:100,] und np.array(list)[101:,]) es wird mich stoppen und alarmieren:

ValueError: Number of features of the model must match the input. Model n_features is 8 and input n_features is 2

Es scheint, dass das Problem bei dieser Linie Z = clf.decision_function(np.c_[xx.ravel(), yy.ravel()])

Antwort

1

Ich sehe "eine andere Frage", aber wo ist das erste? Sie haben die gleiche Farbe wegen des Arguments c='black' beim Streuen. Versuchen Sie, yPredTest diesem Argument zuzuweisen.

xx, yy ist das Gitter des Plangraphen (Sie können sie ausdrucken, um zu überprüfen, was sie sind). Wenn Sie mehr als zwei Funktionen verwenden möchten, kann PCA helfen.

+0

Die Fragen waren: Zeigen Sie die Isolationsindizes, die Genauigkeit der Vorhersage, ändern Sie die Farbe und fügen Sie weitere Funktionen hinzu. Soll ich PCA mit isolierter Gesamtstruktur oder zusätzlich dazu (= iForest) in einer anderen Datei verwenden? –

+0

@ Chènevis Ich denke, du solltest lernen von [tutorial] (http://scikit-learn.org/stable/auto_examples/ensemble/plot_isolation_forest.html#sphx-glr-auto-examples-ensemble-plot-isolation-forest-py) wie es geplottet wurde. Und das ist die [doc] (http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.IsolationForest.html) über die Verwendung von IsolationForest. Und verwenden Sie IsolationForest.predict, um die Indizes des Testsets zu erhalten. – Zealseeker

+0

@ Chènevis IsolationForest unterstützt mehr als zwei Funktionen. Ändern Sie einfach die Form Ihrer Daten. Aber Sie müssen erkennen, dass wir sie als Menschen nicht in einen mehr als dreidimensionalen Raum streuen können. Wenn Sie also die Informationen nur visuell anzeigen möchten, ist die Verwendung von PCA zur Reduzierung Ihrer Funktionen eine gute Idee, denke ich. Wenn Sie Interesse an Plotting haben, versuchen Sie, sie in einen 3D-Raum zu streuen, was meines Wissens nicht möglich ist. – Zealseeker

Verwandte Themen