机器学习第3天:线性回归

文章目录

线性回归简介

线性回归公式

(1)基本公式

(2)公式向量化

模型评估

机器学习代码

环境安装

生成数据 

机器学习线性模型拟合


 

线性回归简介

线性回归问题是机器学习中最基本的问题,它常用来预测一些和特征具有线性关系的值,我们在之前的文章中也提到过,可见这篇文章

机器学习第1天:概念与体系漫游-优快云博客


线性回归公式

(1)基本公式

eq?y%3Da_%7B1%7Dx_%7B1%7D+a_%7B2%7Dx_%7B2%7D+a_%7B3%7Dx_%7B3%7D+...

在这个公式中,y是预测值,a是参数,x是特征值,模型的学习目标就是拟合合适的a值,来预测y

(2)公式向量化

y = a·x

这里的a和x都是一组包含多个值的向量,为什么要这样做呢?因为在代码中,我们常常把数据组合成向量进行训练


模型评估

我们当然要判断模型的性能,这时我们需要一个指标,在回归任务中,最常见的指标是MSE(均方误差)

eq?MSE%3D%5Cfrac%7B1%7D%7Bm%7D%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%28a_%7Bi%7Dx_%7Bi%7D-y_%7Bi%7D%29%5E%7B2%7D

其中m是数据的个数,容易得到,MSE越小时模型性能更好,这代表着预测值和真实值的误差越小


机器学习代码

环境安装

sklearn,一个经典的机器学习库,在python命令行或conda虚拟环境命令行中运行以下代码(不知道怎么安装请自行搜索,这里不具体讲述)

pip install scikit-learn

numpy,一个常用的数据处理库

pip install numpy

matplotlib,一个好用的可视化库 

pip install matplotlib

 

生成数据 

我们先随机产生一些数据,并把它们绘制出来

import matplotlib.pyplot as plt
import numpy as np


np.random.seed(42) # 设置随机数种子,以便结果复现

x = np.random.rand(100, 1) # 产生100个0-1的数据x
y = 2*x+np.random.rand(100, 1) # 与x有线性关系并加上误差的y

plt.scatter(x, y)
plt.show()

有必要简单解释一下np.random.rand函数,rand的参数个数代表维度,参数数字代表每个维度的大小,在这个例子中rand(100, 1)创建了一个二维数组,里面有100个一维数据,数据类型大概为[[x1], [x2], [x3], [x4]......],这样是方便我们之后的训练(机器学习库对样本格式有要求,不符合会报错),对于这个维度,我的理解是这样的,最外围代表训练数据这个整体,里面的每一个框代表一轮训练数据,框里的数字个数则代表数据特征个数,还有不懂的可以私信问我

效果如下

2bc89343deea4dc48567cdf89d1d5e73.png


 

机器学习线性模型拟合

接下来我们使用机器学习模型来拟合

import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression

np.random.seed(42)

x = np.random.rand(100, 1)
y = 2*x+np.random.rand(100, 1)

model = LinearRegression()
model.fit(x, y)
pre_y = model.predict(x)


plt.scatter(x, y)
plt.plot(x, pre_y, "r-")
plt.show()

运行结果如下 

c86ceb07f8ab48049a79f8978b316190.png

这个红色的线就是机器学习模型拟合的线,可以看到效果还是不错的

重点代码

model = LinearRegression()
model.fit(x, y)
pre_y = model.predict(x)

这里先定义模型为线性回归模型

然后fit()函数就是用x,y数据训练模型

predict()函数就是用训练好的模型进行预测

 

 

 

评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nowl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值