Ich bin ein Modell für binäre Klassifizierung Problem, wo jeder meiner Datenpunkte von 300 Dimensionen (ich verwende 300 Funktionen). Ich bin mit einem PassiveAggressiveClassifier von sklearn. Das Modell funktioniert sehr gut.Plotten Entscheidungsgrenze für hohe Dimension Daten
Ich möchte die Entscheidungsgrenze des Modells darzustellen. Wie kann ich das tun?
Um ein Gefühl für die Daten zu bekommen, ich habe es in 2D bin Plotten TSNE verwenden. Ich habe die Dimensionen der Daten in 2 Schritten reduziert - von 300 auf 50, dann von 50 auf 2 (dies ist eine allgemeine Empfehlung). Unten ist der Code-Snippet für das gleiche:
from sklearn.manifold import TSNE
from sklearn.decomposition import TruncatedSVD
X_Train_reduced = TruncatedSVD(n_components=50, random_state=0).fit_transform(X_train)
X_Train_embedded = TSNE(n_components=2, perplexity=40, verbose=2).fit_transform(X_Train_reduced)
#some convert lists of lists to 2 dataframes (df_train_neg, df_train_pos) depending on the label -
#plot the negative points and positive points
scatter(df_train_neg.val1, df_train_neg.val2, marker='o', c='red')
scatter(df_train_pos.val1, df_train_pos.val2, marker='x', c='green')
ich ein anständiges Diagramm erhalten.
Gibt es einen Weg, dass ich eine Entscheidungsgrenze zu dieser Handlung hinzufügen kann, die die tatsächliche Entscheidungsgrenze meines Modells im 300-dim-Raum darstellt?
Welches sind Sie für Dimensionsreduktion mit - abgeschnitten SVD oder TSNE? Wenn Sie eine lineare Methode sowohl für die Klassifizierung als auch für die Reduktion verwenden, ist dies ziemlich einfach zu tun. –
@Chester Ich glaube nicht, dass Op tSNE erstellt, nur um es zu ignorieren ;-) – lejlot