什么是机器学习
线性回归是一种用于建立变量之间线性关系的统计模型。在简单线性回归中,我们考虑一个自变量和一个因变量的关系,而在多元线性回归中,我们考虑多个自变量和一个因变量之间的关系。
简单线性回归
简单线性回归模型可以表示为:
其中:
y
是因变量x
是自变量m
是斜率(表示变量之间的关系强度)b
是截距(表示在自变量为0
时,因变量的值)
训练简单线性回归模型的目标是找到最适合数据的直线,使得预测值与实际值的差距最小化。通常采用最小二乘法来拟合这条直线。
多元线性回归
多元线性回归考虑了多个自变量的情况,模型可以表示为:
其中:
y
是因变量x1, x2, ..., xn
是多个自变量b0
是截距b1, b2, ... , bn
是各自变量的系数
训练多元线性回归模型的目标是找到一组系数,使得预测值与实际值的差距最小化。
模型训练步骤
- 收集数据: 收集包含因变量和自变量的数据。
- 定义模型: 根据问题的性质选择简单线性回归或多元线性回归,并定义回归方程。
- 拟合模型: 使用训练数据拟合回归方程,找到最优的系数。
- 预测: 使用模型对新数据进行预测。
- 评估: 使用评估指标(如均方误差、决定系数等)评估模型的性能。
代码示例(使用 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
库进行线性回归模型的训练和预测。