线性回归(Linear Regression)

2024-01-10 09:29:08

什么是机器学习

线性回归是一种用于建立变量之间线性关系的统计模型。在简单线性回归中,我们考虑一个自变量和一个因变量的关系,而在多元线性回归中,我们考虑多个自变量和一个因变量之间的关系。

简单线性回归

简单线性回归模型可以表示为:

其中:

  • y 是因变量
  • x 是自变量
  • m 是斜率(表示变量之间的关系强度)
  • b 是截距(表示在自变量为 0 时,因变量的值)

训练简单线性回归模型的目标是找到最适合数据的直线,使得预测值与实际值的差距最小化。通常采用最小二乘法来拟合这条直线。

多元线性回归

多元线性回归考虑了多个自变量的情况,模型可以表示为:

在这里插入图片描述

其中:

  • y 是因变量
  • x1, x2, ..., xn 是多个自变量
  • b0 是截距
  • b1, b2, ... , bn 是各自变量的系数

训练多元线性回归模型的目标是找到一组系数,使得预测值与实际值的差距最小化。

模型训练步骤

  1. 收集数据: 收集包含因变量和自变量的数据。
  2. 定义模型: 根据问题的性质选择简单线性回归或多元线性回归,并定义回归方程。
  3. 拟合模型: 使用训练数据拟合回归方程,找到最优的系数。
  4. 预测: 使用模型对新数据进行预测。
  5. 评估: 使用评估指标(如均方误差、决定系数等)评估模型的性能。

代码示例(使用 Python 和 scikit-learn

以下是一个简单线性回归的示例:

from sklearn.linear_model import LinearRegression
import numpy as np
import matplotlib.pyplot as plt

# 生成随机数据
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

# 创建线性回归模型
model = LinearRegression()

# 拟合模型
model.fit(X, y)

# 打印系数和截距
print("斜率 (m):", model.coef_[0][0])
print("截距 (b):", model.intercept_[0])

# 预测新数据
X_new = np.array([[1.5]])
y_pred = model.predict(X_new)
print("预测结果:", y_pred[0][0])

# 绘制散点图和拟合的直线
plt.scatter(X, y, color='blue')
plt.plot(X, model.predict(X), color='red', linewidth=3)
plt.xlabel("自变量")
plt.ylabel("因变量")
plt.title("简单线性回归")
plt.show()

在这个例子中,我们使用 scikit-learn 库进行线性回归模型的训练和预测。

文章来源:https://blog.csdn.net/galoiszhou/article/details/135494286
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。