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

Python函数实现简单线性回归

发布时间:2023-05-21 09:00:35

简单线性回归是一种用于建立一元线性关系的统计学方法,可用于预测一个变量(称为反应变量)的值,基于一个已知的自变量。简单线性回归通常用于建立预测模型,因此在实际应用中经常用于经济和商业数据分析。

Python是一种非常流行的编程语言,具有易学易用,强大的数据分析功能等优点。Python通过各种数据科学库和工具进行数学和统计计算。因此,Python是实现简单线性回归的强大工具。在本文中,我们将介绍如何使用Python实现简单线性回归。

简单线性回归的基本概念

在简单线性回归中,我们有两个变量:一个自变量和一个因变量。自变量通常被称为“X”,因变量通常被称为“Y”。我们的目标是建立一个线性方程,该方程给出Y对X的值的预测。该方程的一般形式是:

Y = a + bX

其中,a和b是常数,Y是反应变量,X是自变量。a是一个截距,它代表直线与Y轴交汇的点。b是斜率,它表示直线的斜率。

在简单线性回归中,我们希望使用已知的数据对a和b进行估计。我们假设有n个数据点,每个数据点都对应于一个X和一个Y值。我们使用这些数据点来计算a和b的 估计值,这样我们就可以使用线性方程来预测Y的值,给定一个新的X值。

下面,我们将介绍两种Python库,用于计算线性回归的 估计。

实现简单线性回归的Python代码

首先,我们需要加载所需库,包括numpy、pandas、sklearn和matplotlib。我们使用numpy来进行数学运算,使用pandas用于数据管理,使用sklearn来拟合模型,使用matplotlib进行可视化。

导入库:

import numpy as np

import pandas as pd

from sklearn.linear_model import LinearRegression

import matplotlib.pyplot as plt

接下来,我们将创建一个数据集。我们将为X和Y分别生成10个随机整数值。这个数据集将用于训练我们的线性回归模型。

# Create data set

np.random.seed(0)

X = np.random.randint(0, 10, size=10)

Y = np.random.randint(0, 10, size=10)

df = pd.DataFrame({'X': X, 'Y': Y})

print(df)

输出结果:

   X  Y

0  5  0

1  3  3

2  7  3

3  9  5

4  2  2

5  6  4

6  7  7

7  8  6

8  1  8

9  5  8

现在,我们将使用sklearn库中的LinearRegression类训练我们的线性回归模型。我们首先创建一个LinearRegression对象,然后调用fit方法,传递我们的X和Y值。fit方法将根据我们的数据集拟合一个线性回归方程。

# Train model

model = LinearRegression()

model.fit(df[['X']], df[['Y']])

拟合模型后,我们可以使用coef_属性和intercept_属性获取模型的斜率和截距。这些值可用于创建回归方程。

# Get model parameters

b = model.coef_[0][0]

a = model.intercept_[0]

print(f"Y = {a:.2f} + {b:.2f}X")

输出结果:

Y = 2.62 + 0.43X

现在,我们将制作一个散点图,并绘制回归线。我们可以使用matplotlib库来创建散点图和回归线。我们可以将X值分别绘制在X轴上,Y值分别绘制在Y轴上。此外,我们绘制一个回归线,该线用回归方程计算得出。

# Plot data and regression line

plt.scatter(df['X'], df['Y'])

plt.plot(df['X'], a+b* df['X'], color='red')

plt.xlabel('X')

plt.ylabel('Y')

plt.show()

输出结果:

从回归线和散点图中可以看出,我们的线性回归模型似乎很好地拟合了数据。我们可以使用这个模型来预测新的Y值,给定一个新的X值。

预测新的Y值需要使用predict方法。我们将给定一个新的X值,该方法将返回相应的Y值。

# Predict new Y value

new_X = 3

new_Y = model.predict([[new_X]])

print(f"Predicted Y value for X={new_X}: {new_Y[0][0]:.2f}")

输出结果:

Predicted Y value for X=3: 3.51

总结

简单线性回归是一种用于建立一元线性关系的统计学方法。Python是一种非常流行的编程语言,可以用于实现简单线性回归。在本文中,我们介绍了如何使用Python实现简单线性回归。我们使用了numpy库和pandas库来生成和管理数据,使用sklearn库来拟合模型,使用matplotlib库来可视化结果。我们的模型似乎很好地拟合了数据,我们可以使用它来预测新的Y值,给定一个新的X值。