2017-11-13 3 views
1

Ich zeichne ein lineares Regressionsmodell mit Pyplot. Unten ist mein Code.Seltsames Diagramm in der linearen Regression mit pyplot

plt.scatter(X_train, y_train, color ='red') 
plt.show() 

Wenn ich den obigen Code plotten verwendet wird, wird die Handlung wie folgt: Scatter Plot

I aufgetragen dann die Liniendiagramm unter Verwendung des Codes:

plt.plot(X_train, regressor.predict(X_train), color = 'blue') 
plt.show() 

Es zeigt eine Linie wie erwartet.

plt.scatter(X_train, y_train, color ='red') 
plt.plot(X_train, regressor.predict(X_train), color = 'blue') 
plt.show() 

Linear Regression

Bitte lassen Sie mich wissen, wenn ich extra zu tun haben: Line Grpah

Aber wenn ich versuche zusammen, beide zu zeichnen, der Graph wird immer wie unten gezeigt verkorkste Kodierung, um einen linearen Regressionsgraphen richtig zu zeichnen.

Antwort

0

Pyplot verbindet die Punkte zwischen den Punkten in der Reihenfolge ihres Auftretens in X_train, aber es ist normalerweise nichts über die Reihenfolge bekannt. Es wird selten sortiert. Sie müssen Ihr Array vor dem Plotten sortieren.

sorted_indices = numpy.argsort(X_train) 
sorted_X = X_train[sorted_indices] 
plt.plot(sorted_X, regressor.predict(sorted_X), color = 'blue') 
+0

Zugegeben, Ihr Fall sieht ziemlich komisch aus, aber es kann eine Eigenart von Matplotlib sein. Ich bin mir nicht sicher, dass das helfen wird. – Perfi

Verwandte Themen