[我已经尝试使用Alpha ...仍然是错误的>:(
首先是我的代码:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
#Shape(1259,11)
#Columns(Area, BHK, Bathroom, Furnishing, Locality, Parking, Price, Status, Transaction, Type, Per_Sqft)
data_file = pd.read_csv("Delhi_House_Pricings.csv")
model = LinearRegression()
Y = np.array(data_file["Price"]).reshape(-1,1)
X = np.array(data_file["Area"]).reshape(-1,1)
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.3, random_state = 1)
model.fit(X_train, Y_train)
Y_test_predicted = model.predict(X_test)
plt.style.use("ggplot")
plt.scatter(X_test, Y_test, label = "Test_Data", alpha = 1)
plt.plot(X_test, Y_test_predicted, label = "Prediction")
plt.legend(loc = "upper left")
plt.xlabel("Area")
plt.ylabel("Price")
print(model.score(X_test,Y_test_predicted))
plt.show()
Alpha = 0.2 and Zooomed in the most clustered part of graph:
很明显,这条线甚至没有通过其中的大部分...。甚至是一个游戏学校的孩子也可以明显地使徒手绘制更好的回归效果。
我如何使斜坡更好?还有没有比线性回归更好的方法呢?
[我已经尝试使用Alpha。。。仍然是错误的。 。
您有2个离群值(图形右下角的点),将斜率拉向一条平线。我不确定“更好的回归线”是什么意思。回归线是使线和点之间的均方误差最小的线
也许这里的一个很好的解决方案是转换数据,RobustScaler处理异常值非常好。
欢迎使用SO,欢迎来到数据科学!