机器学习之线性回归预测波士顿房价*
- 正规方程与梯度下降优化W值。
- 线性回归:线性回归通过一个或者多个自变量与因变量之间进行建模的回归分析。其中可以为一个或多个自变量直接的线性组合。(线性回归的一种)
- 正规方程:
4. List item
梯度下降:就好比我们人下山坡,往下走就是函数下降的方向,学习速率就好比我们下山的速度。
4.波士顿案例分析过程:
- 波士顿地区房价数据获取
- 数据分割
- 训练、测试数据标准化
- 线性回归估计房价
演示结果:
以下为源代码
#波士顿房价预测
from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression,SGDRegressor
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import numpy as np
def mylinear():
"""线性回归"""
#数据获取
bst = load_boston()
#分割
x_train,x_test,y_train,y_test = train_test_split(bst.data,bst.target,test_size=0.25)
#特征工程--标准化
ss1 = StandardScaler()
x_train = ss1.fit_transform(x_train)
x_test = ss1.transform(x_test)
ss2 = StandardScaler()
y_train = ss2.fit_transform(np.array(y_train).reshape(-1,1))#y_train,y_test是一维要变二维
y_test = ss2.transform(np.array(y_test).reshape(-1,1))
#回归
lr = LinearRegression()#正规方程
sgd = SGDRegressor()
lr.fit(x_train,y_train)
print("正规方程回归系数:",lr.coef_)
y_predict1 = ss2.inverse_transform(x_test)#
print("正规方程-测试集里每个房子的预测价格:",y_predict1)
sgd = SGDRegressor()#梯度下降
sgd.fit(x_train,y_train)
print("梯度下降-回归系数:",lr.coef_)
y_predict2 = ss2.inverse_transform(x_test)
print("梯度下降—预测房价:",y_predict2)
return None
if __name__=="__main__":
mylinear()