这是我得到的代码,但我不确定为什么它会给我一个如此糟糕的情节。我哪里出了问题?
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()
我怀疑您的问题/困惑在于问题的维度。我的理解是,你希望看到一条线穿过像这里这样的点,线函数接收X并输出lr.predict(X)
。您不会看到这一行,因为您的X变量有12列,因此您有12个不同的自变量。
如果你试图将所有这些与你的一个因变量lr.predict(X)
一起绘制,那么你需要13个维度。plot
方法不会为您绘制该图。相反,它试图绘制12条不同的线,X中的每个维度都有一条线。这就是你所看到的。