线性回归:梯度下降案例_波士顿房价预测

梯度下降代码样例

import pandas as pd
import numpy as np
# from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from  sklearn.preprocessing import StandardScaler
from sklearn.linear_model import SGDRegressor
from sklearn.metrics import mean_squared_error


# 1、获取数据,因为数据集load_boston在新的版本中已下线,所以通过网址获取
data_url = "http://lib.stat.cmu.edu/datasets/boston"
raw_df = pd.read_csv(data_url, sep="\s+", skiprows=22, header=None)
data = np.hstack([raw_df.values[::2, :], raw_df.values[1::2, :2]])
target = raw_df.values[1::2, 2]

# raw_df.to_csv('./data/boston.csv',index=False)

# 2、划分数据集
x_train,x_test,y_train,y_test=train_test_split(data,target,test_size=0.2,random_state=22)

# 3、数据处理:标准化
process = StandardScaler()
x_train = process.fit_transform(x_train)
x_test = process.transform(x_test)

# 4、创建模型,SGDRegressor梯度下降,learning_rate="constant"学习率为常数,eta0学习率的实际值
model = SGDRegressor(learning_rate="constant",eta0=0.01)

# 5、模型训练
model.fit(x_train,y_train)
# print(model.coef_)
# print(model.intercept_)

# 6、模型预测
y_predict = model.predict(x_test)
print(y_predict )

# 7、模型评估,用MAE方法
print(mean_squared_error(y_test,y_predict))