2016-08-12 5 views
-4

Momentan sollte ich einige Daten analysieren (etwa unter der Tabelle). Ich möchte einen vorhergesagten Wert basierend auf Daten erhalten. Also, ich suche den Algorithmus der Datenanalyse (im scikit-lernen), aber ich kann nicht bekommen, was ich den Algorithmus finde. Weil ich Vorhersagewert als binär erhalten möchte (wie 0 oder 1), aber lineare, SVN usw. Algorithmen den Wert als eine Ganzzahl vorhersagen (wie ein Durchschnittswert). Die folgenden Tabellen werden näher erläutert.Wie binäre Werte in der Klassifizierung vorhergesagt werden

[Ausgebildete - Daten]

age | gender | education | result 
45 | 1 |  9  | Y 
23 | 2 |  12 | Y 
27 | 2 |  9  | N 
31 | 1 |  11 | Y 
45 | 1 |  9  | N 

[Prognostizierte - Daten]

age | gender | education | result 
21 | 1 |  12 | ? 
32 | 2 |  11 | ? 
26 | 1 |  11 | ? 
54 | 1 |  9  | ? 
23 | 2 |  13 | ? 

ich den vorhersagen Wert als Y oder N. I Scikit-Learn (http://scikit-learn.org/stable/) nur wollen, erhalten gesucht, aber ich kenne den besten Algorithmus nicht. Wer weiß das? Vielen Dank!

+2

Da Ihre Zielvariable 'result' einen binären Wert vorhersagt, handelt es sich um ein binäres Klassifizierungsproblem. Sie können nach verschiedenen Klassifikationsalgorithmen suchen, die in 'sklearn' vorhanden sind, und eine für den Zweck geeignete Klassifizierung finden. –

+1

Oh .. Ich verstehe. Danke dir, habe einen guten Tag. – spritecodej

Antwort

3

sklearn unterstützt all of these in Bezug auf der Klassifizierung.

Wenn die Idee eine interpretierbare Modell zu bauen ist, dann könnte die LogisticRegression der Weg zu gehen.

Es baut ein Modell des Typs: logit(Result) = b0+b1*age+b2*gender+b3*education. Es schätzt die b Koeffizienten für Sie und Sie können es dann wie folgt interpretieren: Wenn das Alter um 1 zunimmt und alles andere fest ist, wird das Ergebnis um exp(b1) erhöht. Siehe mehr here.

Darüber hinaus gibt es eine Reihe von statistischen Tests zur Verfügung zu testen, wie robust es ist. Es ist ein ziemlich cooles Modell und weit verbreitet in der Ökonometrie, aber es nimmt Linearitäten an. Zum Beispiel, Ihre result Variable (was auch immer es bedeutet) könnte mehr im Alter als in jungen Jahren erhöhen. Vielleicht möchten Sie Ihre Altersgruppen in Gruppen zusammenfassen. Darüber hinaus können Sie einige Ihrer Faktoren aufgrund von Nichtlinearitäten one-hot encoding möchten.

Eine einfachere Modell zu verwenden, die auch interpretierbar ist, ist die DecisionTree. Beispiele für solche Bäume finden Sie unter dem Link.

Wenn Interpretierbarkeit kein Problem ist, könnte ein oder etwas wie oder neural network der Weg sein. Normalerweise verwenden Datenwissenschaftler nested cross-validation, um eine Reihe von Modellen mit einer Reihe von Parametern zu testen. Die äußere Kreuzvalidierung testet eine Reihe verschiedener Modelle, wobei die innere Kreuzvalidierung die Hyperparameter testet.

Ah - vergessen zu erwähnen. Bei Entscheidungsbäumen sollten Sie besonders darauf achten, den Hyperparameter max_depth feinabzustimmen (aber auch die anderen Feinabstimmungen vorzunehmen). Sie können auch einige Ensembles ausprobieren. Ensembles sind, wenn Sie viele Modelle erstellen und dann stimmen alle demokratisch über die Vorhersage. Sie verbessern normalerweise die Genauigkeit sehr. Für Entscheidungsbäume sind zwei sehr coole Ensembles RandomForest und Gradient Boosting Trees.

Sag mir, wenn es etwas gibt, was Sie mir klären wollen. Irgendwie in der Zukunft, erzähle uns bitte 1. was du bisher versucht hast und 2. genau was du machen willst. Klassifizierung ist ein riesiges Feld in der Datenwissenschaft. Dies ist das Beste, was ich mit den von Ihnen bereitgestellten Informationen tun kann. :)

Verwandte Themen