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行代码实现房价预测