第一步:认识数据
机器学习的一切从数据开始。这里我们用一个经典例子:根据房屋面积预测房价。
每个数据点代表一套房子——横轴是面积(平方米),纵轴是价格(万元)。
什么是数据集?
在监督学习中,每个样本有:
• 特征 (Feature) x:输入,即房屋面积
• 标签 (Label) y:输出,即房价
我们的目标:找到 x 与 y 之间的规律,使得给定面积时能预测价格。
在监督学习中,每个样本有:
• 特征 (Feature) x:输入,即房屋面积
• 标签 (Label) y:输出,即房价
我们的目标:找到 x 与 y 之间的规律,使得给定面积时能预测价格。
观察一下
面积越大,价格往往越高——它们之间存在明显的线性趋势。 我们可以用一条直线来描述这个规律,这就是线性回归的核心思想。
面积越大,价格往往越高——它们之间存在明显的线性趋势。 我们可以用一条直线来描述这个规律,这就是线性回归的核心思想。
数据预览(前 8 条)
第二步:划分数据集
训练模型前,必须将数据集划分为训练集和测试集。
点击按钮查看划分效果,理解为什么这一步不可或缺。
训练集(0个)
测试集(0个)
为什么要划分数据集?
想象你在备考:
• 训练集 = 平时做的练习题,用来学习
• 测试集 = 最终考试卷,用来检验效果
如果用考试题练习,再用同样的题考试,成绩就没有参考价值——模型也一样!
想象你在备考:
• 训练集 = 平时做的练习题,用来学习
• 测试集 = 最终考试卷,用来检验效果
如果用考试题练习,再用同样的题考试,成绩就没有参考价值——模型也一样!
过拟合 vs. 泛化能力
• 过拟合:模型在训练集上表现极好,但在测试集上表现差(死记硬背)
• 泛化:模型对从未见过的数据也能做出准确预测(举一反三)
测试集就是衡量泛化能力的工具。
• 过拟合:模型在训练集上表现极好,但在测试集上表现差(死记硬背)
• 泛化:模型对从未见过的数据也能做出准确预测(举一反三)
测试集就是衡量泛化能力的工具。
常见的划分比例
• 70% 训练 / 30% 测试(本演示)
• 80% 训练 / 20% 测试(最常用)
• 60% 训练 / 20% 验证 / 20% 测试(需要调参时)
• 70% 训练 / 30% 测试(本演示)
• 80% 训练 / 20% 测试(最常用)
• 60% 训练 / 20% 验证 / 20% 测试(需要调参时)
第三步:建立模型
线性回归的模型就是一条直线:ŷ = w·x + b。
参数 w(斜率)和 b(截距)决定了直线的形状。
拖动滑块,亲手感受参数如何改变模型,以及损失函数 MSE 如何衡量好坏。
训练集
测试集
当前模型
误差线
ŷ = 0.00 × x + 0.00
训练集损失 MSE
—
测试集损失 MSE
—
均方误差 MSE
MSE = 每个样本的(预测值 − 真实值)² 的平均值。
图中红色虚线是每个点的误差。MSE 越小,模型越好。
试试能把 MSE 调到多小?
MSE = 每个样本的(预测值 − 真实值)² 的平均值。
图中红色虚线是每个点的误差。MSE 越小,模型越好。
试试能把 MSE 调到多小?
第四步:训练模型(梯度下降)
手动调参太费力了!计算机用梯度下降算法自动寻找最优参数。
点击"开始训练",观察直线如何逐步靠近数据,以及损失如何下降。
训练集
测试集
当前模型
训练集损失
ŷ = 0.000 × x + 0.000
训练轮次 Epoch
0
训练集损失 MSE
—
学习率 lr
0.05
梯度下降的直觉
想象你站在山丘上,目标是走到最低点(损失最小)。 梯度告诉你"哪个方向是下坡",每次沿下坡方向走一小步,最终抵达谷底。
学习率决定步子大小:太大会越过最低点,太小收敛很慢。
想象你站在山丘上,目标是走到最低点(损失最小)。 梯度告诉你"哪个方向是下坡",每次沿下坡方向走一小步,最终抵达谷底。
学习率决定步子大小:太大会越过最低点,太小收敛很慢。
训练速度:
自动训练随时可暂停,暂停后可单步推进,或点击「继续训练」恢复自动训练
第五步:评估模型
训练完成后,用测试集评估模型的真实性能。
测试集数据从未参与训练——它们代表模型在"现实世界"中遇到的新数据。
训练集
测试集
训练好的模型
真实规律(参考)
ŷ = ? × x + ?
训练集 MSE
—
测试集 MSE
—
真实参数
w=0.5, b=20
结果分析
请先完成第四步的训练。
请先完成第四步的训练。
完整的机器学习流程
① 收集数据 → ② 划分训练/测试集 → ③ 选择模型 → ④ 训练(梯度下降) → ⑤ 测试集评估 → ⑥ 部署使用
① 收集数据 → ② 划分训练/测试集 → ③ 选择模型 → ④ 训练(梯度下降) → ⑤ 测试集评估 → ⑥ 部署使用