欢迎访问宙启技术站
智能推送

Python实现的简单线性回归算法

发布时间:2023-12-04 14:36:27

线性回归是一种用于预测数值型目标变量的机器学习算法,它建立了自变量和因变量之间的线性关系。本文将介绍如何使用Python实现简单线性回归算法,并给出一个使用例子。

简单线性回归假设自变量和因变量之间存在线性关系,即因变量可以用自变量的线性组合来表示。假设我们有一个数据集,其中包含了自变量X和因变量Y的值。通过线性回归算法,我们可以找到一个最佳拟合的直线来预测Y。

下面是Python实现的简单线性回归算法的基本步骤:

1. 导入必要的库:我们需要导入numpy库来进行数值计算和matplotlib库来绘制图形。

   import numpy as np
   import matplotlib.pyplot as plt
   

2. 定义数据集:我们定义一个包含自变量X和因变量Y的数据集。

   X = np.array([1, 2, 3, 4, 5])
   Y = np.array([3, 4, 5, 6, 7])
   

3. 计算均值:我们计算自变量X和因变量Y的均值。

   mean_x = np.mean(X)
   mean_y = np.mean(Y)
   

4. 计算斜率和截距:我们根据下面的公式计算斜率和截距。

   numerator = np.sum((X - mean_x) * (Y - mean_y))
   denominator = np.sum((X - mean_x) ** 2)
   slope = numerator / denominator
   intercept = mean_y - slope * mean_x
   

5. 绘制最佳拟合直线:我们使用斜率和截距绘制最佳拟合直线。

   plt.scatter(X, Y)
   plt.plot(X, slope * X + intercept, color='red')
   plt.show()
   

下面是一个完整的使用例子:

import numpy as np
import matplotlib.pyplot as plt

X = np.array([1, 2, 3, 4, 5])
Y = np.array([3, 4, 5, 6, 7])

mean_x = np.mean(X)
mean_y = np.mean(Y)

numerator = np.sum((X - mean_x) * (Y - mean_y))
denominator = np.sum((X - mean_x) ** 2)
slope = numerator / denominator
intercept = mean_y - slope * mean_x

plt.scatter(X, Y)
plt.plot(X, slope * X + intercept, color='red')
plt.show()

上述代码会将数据集中的点用散点图绘制出来,并绘制出一个最佳拟合直线。我们可以根据这条直线对新的自变量值进行预测。

希望这个例子能帮助你理解如何使用Python实现简单线性回归算法。