【发布时间】:2020-10-09 01:59:21
【问题描述】:
在为这个housing dataset 创建回归模型时,我们可以绘制残差与实际值的函数。
from sklearn.linear_model import LinearRegression
X = housing[['lotsize']]
y = housing[['price']]
model = LinearRegression()
model.fit(X, y)
plt.scatter(y,model.predict(X)-y)
我们可以清楚地看到,差异(预测 - 实际价值)对于较低的价格主要是正的,而对于较高的价格,差异是负的。
线性回归确实如此,因为模型针对 RMSE 进行了优化(因此不考虑残差的符号)。
但是在做KNN的时候
from sklearn.neighbors import KNeighborsRegressor
model = KNeighborsRegressor(n_neighbors = 3)
我们可以找到类似的情节。
在这种情况下,我们可以给出什么样的解释,以及如何改进模型。
编辑:我们可以使用所有其他预测器,结果相似。
housing = housing.replace(to_replace='yes', value=1, regex=True)
housing = housing.replace(to_replace='no', value=0, regex=True)
X = housing[['lotsize','bedrooms','stories','bathrms','bathrms','driveway','recroom',
'fullbase','gashw','airco','garagepl','prefarea']]
下图是具有 3 个邻居的 KNN。有 3 个邻居,可能会出现过度拟合,我不明白为什么会出现这种趋势。
【问题讨论】:
标签: python regression linear-regression knn