python实现房价预测_机器学习笔记-20行代码实现房价预测

scikit-learn 是基于 Python 语言的机器学习工具,sklearn是目前python中十分流行的用来实现机器学习的第三方包,其中包含了多种常见算法如:决策树,逻辑回归、集成算法(如随机森林)等等。

1.从sklearn导入数据集

sklearn自带多个数据集:

鸢尾花数据集:load_iris():用于分类任务的数据集

手写数字数据集:load_digits():用于分类任务或者降维任务的数据集

乳腺癌数据集load-barest-cancer():简单经典的用于二分类任务的数据集

糖尿病数据集:load-diabetes():经典的用于回归认为的数据集,值得注意的是,这10个特征中的每个特征都已经被处理成0均值,方差归一化的特征值。

波士顿房价数据集:load-boston():经典的用于回归任务的数据集

体能训练数据集:load-linnerud():经典的用于多变量回归任务的数据集

# 导入波士顿房价预测数据集

from sklearn.datasets import load_boston

Boston=load_boston()

X=Boston.data

Y=Boston.target

print(X,Y)

1

2

3

4

5

6

# 导入波士顿房价预测数据集

fromsklearn.datasetsimportload_boston

Boston=load_boston()

X=Boston.data

Y=Boston.target

print(X,Y)

2.划分数据集,将数据划分为训练集和测试集两大部分。

# 导入划分训练集函数

from sklearn.model_selection import train_test_split

# 导入线性回归模型

from sklearn.linear_model import LinearRegression

# 划分数据集

X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.2,random_state=888)

print(X_train.shape)

print(Y_train.shape)

1

2

3

4

5

6

7

8

# 导入划分训练集函数

fromsklearn.model_selectionimporttrain_test_split

# 导入线性回归模型

fromsklearn.linear_modelimportLinearRegression

# 划分数据集

X_train,X_test,Y_train,Y_test=train_test_split(X,Y,test_size=0.2,random_state=888)

print(X_train.shape)

print(Y_train.shape)

3.开始训练,我们用线性回归模型。

# 导入模型

lin_reg=LinearRegression()

# 训练

lin_reg.fit(X_train,Y_train)

1

2

3

4

# 导入模型

lin_reg=LinearRegression()

# 训练

lin_reg.fit(X_train,Y_train)

4.对模型进行评估

# 对测试集评估

lin_reg.score(X_test,Y_test)

1

2

# 对测试集评估

lin_reg.score(X_test,Y_test)

5.查看斜率

# 看每一列数据斜率

print(lin_reg.coef_)

1

2

# 看每一列数据斜率

print(lin_reg.coef_)

array([-1.19007229e-01, 3.64055815e-02, 1.68552680e-02, 2.29397031e+00,

-1.60706448e+01, 3.72371469e+00, 9.22765437e-03, -1.30674803e+00,

3.43072685e-01, -1.45830386e-02, -9.73486692e-01, 7.89797436e-03,

-5.72555056e-01])

6.使用模型,对数据进行预测

# 对测试集上数据预测

lin_reg.predict(X_test)

1

2

# 对测试集上数据预测

lin_reg.predict(X_test)

7.与真实值对比

# 查看真实值

Y_test

1

2

# 查看真实值

Y_test

8.模型调用完成,下面进行误差分析

# 算偏差

deviation=lin_reg.predict(X_test)-Y_test

# 求均方根误差

RMSE=np.sum(np.sqrt(deviation*deviation))/102

print(RMSE)

1

2

3

4

5

6

# 算偏差

deviation=lin_reg.predict(X_test)-Y_test

# 求均方根误差

RMSE=np.sum(np.sqrt(deviation*deviation))/102

print(RMSE)

结果为:3.1432440289344696

9.保存结果

# 存放测试结果

import pandas as pd

result={"prediction":lin_reg.predict(X_test)}

result_file=pd.DataFrame(result)

# 转换文件格式

result_file.to_csv('simple_linear_regression.csv')

1

2

3

4

5

6

# 存放测试结果

importpandasaspd

result={"prediction":lin_reg.predict(X_test)}

result_file=pd.DataFrame(result)

# 转换文件格式

result_file.to_csv('simple_linear_regression.csv')

总结

Sklearn是一个常用机器学习库,Sklearn 包含了很多种机器学习的方法:

Classification 分类

Regression 回归

Clustering 非监督分类

Dimensionality reduction 数据降维

Model Selection 模型选择

Preprocessing 数据预处理

小杰博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权

转载请注明原文链接:机器学习笔记-20行代码实现房价预测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值