七、(1)线性回归——正规方程、梯度下降、岭回归
重复波士顿房价的线性回归预测流程,结合三种线性回归:正规方程、梯度下降、岭回归。
房价数据集包含十三个特征值和一个目标值。
完整代码如下:
"""
Created on Sat May 25 19:28:12 2019
@author: sun
"""
from sklearn
.datasets
import load_boston
from sklearn
.model_selection
import train_test_split
from sklearn
.preprocessing
import StandardScaler
from sklearn
.linear_model
import LinearRegression
, SGDRegressor
, Ridge
from sklearn
.externals
import joblib
from sklearn
.metrics
import mean_squared_error
import pandas
as pd
def mylinear():
"""
线性回归直接预测房子价格
:return: None
"""
titan
= pd
.read_csv
(r
"C:\Users\sun\Desktop\论文\算法代码\线性回归\波士顿原数据.csv",engine
='python')
data
= titan
[['crim','zn','indus','chas','nox','rm','age','dis','rad','tax','ptratto','b','lstat']]
target
= titan
['medv']
x_train
, x_test
, y_train
, y_test
= train_test_split
(data
, target
, test_size
=0.25)
std_x
= StandardScaler
()
x_train
= std_x
.fit_transform
(x_train
)
x_test
= std_x
.transform
(x_test
)
std_y
= StandardScaler
()
y_train
= std_y
.fit_transform
(y_train
.reshape
(-1, 1))
y_test
= std_y
.transform
(y_test
.reshape
(-1, 1))
lr
= LinearRegression
()
lr
.fit
(x_train
, y_train
)
print(lr
.coef_
)
'''
#梯度下降去进行房价预测
sgd = SGDRegressor()
#
sgd.fit(x_train, y_train)
#
#print(sgd.coef_)
'''
'''
# 岭回归去进行房价预测
#rd = Ridge(alpha=1)
#
#rd.fit(x_train, y_train)
#
# print(rd.coef_)
'''
y_lr_predict
= std_y
.inverse_transform
(lr
.predict
(x_test
))
print("正规方程测试集里面每个房子的预测价格:", y_lr_predict
)
print("正规方程的均方误差:", mean_squared_error
(std_y
.inverse_transform
(y_test
), y_lr_predict
))
if __name__
== "__main__":
mylinear
()
通过划分数据集来预测测试集的房价,通过sklearn的 joblib模块,我们来保存训练好的模型,并载入模型预测自己的数据,只需要把数据以相同的csv格式保存好,将titan改一下即可:
joblib
.dump
(rd
, "./rd.pkl")
model
= joblib
.load
("./rd.pkl")
titan2
= pd
.read_csv
(r
"C:\Users\sun\Desktop\论文\算法代码\线性回归\填入数据预测房价.csv",engine
='python')
xx_test
= titan2
[['crim','zn','indus','chas','nox','rm','age','dis','rad','tax','ptratto','b','lstat']]
xx_test
= std_x
.transform
(xx_test
)
yy_predict
= std_y
.inverse_transform
(model
.predict
(xx_test
))
print("保存的模型预测的结果:", yy_predict
)
三种模型输出结果与真实值对比:
搞定收工。
“☺☺☺ 若本篇文章对你有一丝丝帮助,请帮顶、评论点赞,谢谢。☺☺☺”
↓↓↓↓
转载请注明原文地址: https://yun.8miu.com/read-134223.html