Da beim maschinellen Lernen mehr mit dem Experimentieren mit den Features und Modellen zu tun hat, gibt es keine richtige Antwort auf Ihre Frage. Einige meiner Vorschläge für Sie wäre:
1. Eigenschaft Skalierung und/oder Normalisierungs - Überprüfen Sie die Waage Ihres gre und gpa Funktionen. Sie unterscheiden sich in 2 Größenordnungen. Daher wird Ihre gre Funktion am Ende die anderen in einem Klassifikator wie Logistische Regression dominieren. Sie können alle Ihre Funktionen auf die gleiche Skalierung normalisieren, bevor Sie sie in ein maschinelles Lernmodell einfügen. This ist eine gute Anleitung zu den verschiedenen Skalierungs- und Normalisierungsklassen, die in scikit-learn zur Verfügung stehen.
2. Klassenungleichgewicht - Suchen Sie nach Klassenungleichgewicht in Ihren Daten. Da Sie mit der Annahme/Ablehnung von Daten arbeiten, wäre die Anzahl der Zurückweisungen wesentlich höher als die der angenommenen. Die meisten Klassifizierer in SkLearn einschließlich LogisticRegression
haben einen class_weight
Parameter. Die Einstellung auf balanced
könnte auch im Falle eines Klassenungleichgewichts funktionieren.
3. Optimieren andere Partituren - Sie befinden sich auf andere Kennzahlen optimieren können auch wie Log-Verlust und F1-Score. Der F1-Score könnte im Falle eines Klassenungleichgewichts nützlich sein. This ist eine gute Anleitung, die mehr über das Scoring spricht.
4. Hyper Tuning - Grid Search - Sie können Ihre Genauigkeit verbessern, indem ein Gitter Suche abzustimmen Durchführung der Hyper Ihres Modells. Im Fall von LogisticRegression
ist der Parameter C
ein Hyperparameter. Außerdem sollten Sie die Verwendung der Testdaten während der Rastersuche vermeiden. Führen Sie stattdessen eine Kreuzvalidierung durch. Verwenden Sie Ihre Testdaten nur, um die endgültigen Zahlen für Ihr endgültiges Modell zu melden. Bitte beachten Sie, dass GridSearch für alle von Ihnen getesteten Modelle durchgeführt werden sollte, da dann nur Sie in der Lage sind zu sagen, was Sie von jedem Modell am besten erreichen können. Scikit-Learn stellt hierfür die Klasse GridSearchCV
zur Verfügung. This Artikel ist auch ein guter Ausgangspunkt.
5. Weitere Klassifikatoren erkunden - Logistische Regression lernt eine lineare Entscheidungsfläche, die Ihre Klassen trennt. Es könnte möglich sein, dass Ihre 2 Klassen nicht linear trennbar sind. In einem solchen Fall müssen Sie möglicherweise andere Klassifikatoren wie Support Vector Machines betrachten, die komplexere Entscheidungsgrenzen lernen können. Sie können auch Baum-basierte Klassifizierer wie Decision Trees betrachten, die Regeln aus Ihren Daten lernen können. Stellen Sie sich diese als eine Reihe von If-Else-Regeln vor, die der Algorithmus automatisch aus den Daten lernt. Oft ist es schwierig, die richtigen Bias-Variance Tradeoff mit Decision Trees zu erhalten, also würde ich Ihnen empfehlen, Random Forests zu betrachten, wenn Sie eine beträchtliche Menge an Daten haben.
6. Fehleranalyse - Gehen Sie für jedes Ihrer Modelle zurück und sehen Sie sich die Fälle an, in denen sie versagen. Sie könnten am Ende feststellen, dass einige Ihrer Modelle auf einem Teil des Parameterraums gut funktionieren, während andere besser auf anderen Teilen arbeiten. Wenn dies der Fall ist, geben Ensemble Techniques wie VotingClassifier
Techniken oft die besten Ergebnisse. Modelle, die Kaggle-Wettbewerbe gewinnen, sind oft Ensemble-Modelle.
7. Weitere Funktionen _ Wenn all dies fehlschlägt, bedeutet das, dass Sie nach mehr Funktionen suchen sollten.
Hoffe, dass hilft!
Sie könnten mit der Optimierung des C-Parameters der logistischen Regression beginnen. Sie können auch verschiedene Klassifizierungsmethoden wie SVMs und Bäume ausprobieren. – geompalik
Sie sollten nicht versuchen, die Genauigkeit Ihres Test-Sets zu optimieren. Sie sollten auf dem Trainingssatz optimieren und das Testset als Objektbewertung der Methode verwenden. Können Sie Ihre Antwort so bearbeiten, dass die Genauigkeitsquote basierend auf dem Trainingssatz angezeigt wird? – ncfirth
Hallo, Genauigkeit basiert auf Trainingssatz hinzugefügt. –