如何使用Python实现简单的线性回归

liftword4个月前 (01-11)技术文章25

前言

线性回归是一种常见的机器学习算法,用于预测一个连续型的输出变量。它基于线性关系来建立一个输入变量和输出变量之间的关系模型。在这篇文章中,我们将介绍如何使用Python实现简单的线性回归模型。

安装相关的库

首先,我们需要安装两个Python库:numpy和matplotlib。numpy用于数学计算,matplotlib用于数据可视化。你可以使用以下命令来安装它们:

pip install numpy
pip install matplotlib

准备好用于做线性回归的数据

接下来,为了演示,我们使用numpy生成一些数据,代码如下:

import numpy as np

# 生成数据
x = np.array([1, 2, 3, 4, 5, 6, 7])
y = np.array([3, 5, 7, 9, 11, 16, 16])

对数据进行可视化

上面我们生成了两个一维数组 x 和 y,用于表示输入变量和输出变量。接着,我们可以使用matplotlib 将这些数据可视化,代码如下:

import matplotlib.pyplot as plt

# 绘制散点图
plt.scatter(x, y)

plt.title('Scatter Plot')
plt.xlabel('X')
plt.ylabel('Y')

plt.show()

运行以上代码,就可以得到如下的散点图:


计算斜率和截距

从上图可以看到,这是一个线性关系的散点图,我们可以使用线性回归模型来拟合这些数据,并预测新的输出变量。在Python中,使用线性回归模型非常简单,我们只需要使用 numpy 中的 polyfit 函数,代码如下:

# 计算斜率和截距
slope, intercept = np.polyfit(x, y, 1)

print('Slope:', slope)
print('Intercept:', intercept)

运行以上代码,就可以得到如下的输出:

这里,polyfit 函数返回了斜率和截距,分别为 2.3214 和 0.2857。这就是我们的线性回归模型,即:y = slope*x + intercept

绘制拟合方程的曲线

接下来,我们可以使用 matplotlib 将线性回归模型绘制在散点图上,代码如下:

# 绘制散点图
plt.scatter(x, y)

# 绘制回归线
y = slope*x + intercept
plt.plot(x, y, color='r')

plt.title('Linear Regression')
plt.xlabel('X')
plt.ylabel('Y')

plt.show()

运行以上代码,就可以得到如下的图:

可以看到,线性回归模型已经很好地拟合了这些数据,并预测出了新的输出变量。

这个例子只是一个非常简单的线性回归模型,实际应用中可能需要更复杂的模型和更多的数据。但是,使用Python实现线性回归模型非常简单,并且可以帮助我们快速了解和分析数据。

相关文章

【Python机器学习系列】拟合和回归傻傻分不清?一文带你彻底搞懂

一、拟合和回归的区别拟合并不特指某一种方法,指的是对一些数据,按其规律方程化,比如把平面(一元)上一系列的离散点,用一条直线(线性)或光滑的曲线(非线性)连接起来,而其方程化的方法有很多,回归分析(r...

Python数学建模系列(四):数值逼近

若文中数学公式显示有问题 可查看文章原文Python数学建模系列(四):数值逼近菜鸟学习记:第四十二天1. 一维插值插值:求过已知有限个数据点的近似函数。插值函数经过样本点,拟合函数一般基于最小二乘法...

人工智能同样也会读死书----“过拟合”

上一篇:《“嵌入”在大语言模型中是解决把句子转换成向量表示的技术》序言:我们常常会说某某人只会“读死书”,题目稍微变一点就不会做了。这其实是我们人类学习中很常见的现象。可是你知道吗?人工智能其实更容易...

数据分析-对数回归分析Python

昨天开始回归系列的第一篇,是最简单的一元线性回归。除了线形关系,还有各种非线性关系,比如指数关系、对数关系、多项式关系,这些都要使用对相应的数据变换后才能进行分析。今天就从对数分析开始,来进行演示说明...

Python方差分析

昨天介绍了方差分析,以及方差分析之前的正态性检验和方差齐性检验,然后使用Excel和R语言两种工具分别来进行了方差的分析操作,具体的可以点击《方差分析 in R语言 and Excel》跳转,今天就使...