让我们通过一个直接的例子来巩固对线性回归的理解。请记住,回归的目标是预测一个连续的数值。在线性回归中,我们寻求找到一条最佳直线,用以描述输入变量(特征)与输出变量(目标)之间的关系。假设我们想了解学生学习时长与期末考试分数之间的关系。这是一个典型的回归问题:给出学习时长(输入),我们希望预测考试分数(输出)。场景:预测考试分数假设我们收集了五名学生的数据:学习时长 (x)考试分数 (y)140255365470580我们的输入特征 $x$ 是“学习时长”,输出目标 $y$ 是“考试分数”。我们希望找到它们之间的一个线性关系。数据可视化在构建模型之前,最好先将数据可视化。散点图很适合这样做,它将每位学生的数据点表示为根据其学习时长和考试分数绘制的点。{"layout": {"xaxis": {"title": "学习时长 (x)"}, "yaxis": {"title": "考试分数 (y)"}, "title": "考试分数 vs. 学习时长", "template": "simple_white", "autosize": true}, "data": [{"x": [1, 2, 3, 4, 5], "y": [40, 55, 65, 70, 80], "mode": "markers", "type": "scatter", "marker": {"color": "#228be6", "size": 10}, "name": "学生数据"}]}散点图显示了五名学生的学习时长与考试分数之间的关系。从图中看,这些点大致呈现上升趋势:学习时长越长,通常考试分数越高。用一条直线来近似这种关系似乎是合理的。模型:一条直线简单线性回归使用直线方程对这种关系进行建模:$$ y = mx + b $$或者,使用机器学习中常用的符号:$$ \hat{y} = \theta_1 x + \theta_0 $$这里:$\hat{y}$(读作“y-hat”)是预测的考试分数。$x$ 是输入特征,“学习时长”。$\theta_1$(或 $m$)是直线的斜率。它表示当学习时长 $x$ 增加一个单位时,预测分数 $\hat{y}$ 的变化量。$\theta_0$(或 $b$)是直线的y轴截距。它是当学习时长 $x$ 为零时,预测分数 $\hat{y}$。找到最佳拟合直线我们如何找到 $\theta_0$ 和 $\theta_1$ 的具体数值,从而得到“最佳”直线?正如我们之前讨论的,“最佳”意味着最小化我们直线的预测分数($\hat{y}$)与数据集中实际分数($y$)之间的差异。这种差异通过成本函数(如均方误差)来衡量。梯度下降算法通常用于迭代调整 $\theta_0$ 和 $\theta_1$,逐步降低成本函数,直到找到使误差最小化并使直线最紧密拟合数据的数值。假设在应用此过程后,我们找到的最佳拟合直线大约是:$$ \hat{y} = 10x + 30 $$因此,我们的模型参数是 $\theta_1 = 10$ 和 $\theta_0 = 30$。让我们在散点图上将这条直线可视化:{"layout": {"xaxis": {"title": "学习时长 (x)"}, "yaxis": {"title": "考试分数 (y)"}, "title": "考试分数 vs. 学习时长与回归线", "template": "simple_white", "autosize": true}, "data": [{"x": [1, 2, 3, 4, 5], "y": [40, 55, 65, 70, 80], "mode": "markers", "type": "scatter", "marker": {"color": "#228be6", "size": 10}, "name": "学生数据"}, {"x": [0, 6], "y": [30, 90], "mode": "lines", "type": "scatter", "line": {"color": "#f03e3e", "width": 2}, "name": "回归线 (y = 10x + 30)"}]}散点图显示了计算出的线性回归线以及数据的趋势。这条直线并没有完美地穿过每个点(这在真实数据中很少见),但它捕捉了整体趋势。进行预测既然我们有了模型($\hat{y} = 10x + 30$),我们就可以使用它来预测学生基于其学习时长的考试分数。例如,我们会预测学习了2.5小时的学生能得多少分?我们将 $x = 2.5$ 代入方程:$$ \hat{y} = 10 \times (2.5) + 30 $$ $$ \hat{y} = 25 + 30 $$ $$ \hat{y} = 55 $$我们的模型预测,学习2.5小时的学生考试分数为55分。解释模型我们的模型参数也提供了帮助我们理解的信息:斜率 ($\theta_1 = 10$): 学生每多学习一小时,我们的模型预测其分数将增加约10分。 "* 截距 ($\theta_0 = 30$): 模型预测,如果学生学习0小时,分数将是30分。考虑截距在实际情况中是否有意义是很重要的。预测0小时学习的分数可能合理,也可能超出了我们数据的范围(我们没有接近0小时学习的学生数据)。"示例总结在此示例中,我们:从一个将学习时长与考试分数联系起来的简单数据集开始。使用散点图可视化了数据。理解了简单线性回归旨在将一条直线($ \hat{y} = \theta_1 x + \theta_0 $)拟合到这些数据上。确定了最小化预测误差的最佳拟合直线参数($\theta_1 = 10$,$\theta_0 = 30$)(使用梯度下降等方法,之前已讨论)。使用了得到的模型方程($\hat{y} = 10x + 30$)对新输入进行预测。在问题情境中解释了斜率和截距的含义。"这个简单的示例阐明了线性回归背后的核心思想:对数据中的线性关系进行建模以进行预测。尽管问题通常涉及更多特征和复杂性,但基本原理保持不变。"