2017-11-15 39 views
1

私はthis linear regression exampleに従っていますが、結果がどうなるかが異なります。問題はプロット軸にあり、順不同です。予想(matplotlib.pyplot)散布図の軸の順序が正しくありません

enter image description here

私の結果:

enter image description here

軸を参照するには、ズーム:

enter image description here

コード:

import pandas as pd 
from sklearn import linear_model 
import matplotlib.pyplot as plt 

#read data 
dataframe = pd.read_fwf('brain_body.txt') 
x_values = dataframe[['Brain']] 
y_values = dataframe[['Body']] 

#train model on data 
body_reg = linear_model.LinearRegression() 
body_reg.fit(x_values, y_values) 

#visualize results 
plt.scatter(x_values, y_values) 
plt.plot(x_values, body_reg.predict(x_values)) 
plt.show() 

brain_body.txt

はPythonで私の最初の時間であり、私はいくつかのモジュールのインストールに問題だと思うが、私は手掛かりを持っていません。

ご協力いただければ幸いです。

+2

あなたのコードを投稿してください。 – James

+0

ありがとう、私は忘れてしまった – Pablo

+0

'brain_body.txt'を使った場合にのみ問題が発生した場合、このファイルを提供する必要があります。問題が 'brain_body.txt'の使用に依存しないならば、それなしで[mcve]を提供してください。 – ImportanceOfBeingErnest

答えて

3

値をプロットする場合は、plt.scatter(x_values.values, y_values.values)です。スムーズな線を得るために、データをソートすることも意味があります。

import numpy as np 
import pandas as pd 
from sklearn import linear_model 
import matplotlib.pyplot as plt 

#read data 
dataframe = pd.read_fwf('data/brainbody.txt') 
x_values = dataframe[['Brain']] 
y_values = dataframe[['Body']] 

#train model on data 
body_reg = linear_model.LinearRegression() 
body_reg.fit(x_values, y_values) 

#visualize results 
plt.scatter(x_values.values, y_values.values) 

x = np.sort(x_values.values.flatten()) 
plt.plot(x, body_reg.predict(x[:,np.newaxis])) 

plt.show() 

enter image description here

関連する問題