斜率是什么?机器学习背后的简单数学概念
发布: (2026年1月1日 GMT+8 10:57)
3 min read
原文: Dev.to
Source: Dev.to
引言
在上一篇文章中我们探讨了隐藏层、权重和偏置。现在我们需要转向更高级的主题。在此之前,我们需要了解一个叫做 斜率 的数学概念。
你可以把斜率看作是 Y 在 X 变化时的变化量。对于 X 的任意微小变化,斜率告诉我们 Y 相对于该变化的响应程度。
斜率的类型
- 正斜率 → 如果 X 增加,则 Y 增加
- 负斜率 → 如果 X 增加,则 Y 减少
- 零斜率 → Y 不变化
- 大斜率 → 陡峭的直线
- 小斜率 → 平缓的直线
在机器学习中,斜率表示输入特征对输出的影响强度。
机器学习中的斜率
考虑以下数值:
| x | y |
|---|---|
| 1 | 2 |
| 2 | 4 |
| 3 | 5 |
| 4 | 4 |
| 5 | 5 |
机器学习尝试找到最佳斜率 (m) 和最佳截距 (b),使得:
[ \text{predicted } y = mx + b ]
计算最佳拟合直线
import numpy as np
import matplotlib.pyplot as plt
# Sample data
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 5, 4, 5])
# Step 1: compute averages
x_mean = sum(x) / len(x)
y_mean = sum(y) / len(y)
# Step 2: compute slope (m)
# We can't use (y2 - y1) / (x2 - x1) here because we have many points,
# so this safely combines their behavior into one best-fit slope
num = sum((x - x_mean) * (y - y_mean))
den = sum((x - x_mean) * (x - x_mean))
m = num / den
# Step 3: compute intercept (b)
b = y_mean - m * x_mean
# Step 4: predicted values
y_pred = m * x + b
# Plot
plt.scatter(x, y)
plt.plot(x, y_pred)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Slope in Machine Learning (no polyfit)")
plt.show()
图表说明
- 蓝点 → 实际数据点
- 直线 → 学到的斜率 (m) 和截距 (b)
- 直线的陡峭程度即为斜率
小结
这是一段关于斜率的轻量介绍。下一篇文章中,我们将探讨斜率如何用于衡量和降低误差,这是一种机器学习模型学习背后的关键思想。你可以通过 Colab 笔记本尝试这些示例。