线性回归python实现

quanzhankaifa

温馨提示:这篇文章已超过287天没有更新,请注意相关的内容是否还可用!

线性回归python实现

线性回归是一种用于建立变量之间线性关系的统计模型。它通过拟合一条最佳直线,来描述自变量与因变量之间的关系。在Python中,我们可以使用scikit-learn库来实现线性回归。

我们需要导入所需的库和数据集。在示例代码中,我们导入了numpy库用于数值计算,matplotlib库用于可视化数据,以及sklearn库中的LinearRegression模块用于实现线性回归。

import numpy as np

import matplotlib.pyplot as plt

from sklearn.linear_model import LinearRegression

接下来,我们需要准备数据集。线性回归需要至少两个变量,一个自变量和一个因变量。在示例代码中,我们生成了一个包含100个样本的随机数据集,其中自变量x是一个从0到10的等差数列,因变量y是自变量x加上一个随机噪声。

np.random.seed(0)

x = np.linspace(0, 10, 100)

y = 2 * x + np.random.randn(100)

接下来,我们可以使用LinearRegression模块来拟合线性回归模型。我们需要将自变量x的形状从一维数组转换为二维数组,因为LinearRegression模块要求输入的自变量是一个二维数组。然后,我们创建一个LinearRegression对象,并使用fit()方法来拟合数据。

x = x.reshape(-1, 1)

model = LinearRegression()

model.fit(x, y)

拟合完成后,我们可以使用模型的coef_属性和intercept_属性来获取线性回归模型的系数和截距。系数表示自变量对因变量的影响程度,截距表示当自变量为0时,因变量的取值。

coef = model.coef_

intercept = model.intercept_

print("Coefficient:", coef)

print("Intercept:", intercept)

我们可以使用模型来进行预测。在示例代码中,我们使用模型的predict()方法来预测新的自变量x_new对应的因变量y_new。

x_new = np.array([[5]]) # 新的自变量

y_new = model.predict(x_new)

print("Predicted y:", y_new)

线性回归模型的评估指标有很多,常见的包括均方误差(MSE)、决定系数(R-squared)等。我们可以使用sklearn库中的相关函数来计算这些评估指标。

from sklearn.metrics import mean_squared_error, r2_score

y_pred = model.predict(x)

mse = mean_squared_error(y, y_pred)

r2 = r2_score(y, y_pred)

print("Mean Squared Error:", mse)

print("R-squared:", r2)

线性回归模型的可视化也是非常重要的,可以帮助我们直观地理解模型的拟合效果。在示例代码中,我们使用matplotlib库来绘制原始数据和拟合直线的散点图。

plt.scatter(x, y, color='blue', label='Original data')

plt.plot(x, y_pred, color='red', label='Fitted line')

plt.xlabel('x')

plt.ylabel('y')

plt.legend()

plt.show()

通过以上步骤,我们就完成了线性回归模型的实现和评估。需要注意的是,线性回归模型假设自变量和因变量之间存在线性关系,对于非线性关系的数据,线性回归模型可能无法很好地拟合。在这种情况下,我们可以考虑使用其他非线性回归模型来进行建模。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码