Ich versuche, ein xG-Modell mit Distanz (vom Tor) als Funktion zu erstellen, und die Zielvariable ist eine Dummy-Variable, die angibt, ob der Schuss zu einem Tor geführt hat oder nicht. Also versuche ich, eine einfache logistische Regression zu machen. Ich habe versucht, ein Modell zu replizieren, bei dem die Anpassung mit dem statsmodels-Paket durchgeführt wurde, was zu einem positiven Koeffizienten von 0,16 und einem Schnittpunkt von -0,5 führte.
Als ich die Linie mit scikit-learn anpasste, war der Koeffizient -0,16. Dasselbe geschah mit dem Schnittpunkt, der bei etwa 0,5 lag. Irgendwie haben sich also die Koeffizienten "umgedreht".
Datensatzbeispiel:
Goal X Y C Distance Angle
1 12 41 9.0 13.891814 0.474451
0 15 52 2.0 15.803560 0.453823
0 19 33 17.0 22.805811 0.280597
0 25 30 20.0 29.292704 0.223680
0 10 39 11.0 12.703248 0.479051
Scikit-Learn-Code:
feature_cols = ['Distance']
X = shots_model[feature_cols] # Features
y = shots_model['Goal'] # Target
y = y.astype('category')
m1 = LogisticRegression()
m1.fit(X_train, y_train)
statsmodels-Code:
test_model = smf.glm(formula="Goal ~ " + model, data=shots_model,
family=sm.families.Binomial()).fit()
print(test_model.summary())
b=test_model.params
Ich vermisse wahrscheinlich etwas Einfaches, da ich ziemlich neu im maschinellen Lernen bin, und das hat mich schon seit einiger Zeit verwirrt. Bitte helfen Sie.
Lösung des Problems
Ich bin mir nicht sicher, was Ihre Ausgaben sind. Was Sie jetzt jedoch tun können, ist, Ihr Modell mit neuen Testdaten zu testen. Die erhaltenen Vorhersagen sind Bruchwerte (zwischen 0 und 1), die die Wahrscheinlichkeit angeben, zu einem Tor zu führen. Runden Sie diese Werte dann, um die diskreten Werte 1 oder 0 zu erhalten. Danach können Sie eine Konfusionsmatrix oder die Funktion precision_score verwenden, um die Genauigkeit Ihrer Modelle zu testen. Ausführlicheren Code finden Sie in diesem Artikel. https://www.geeksforgeeks.org/logistic-regression-using-statsmodels/
Ich denke, wenn Sie entsprechende binäre Ergebnisse Ihrer beiden Module erhalten können und die Genauigkeit Ihrer beiden Modelle nahe beieinander liegt, müssen Sie sich keine großen Sorgen um den umgedrehten Koeffizienten machen. Grundsätzlich ist meine Idee, wenn Sie mit Ihren beiden Methoden genaue Vorhersagen (1 oder 0) erhalten können, ist alles in Ordnung. Hoffe meine Antwort ist hilfreich für dich!
Keine Kommentare:
Kommentar veröffentlichen