机器学习实例——简单回归

简单回归,从名字我们就可以看出来这是一个简单的回归方法,在这个实例中我们通过对房屋的价格预测来学习这个方法。简单回归,通过给出的一个输出,为预测的输出拟合出一条直线。假设:我们现在有了两个数据点,房屋的面积以及房屋的价格,我们可以将房屋的面积当作X(输入数据),把房屋的价格当作Y(输出数据)。

现在我们在jupyter Notebook 中利用简单的回归来预测数据结果。分析文件数据,现在我们有数据文件simple_regression_data.csv,文件中主要有两个数据,不同的厂商在不同时间采购的金属的体积与价格。在这个实例中我们,可以把采购的金属的体积作为X(输入数据),采购的金属的价格Y作为Y(输出数据),将文件的数据进行分割,80%作为训练集,20%作为测试集,利用训练集进行特征提取训练回归模型,然后使用测试集通过刚刚训练的模型进行预测。
导入库

import pandas as pd
import matplotlib.pyplot as plt
from pylab import rcParams
rcParams['figure.figsize'] = 10,8

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression,  Lasso, Ridge
from sklearn.metrics import mean_squared_error, r2_score, mean_absolute_error

利用pandas库读取文件数据

regression_data = pd.read_csv('../data/simple_regression_data.csv')

简单看一下数据里面的信息。

regression_data.head()

首先利用文件数据绘制图

plt.scatter(regression_data['Volume'], regression_data['Price'])
plt.xlabel('Volume')
plt.ylabel('Price')
plt.title('Price - Volume Data')

在这里插入图片描述

将数据分割成训练集和测试集,训练集包括80%的数据,测试集包括20%的数据。

X_train,X_test,Y_train,Y_test = train_test_split(regression_data['Volume'], regression_data['Price'], test_size=0.20)

建立模型并且预测测试数据

#建立模型并预测测试数据
#创建线性回归对象
simple_linear_regression = LinearRegression()

#利用训练集训练模型
X_train = X_train.values
Y_train = Y_train.values
X_test = X_test.values
simple_linear_regression.fit(pd.DataFrame(X_train), pd.DataFrame(Y_train))

#使用测试集进行预测
Y_pred = simple_linear_regression.predict(pd.DataFrame(X_test))

输出图像

#input image
plt.scatter(X_test, Y_test, colors='blue')
plt.plot(X_test, Y_pred, color='red', linewidth=2)

在这里插入图片描述
输出均方误差

#输出均方误差
print("Mean squared error: %.lf" % mean_squared_error(Y_test, Y_pred))

输出R系数

print('R2 Score: %.2f' % r2_score(Y_test, Y_pred))

在这里插入图片描述
参考文献:python机器学习 [印]Abhishek Vijayvargia 著,宋格格 译;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值