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

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

线性回归简介

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

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


线性回归公式

(1)基本公式

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

(2)公式向量化

y = a·x

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


模型评估

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

其中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]......],这样是方便我们之后的训练(机器学习库对样本格式有要求,不符合会报错),对于这个维度,我的理解是这样的,最外围代表训练数据这个整体,里面的每一个框代表一轮训练数据,框里的数字个数则代表数据特征个数,还有不懂的可以私信问我

效果如下


 

机器学习线性模型拟合

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

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()

运行结果如下

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

重点代码

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

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

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

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

 

 

目录
相关文章
|
27天前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
|
4月前
|
机器学习/深度学习 传感器 算法
【机器学习】多元线性回归基本概念
【1月更文挑战第23天】【机器学习】多元线性回归基本概念
|
4月前
|
机器学习/深度学习 测试技术
机器学习第6天:线性回归模型正则化
机器学习第6天:线性回归模型正则化
37 0
|
15天前
|
机器学习/深度学习 人工智能 分布式计算
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
18 0
|
3月前
|
机器学习/深度学习 人工智能 算法
利用Python实现简单的机器学习算法——线性回归
本文介绍了如何使用Python语言和相关库,通过实现线性回归算法来进行简单的机器学习模型训练和预测。通过详细的代码示例和解释,帮助读者了解机器学习中的基础概念和实践操作。
|
4月前
|
机器学习/深度学习 人工智能
【人工智能】<吴恩达-机器学习>多变量线性回归&学习率&特征值
【1月更文挑战第26天】【人工智能】<吴恩达-机器学习>多变量线性回归&学习率&特征值
|
4月前
|
机器学习/深度学习 人工智能
【人工智能】<吴恩达-机器学习>单变量的线性回归&认识梯度下降
【1月更文挑战第26天】【人工智能】<吴恩达-机器学习>单变量的线性回归&认识梯度下降
|
4月前
|
机器学习/深度学习 供应链 定位技术
机器学习中的线性回归
机器学习中的线性回归
45 0
|
4月前
|
机器学习/深度学习 算法
流行的机器学习算法——线性回归
线性回归(Linear Regression)是非常流行的机器学习算法。线性回归可以用来确定两种或两种以上变量之间的定量关系。具体来说,线性回归算法可以根据一组样本数据,拟合出一个线性模型,并通过对该模型的参数进行估计和预测,达到对未知数据进行预测的目的。
|
5月前
|
机器学习/深度学习 分布式计算 前端开发
【大数据技术】Spark MLlib机器学习线性回归、逻辑回归预测胃癌是否转移实战(附源码和数据集)
【大数据技术】Spark MLlib机器学习线性回归、逻辑回归预测胃癌是否转移实战(附源码和数据集)
35 0

热门文章

最新文章