2016-04-29 11 views
-1

これは私が手に入れたコードですが、なぜ私にそのような悪いプロットを与えるのかは分かりません。どこが間違っていたのですか?Python:なぜ私の線形回帰プロットは私に厄介な色の線を与えるのですか?

import pandas as pd 

df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/housing/housing.data', header = None, sep = '\s+') 
df.columns = ["CRIM", "ZN", 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT','MEDV'] 
# print df 
X = df.iloc[:,:-2].values 
y = df.iloc[:,-1].values 

from sklearn.linear_model import LinearRegression 
lr = LinearRegression() 
lr.fit(X, y) 

import matplotlib.pyplot as plt 
plt.plot(X, lr.predict(X)) 
plt.show() 
+0

もっと説明してください。何が起きているのかを知るためにあなたのコードを実行したくありません。 – That1Guy

+0

プロットしようとしていることは何ですか? yとy予測したか?その場合、 'plt.scatter(y、lr.predict(X))'を試してみてください – ayhan

+0

私はプロットしようとしています。プロットはすべてのデータ点を結びつけるでしょう。 – kwotsin

答えて

1

ここでの問題/混乱は、問題の大きさと思われます。私の理解では、hereのような点を通る線が見えることを期待しています。ここで、線の関数はXをとり、lr.predict(X)を出力します。 X変数には12列あるので、の異なる独立変数があるので、1行は表示されません。

あなたが1つの従属変数であるlr.predict(X)と一緒にそれらのすべてをプロットしようとしている場合は、13のディメンションが必要になります。 plotメソッドはそれをプロットしません。代わりに、Xの各次元に1つずつ異なる12行を描画しようとします。これはあなたが見ているものです。