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

Python函数实现线性回归分析

发布时间:2023-06-26 19:58:14

线性回归是统计学中最常见的一种回归分析方法,它可以用来预测一个连续变量的值,比如房价、股票价格等等。在机器学习中,线性回归也是最常用的算法之一。本文将介绍如何使用Python语言来实现线性回归分析。

1.线性回归模型

线性回归模型假设一个由x1,x2,......,xn自变量组成的特征向量和一个因变量y之间存在线性关系。模型认为y和x1,x2,......,xn之间可以表示为一个线性方程:

y = b0 + b1x1 + b2x2 + ...... + bnxn + ε

其中b0,b1,b2,......,bn是回归系数,ε是误差项,用来表示模型无法完全解释因变量的原因。

我们需要找到最佳拟合线,即最小化误差平方和(SSE)的拟合线。SSE就是所有误差的平方和,即:

SSE = Σ(yi - ?i)2

其中yi是真实值,?i是预测值。

2.训练模型

我们需要一组数据来训练模型。这组数据包括自变量和因变量。

在下面的示例中,我们将使用一组随机数据作为输入数据。数据集包含1000个样本,其中自变量(即特征)为随机生成的两个数字,因变量为这些数字的和加上一个小的误差。我们将通过这组数据来训练模型。

import numpy as np

import matplotlib.pyplot as plt

%matplotlib inline

plt.style.use('ggplot')

# 生成数据

np.random.seed(0)

X = np.random.rand(1000, 2)

y = X.sum(axis=1) + 0.1*np.random.randn(1000)

# 绘制数据图

plt.scatter(X[:,0], y)

plt.xlabel('X1')

plt.ylabel('y')

plt.show()

下面是绘制的图像:

绘制的图像显示了X1和y之间的关系。可以看出,X1和y之间存在线性关系。

接下来,我们将使用Python的scikit-learn库来实现线性回归模型。

# 导入模块

from sklearn.linear_model import LinearRegression

# 创建线性回归模型

model = LinearRegression()

# 拟合模型

model.fit(X, y)

这段代码中,我们使用LinearRegression类创建了一个线性回归模型。然后,我们使用fit()方法拟合模型。拟合模型后,我们就可以使用该模型来对新的数据进行预测。

3.测试模型

现在,我们使用创建的模型来对新数据进行预测。我们将生成一组新数据,然后使用模型来预测它们的输出。最后,我们将比较预测值和真实值之间的差距,来评估模型的准确性。

# 生成测试数据

X_test = np.random.rand(10, 2)

y_test = X_test.sum(axis=1) + 0.1*np.random.randn(10)

# 预测新数据

y_pred = model.predict(X_test)

# 比较预测值和真实值

plt.scatter(y_test, y_pred)

plt.xlabel('y_test')

plt.ylabel('y_pred')

plt.show()

下面是绘制的图像:

这张图显示了预测值和真实值之间的关系。可以看出,预测值和真实值之间有很强的线性关系。

另一种评估模型准确性的方法是计算模型的拟合优度(R2)。拟合优度是一个介于0和1之间的数字,表示模型可以解释的因变量方差占总方差的比例。R2越接近1,模型越准确。

# 计算R2

print('R2:',model.score(X_test, y_test))

这段代码显示了模型的拟合优度。在这个例子中,拟合优度很接近1,说明模型的准确度很高。

总结

本文介绍了如何使用Python语言实现线性回归分析。我们使用scikit-learn库创建了一个线性回归模型,训练了模型,并使用它来预测新的数据。最后,我们比较了预测值和真实值之间的差距,并计算了模型的拟合优度。