七、(1)线性回归——正规方程、梯度下降、岭回归
2019-05-26 11:33
127 查看
版权声明:引用请注明引用,且附上原文链接 https://blog.csdn.net/weixin_43718084/article/details/90574238
七、(1)线性回归——正规方程、梯度下降、岭回归
重复波士顿房价的线性回归预测流程,结合三种线性回归:正规方程、梯度下降、岭回归。
房价数据集包含十三个特征值和一个目标值。
完整代码如下:
# -*- coding: utf-8 -*- """ Created on Sat May 25 19:28:12 2019 @author: sun """ from sklearn.datasets import load_boston from skl 4000 earn.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) #print( y_train, y_test) # 进行标准化处理(?) 目标值处理? # 特征值和目标值是都必须进行标准化处理, 实例化两个标准化API 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)) # estimator预测 # 正规方程求解方式预测结果 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)
三种模型输出结果与真实值对比:
搞定收工。
“☺☺☺ 若本篇文章对你有一丝丝帮助,请帮顶、评论点赞,谢谢。☺☺☺”
↓↓↓↓
相关文章推荐
- l线性回归,梯度下降和正规方程
- 机器学习,线性回归关于梯度下降法和正规方程的流程
- 多元线性回归、梯度下降法、正规方程法简单实验
- 线性回归的正规方程解法与梯度下降解法的代码
- 线性规划、梯度下降、正规方程组——斯坦福ML公开课笔记1-2
- 线性规划、梯度下降、正规方程组——斯坦福ML公开课笔记1-2
- 线性规划、梯度下降、正规方程组——斯坦福ML公开课笔记1-2
- 【转】线性规划、梯度下降、正规方程组——斯坦福ML公开课笔记1-2
- 线性规划、梯度下降、正规方程组——斯坦福ML公开课笔记1-2
- [ML skill]线性规划、梯度下降、正规方程组
- 线性规划、梯度下降、正规方程组——斯坦福ML公开课笔记1-2
- Linear regression with multiple variables(多特征的线型回归)算法实例_梯度下降解法(Gradient DesentMulti)以及正规方程解法(Normal Equation)
- 机器学习笔记一二 - 线性规划 梯度下降 正规方程
- 线性规划、梯度下降、正规方程组——斯坦福ML公开课笔记1-2
- 线性回归与梯度下降法
- 机器学习入门(6)--(单变量)梯度下降与线性回归
- 梯度下降法与正规方程法
- 机器学习入门:线性回归及梯度下降
- 线性回归之梯度下降(附代码)
- 机器学习入门:线性回归及梯度下降