机器学习第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()函数就是用训练好的模型进行预测

 

 

相关文章
|
机器学习/深度学习 算法 TensorFlow
机器学习算法简介:从线性回归到深度学习
【5月更文挑战第30天】本文概述了6种基本机器学习算法:线性回归、逻辑回归、决策树、支持向量机、随机森林和深度学习。通过Python示例代码展示了如何使用Scikit-learn、statsmodels、TensorFlow库进行实现。这些算法在不同场景下各有优势,如线性回归处理连续值,逻辑回归用于二分类,决策树适用于规则提取,支持向量机最大化类别间隔,随机森林集成多个决策树提升性能,而深度学习利用神经网络解决复杂模式识别问题。理解并选择合适算法对提升模型效果至关重要。
378 4
|
机器学习/深度学习 数据采集 人工智能
【机器学习】解释什么是线性回归?
【5月更文挑战第15天】【机器学习】解释什么是线性回归?
|
9月前
|
机器学习/深度学习 人工智能 算法
探索机器学习:从线性回归到深度学习
本文将带领读者从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将通过代码示例,展示如何实现这些算法,并解释其背后的数学原理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和知识。让我们一起踏上这段激动人心的旅程吧!
158 3
|
10月前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的线性回归模型
本文深入探讨了机器学习中广泛使用的线性回归模型,从其基本概念和数学原理出发,逐步引导读者理解模型的构建、训练及评估过程。通过实例分析与代码演示,本文旨在为初学者提供一个清晰的学习路径,帮助他们在实践中更好地应用线性回归模型解决实际问题。
115 3
|
10月前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
11月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
探索机器学习:从线性回归到深度学习
在这篇文章中,我们将一起踏上一场激动人心的旅程,穿越机器学习的广阔天地。我们将从最基本的线性回归开始,逐步深入到复杂的深度学习模型。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和深入的理解。让我们一起探索这个充满无限可能的世界吧!
|
11月前
|
机器学习/深度学习 API
机器学习入门(七):线性回归原理,损失函数和正规方程
机器学习入门(七):线性回归原理,损失函数和正规方程
|
10月前
|
机器学习/深度学习 数据采集 算法
探索机器学习中的线性回归
【10月更文挑战第25天】本文将深入浅出地介绍线性回归模型,一个在机器学习领域中广泛使用的预测工具。我们将从理论出发,逐步引入代码示例,展示如何利用Python和scikit-learn库实现一个简单的线性回归模型。文章不仅适合初学者理解线性回归的基础概念,同时也为有一定基础的读者提供实践指导。
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习:从线性回归到深度学习
【9月更文挑战第4天】在这篇文章中,我们将深入探讨机器学习的世界,从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将通过实际的代码示例,揭示这些模型背后的数学原理,以及如何在现实世界的问题中应用它们。无论你是初学者还是有经验的数据科学家,这篇文章都将为你提供新的视角和深入的理解。
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习的奥秘:从线性回归到深度学习
【8月更文挑战第26天】本文将带领读者走进机器学习的世界,从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将探讨各种算法的原理、应用场景以及实现方法,并通过代码示例加深理解。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的知识和技能。让我们一起揭开机器学习的神秘面纱,探索这个充满无限可能的领域吧!