基于机器学习的工作经验与薪资的简单线性回归模型

本文将介绍机器学习中较为常见也较为简单的线性回归模型,以帮助读者快速了解以及快速上手。

1.理论支撑

本文所使用的数据集为如下样例:

ExperienceSalary
1.125068
1.232661
1.635111
1.643569
1.734264
1.746598
1.837035
2.235545

现有二元关系工作经验和薪资,我们将通过其数据的数学逻辑构建线性回归模型,本文将用到

普通最小二乘法(Ordinary Least Squares)作为构建精确的线性回归模型的支持。

1.1 OLS

OLS 的目标是找到一条直线,使得数据点到该直线的垂直距离的平方和最小化。

以满足斜率b1, 截距b0 满足

                                                                ​\sum (y_i - \hat{y}_i)^2 \text{ is minimized}

这是线性回归分析中常用的方法,以拟合一个模型,以实现对预测数据进行较为精确的预测,同时也满足了数据集的因变量和自变量的大致关系。

2. 数据处理

2.1 使用到以下库

  • Numpy
  • Pandas
  • Matplotlib
  • Sklearn

2.2 通过 pandas 读取csv文件 

datasets = pd.read_csv('./Salary-1.csv')

2.3 将因变量工作经验用 x 来表示,自变量薪资用 y 来表示

iloc[:,:]按位置索引来访问和操作数据

x = datasets.iloc[:,:-1].values
y = datasets.iloc[:,-1].values

2.4 分割训练集和验证集

test_size 是指测试集占原有数据集的比重,random_state则是随机种子,可以理解为打乱抽取

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=0)

3.训练模型

3.1 初始化模型

使用 sklearn.linear_model 中的 LinearRegression

lr = LinearRegression()

3.2 进行训练

lr.fit(x_train,y_train)

4.通过图表对比模型预测效果

为了直观表示出数据与我们的简单线性回归模型之间的联系,我们将原始数据x_test,y_test通过散点图的形式表示,将预测数据通过直线表示

plt.scatter(x_test,y_test,color='red')
plt.plot(x_test,lr.predict(x_test),color='blue')
plt.xlabel('experience')
plt.ylabel('salary')
plt.title('relation')
plt.show()

比较图如下:

测试集​​​​​​

由于测试集数据较少,模型的直观性不高,我们换回训练集对比效果:

训练集

随着数据的增加,我们可以看到已经根据该数据集成功拟合了简单的线性回归模型。

简单的线性回归模型旨在拟合一个能预测较为准确的模型,当然了,这并不是百分百,而是处于一定范围之间的准确率。能大致预测出结果。

以上就是对机器学习中的简单线性回归模型的分享,欢迎各位的交流!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值