900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 机器学习——线性回归 房价预测案例【正规方案与梯度下降】

机器学习——线性回归 房价预测案例【正规方案与梯度下降】

时间:2018-09-27 14:29:54

相关推荐

机器学习——线性回归 房价预测案例【正规方案与梯度下降】

#coding:utf-8

#1.获取数据集

#2.数据基本处理

#2.1.数据划分

#3.特征工程——标准化

#4.机器学习(线性回归)

#5.模型评估

fromsklearn.datasetsimportload_boston#1.获取数据集,所使用的引用

fromsklearn.model_selectionimporttrain_test_split#2.数据基本处理,所使用的引用

fromsklearn.preprocessingimportStandardScaler#3.特征工程——标准化,所使用的引用

fromsklearn.linear_modelimportLinearRegression,SGDRegressor,Ridge#4.机器学习,所使用的引用

fromsklearn.metricsimportmean_squared_error#5.模型评估,所使用的引用

deflinear_model1():

#正规方程优化方式

#1.获取数据集

boston=load_boston()

#2.数据基本处理

#2.1.数据划分

x_train,x_test,y_train,y_test=train_test_split(boston.data,boston.target,test_size=0.2)#2.1.数据划分,20%测试集,80%训练集

#3.特征工程——标准化

transfer=StandardScaler()

x_train=transfer.fit_transform(x_train)

x_test=transfer.fit_transform(x_test)

#print(x_train)

#print(x_test)

#4.机器学习(线性回归)

estimator=LinearRegression()

estimator.fit(x_train,y_train)

print("这个模型的偏置是:\n",estimator.intercept_)

#5.模型评估

#5.1预测值和准确值

y_pre=estimator.predict(x_test)

print("预测值是:\n",y_pre)

score=estimator.score(x_test,y_test)

print("准确率是:\n",score)

#5.2均方误差

ret=mean_squared_error(y_test,y_pre)

print("均方误差是:\n",ret)

deflinear_model2():

#梯度下降方式优化

#1.获取数据集

boston=load_boston()

#2.数据基本处理

#2.1.数据划分

x_train,x_test,y_train,y_test=train_test_split(boston.data,boston.target,test_size=0.2)#2.1.数据划分,20%测试集,80%训练集

#3.特征工程——标准化

transfer=StandardScaler()

x_train=transfer.fit_transform(x_train)

x_test=transfer.fit_transform(x_test)

#4.机器学习(线性回归)

#estimator=LinearRegression()

estimator=SGDRegressor(max_iter=1000)

estimator.fit(x_train,y_train)

print("这个模型的偏置是:\n",estimator.intercept_)

#5.模型评估

#5.1预测值和准确值

y_pre=estimator.predict(x_test)

print("预测值是:\n",y_pre)

score=estimator.score(x_test,y_test)

print("准确率是:\n",score)

#5.2均方误差

ret=mean_squared_error(y_test,y_pre)

print("均方误差是:\n",ret)

deflinear_model3():

#岭回归

#1.获取数据集

boston=load_boston()

#2.数据基本处理

#2.1.数据划分

x_train,x_test,y_train,y_test=train_test_split(boston.data,boston.target,test_size=0.2)#2.1.数据划分,20%测试集,80%训练集

#3.特征工程——标准化

transfer=StandardScaler()

x_train=transfer.fit_transform(x_train)

x_test=transfer.fit_transform(x_test)

#4.机器学习(线性回归)

#estimator=LinearRegression()

estimator=Ridge()

estimator.fit(x_train,y_train)

print("这个模型的偏置是:\n",estimator.intercept_)

#5.模型评估

#5.1预测值和准确值

y_pre=estimator.predict(x_test)

print("预测值是:\n",y_pre)

score=estimator.score(x_test,y_test)

print("准确率是:\n",score)

#5.2均方误差

ret=mean_squared_error(y_test,y_pre)

print("均方误差是:\n",ret)

#if__name__=="__name__":

linear_model1()

linear_model2()

linear_model3()

运行结果

正规方程

这个模型的偏置是:

22.44702970297033

预测值是:

[32.8568623716.438413213.1269990928.9785719620.0993647817.04228827

12.1949609428.9790834329.0962807922.8147780323.3199172628.08352655...]

准确率是:

0.7377378215203308

均方误差是:

20.382664610246923

梯度下降方式

这个模型的偏置是:

[22.6973293]

预测值是:

[13.2512663825.6395591719.8666376615.3411051936.4618728414.46931269

23.4712679228.5972460716.9788364229.7795103619.7822150319.99092917...]

准确率是:

0.6792036485662996

均方误差是:

22.98931243111312

梯度下降加上岭回归方式

这个模型的偏置是:

22.366584158415883

预测值是:

[11.7448027919.2334226236.1456509915.8971341829.956034339.1221646

25.657720.0789859528.0086537128.6747698530.1552826522.00776699...]

准确率是:

0.8099165448127184

均方误差是:

16.103426905025767

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。