线性回归预测波士顿房价

Posted mambakb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性回归预测波士顿房价相关的知识,希望对你有一定的参考价值。

 预测波士顿的房价,上次已经通过房间数目预测了房价,这次用多元线性回归预测。

根据之前推导的多元线性回归的参数

 技术图片

接下来是多元线性回归的代码实现

def LinearRegression_(x,y):
    np.array(x)
    np.array(y)
    a = (np.linalg.inv(x.T.dot(x))).dot(x.T).dot(y)

上次大致了解了得个feature的name。下面是‘ZN’和‘RM’的散点图(由于我比较懒所以只实现这两个)

技术图片

技术图片

 

我们可以看出每个特征的数据范围相差较大,为了加快梯度下降求最优解的速度,将它们进行归一化处理

from sklearn import preprocessing
min_max_scaler = preprocessing.MinMaxScaler()
#分别对训练和测试数据的特征以及目标值进行标准化处理
boston[data]=min_max_scaler.fit_transform(boston[data])
boston[target]=min_max_scaler.fit_transform(boston[target].reshape(-1,1))

在对y进行标准化的时候会报错,因此要对boston[‘target‘]reshape()。下面就是进行数据划分和预测

x = pd.DataFrame(boston[data],columns=boston[feature_names])
y = pd.DataFrame(boston[target],columns=[target])
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.33, random_state=42)

这里我们用网格搜索法进行调参。我们用GridSearchCV,它存在的意义就是自动调参,只要把参数输进去,就能给出最优化的结果和参数。但是这个方法适合于小数据集,一旦数据的量级上去了,很难得出结果。

param = {fit_intercept:[True,False],normalize:[True,False],copy_X:[True,False]}
grid = GridSearchCV(estimator=lr, param_grid=param, cv=5)
grid.fit(x_train,y_train)
print(grid.score(x_test,y_test))

最后得分

0.7258515818230062

 

以上是关于线性回归预测波士顿房价的主要内容,如果未能解决你的问题,请参考以下文章

线性回归案例:波士顿房价预测

机器学习实战—— 用线性回归预测波士顿房价

机器学习之利用线性回归预测波士顿房价和可视化分析影响房价因素实战(python实现 附源码 超详细)

《用Python玩转数据》项目—线性回归分析入门之波士顿房价预测

机器学习之路: python 线性回归LinearRegression, 随机参数回归SGDRegressor 预测波士顿房价

02-06 普通线性回归(波斯顿房价预测)+特征选择