При создании регрессионных моделей для этого набора данных жилья , мы можем построить график остатков в зависимости от реальных значений.
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)
Мы можем найти похожий график.
В этом случае, какую интерпретацию мы можем дать и как мы можем улучшить модель.
EDIT : мы можем использовать все с другими предикторами результаты аналогичны.
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']]
Следующий график для KNN с 3 соседями. С 3 соседями можно было бы ожидать переобучения, я не могу понять, почему существует эта тенденция.