目录一、多元线性回归1.1 什么是多元线性回归1.2 为什么需要多元线性回归1.3 多元线性回归的预测函数1.4 如何使用多元线性回归函数1.5 实际案例1.6 多元线性回归在现实中的应用二、Logistic回归逻辑回归2.1 什么是Logistic回归又称逻辑回归2.2 为什么需要逻辑回归2.3 逻辑回归的预测函数2.4 如何使用逻辑回归函数2.5 实际案例2.6 逻辑回归在现实中的应用一、多元线性回归1.1 什么是多元线性回归多元线性回归是机器学习中最基础、也是最经典的回归算法之一。当你有多个影响因素想预测一个具体的连续数字房价、气温、身高等时它就是在数据里找一张「最合适的超平面」让预测值尽可能接近真实值。一句话多元线性回归Multiple Linear Regression用来预测连续数值。1.2 为什么需要多元线性回归我们都知道一元线性回归是什么公式就一条直线意思是只看一个影响因素 xx估一个连续的数字。但是它能干什么?比如预测房价你暂时只关心面积别的因素先不管面积 100㎡ → 预 200万面积120㎡ → 预测 240万。面积越大价越高——在「只看面积」的前提下一元线性回归完全说得通。但是换到另一个场景就不行了在现实中买房你不可能只看面积。两套都是 100㎡A 房3 个房间、房龄 5 年 → 卖280 万B 房2 个房间、房龄 20 年 → 卖220 万面积一样价格却差 60 万。一元回归只有「面积」这一个输入只能给一个预测比如都估 230 万没法解释「为什么同面积不同价」也没法回答「房间数、房龄差不多时面积每多 1㎡大概涨多少」一句话一元回归 只允许1 个原因但现实往往是好几个原因一起起作用。所以有了多元线性回归把多个因素一起放进模型对应到房价多元线性回归补上的就是「多个因素联合估一个连续数字」——还是预测「多少万」但不再只能看一个面积了。1.3 多元线性回归的预测函数预测函数标准形式其中或为截距矩阵形式n个样本输出任意实数连续值训练目标最小化均方误差一句话总结就是多个特征的线性组合 →拟合一个连续数字1.4 如何使用多元线性回归函数我们有了预测函数——输入 square、rooms、age输出​。但这些数据从哪来不能凭空捏造要靠历史数据并且先定义什么叫「拟合得好」先想一个问题怎样算「猜得准」还是房价的例子。假设三套房的真实价和预测价如下真实price预测误差1280 万275 万5 万2220 万230 万-10 万3350 万340 万10 万每一行都有一个残差真实 − 预测5、-10、10。我们的目标很朴素让这些误差整体尽量小。难点在于误差有正有负不能直接相加——否则猜高10万和猜低10万会互相抵消看起来「没误差」。所以多元线性回归的经典做法是先平方再对所有样本加起来。下面把这个想法写成公式。第 i套房的真实 price​模型预测的 price样本总数这个式子就是在说每一套房都算一遍「预测偏差有多大」平方后求平均——平均平方误差越小整体拟合越好。为什么要平方而不是直接取绝对值三点原因1.正负误差不会互相抵消——猜高10万和猜低10万都算错平方后都是100。2.大错罚得更重——差20万的惩罚是差10万的4倍模型会更努力避免离谱预测。3.数学上好求导方便后面用公式或梯度下降找到最优。用一句话概括让每一套房的「预测价 − 真实价」尽量接近 0所有样本的平方误差之和越小越好。那么有了损失训练在干什么MSE只是「打分规则」训练就是在这个规则下找最好的参数在所有可能的权重里选那一组让 MSE 最小的——那就是模型从数据里「学」到的和。最后退回一个特征直觉更清楚如果暂时只看square一个因素上式就是在散点图上找一条直线让各点到直线的竖直距离平方和最小——中学里也叫「最小二乘拟合」。特征变成多个时不过是把「一条线」推广成「一个超平面」损失函数的形式不变道理一样。特征多的时候还有一条公式路若设计矩阵可逆甚至有解析解不必迭代这叫正规方程。实际项目里特征一多、样本一大更常用数值优化或直接调sklearn不必手算逆矩阵——但知道「MSE 最小化有闭式解」有助于理解它在做什么。同时这条损失不是随便选的若进一步假设真实 price 与预测值之间的误差服从高斯正态分布那么「最大化似然MLE」和「最小化 MSE」是一回事。也就是说MSE 不只是一个好用的打分方式背后还有概率依据。1.5 实际案例前面四节把公式和损失都讲清了——这一节做一件事用真实数据跑一遍看模型学出来的长什么样、预测靠不靠谱、图该怎么读。第一步获取数据我现在有这么一组200个数据样本ID面积房间数房龄房价10.130741-1.43014-0.44004-69.260921.502357-0.269410.717542155.253530.6476890.496714-0.1382668.8255640.341756-0.759130.15039415.69516...............196-1.328190.208864-1.95967-235.4261971.366874-2.30192-1.51519-64.496198-0.42065-0.23459-1.41537-172.703199-0.83095-0.863990.048522-74.342000.9633761.158596-0.8206826.49008数值是标准化后的模拟数据不是真实「多少㎡、多少万」但结构和1.2的房价故事一致——三个特征 → 一个连续 price。第二步划分数据让模型「学」和实际项目一样把 200 条分成训练集75%用来最小化MSE学和测试集25%训练时不给模型看专门用来检验「对新样本泛化好不好」第三步分析跑出来的结果学习到的系数 w: [72.181 22.34 72.171]截距 b: -0.531测试集 MSE: 285.46测试集 R2: 0.9709的符号和大小在训练集上学到的「每个因素对 price 的方向和力度」——具体业务里还要结合特征是否标准化来解读。MSE 285.46测试集上平均平方误差越小越好要和 price 的量级一起看。R2 ≈ 0.97模型能解释测试集上约97%的价格波动——说明拟合相当不错模拟数据噪声较小所以 R2 偏高是正常的。第四步代入一条新样本手算直觉拿第 2 条样本square 1.50rooms -0.27age 0.72真实 price 155.3。用学到的权重代入公式和真实 155.3 很接近——这就是「训练完以后对新输入做预测」的完整流程。第五步看图——两张图各回答一个问题左图回答了预测整体有没有跟着真实走右图回答了有没有「系统性偏高/偏低」一个一个分析左图蓝色圆点是测试集真实 price橙色叉号是预测 price。叉号与圆点几乎重合且都沿同一上升趋势分布——说明模型抓住了「面积越大、价越高」的主规律。右图红色虚线是残差 0蓝点 真实 − 预测。点随机散落在 0 上下没有「预测越大残差越大」的漏斗形也没有明显的 U 形弯带——说明线性假设基本合理没有漏掉「该用曲线却用了直线」的大问题。个别点偏离稍远最大约 ±40属于正常噪声不是模型系统性失败。1.6 多元线性回归在现实中的应用我们在模拟房价数据上走完了全流程。回到现实多元线性回归的用法不变——多个因素一起估一个连续数字变的只是行业和特征名。以下有三个经典场景分类适用于多元线性回归场景一房价定价输入square、rooms、age、location 等输出price多少万问法「这套房大概值多少」和1.2的故事一一对应——也是本文贯穿的例子。场景二销量预测输入广告投入、促销力度、季节指数输出sales件数或金额问法「下周大概能卖多少」逻辑一样不是单看「广告花多少」而是多因素联合估一个数。场景三用电负荷输入温度、湿度、是否节假日输出loadkWh问法「明天电网负荷大概多少」调度部门要的是可量化的连续预测方便做储备和排班。三个场景的共同点共同点说明标签是连续值可以比大小、算差值问的是「是多少」不是「是不是」「哪一种」需要多因素单一因素往往不够要用多元模型如果你遇到的任务符合上表多元线性回归通常是第一个该试的基线模型。若标签变成 0/1是否、有没有就要换工具——那就是第二篇逻辑回归要解决的问题。二、Logistic回归逻辑回归2.1 什么是Logistic回归又称逻辑回归逻辑回归是机器学习中最基础、也最经典的分类算法之一。当你有多个影响因素想判断一个二选一的结果邮件是否 spam、是否患病、贷款是否通过并想知道有多大把握时它先对特征做线性组合再通过 Sigmoid 把得分映射成 01 之间的概率从而给出「是 / 否」的结论。名字里虽带「回归」但它做的是分类 概率估计。一句话就是逻辑回归Logistic Regression用来二分类——问的是「是不是」2.2 为什么需要逻辑回归我们上面才学习完多元线性回归是什么意思是把多个影响因素一起算输出是一个具体的数字——可以是 26.3可以是 328.5可大可小。但是它能干什么比如预测明天气温模型输出26.3°C——你要的就是「明天多少度」多元回归正合适。预测房价、销量、身高……凡是问「是多少」多元线性回归都是好工具。但是换到另一个场景就不行了现在任务变了不是问「多少」而是问「是不是」。比如判断邮件是不是垃圾邮件——只有两种答案spam1或正常0。如果还硬用多元回归算出来可能是邮件 A邮件 B你没法跟老板说「这封邮件spam概率 144%」也没法说「负 32% 是垃圾邮件」。硬用 0.5 当阈值虽然能勉强分对错但输出不是合法概率——银行要的「违约概率 23%」也给不出来。所以多元回归擅长「估一个连续数字」分类问的是「属于哪一类、有多大把握」——问法换了工具就不匹配。2.3 逻辑回归的预测函数预测函数标准形式其中为Sigmoid函数输出(0,1)(0,1) 概率训练目标最小化二分类交叉熵一句话总结就是线性组合 Sigmoid →判断两类、给出概率2.4 如何使用逻辑回归函数上一节我们有了预测函数——输入特征输出属于正类的概率。但和从哪来和多元回归一样要靠历史数据而要用数据得先定义什么叫「分得好」先想一个问题分类里怎样算「猜得准」回归可以直接比「差多少万」分类不行——标签只有 0 或 1。还是用邮件的例子。假设 4 封邮件真实标签和模型预测如下真实0正常1spam预测感觉11spam0.92很准20正常0.08很准31spam0.35偏保守错了40正常0.78偏激进错了规律很清楚真实是 1 时希望​ 靠近 1真实是 0 时希望靠近 0。而且错得越离谱应该罚得越重——把正常邮件判成 99% spam显然比判成 51% 更糟。接下来要找一个损失函数把上面这套「直觉」变成可以优化的数字。二分类交叉熵把直觉写成公式∈{0,1}第 ii 个样本的真实标签​模型预测「属于正类1」的概率样本总数对照前面的表格看当真是 spam式子里只剩。越接近 1损失越小若接近 0像第 3 封那样给了 0.35会明显变大——就是在惩罚「该说是却不敢说是」。当真是正常式子里只剩。越接近 0 越好若接近 1像第 4 封那样给了 0.78损失同样会很大。一句话让模型对「该是的样本」果断说是对「该不是的样本」果断说否。交叉熵就是在度量「预测概率离这个理想状态有多远」。为什么不用「数错了几个」也不用 MSE你可能会问直接数错了几封邮件0/1 损失不行吗或者用多元回归那套 MSE把 0/1 标签当连续数去拟合方式问题只数错了几个0/1 损失猜错 51% 和猜错 99% 惩罚一样模型不知道往哪改梯度几乎学不动硬用 MSE 拟合 0/1输出可以跑出 01 之外且对「概率是否校准」不敏感交叉熵错得越离谱罚越重处处可导天然适配 01 概率输出所以逻辑回归选交叉熵不是随便挑的——它正好接在上节的 Sigmoid 后面形成「概率输出 概率损失」一整套。有了损失训练在干什么和多元回归一样有了打分规则训练就是找让分数最低这里是最小化损失的参数在所有可能的权重里选那一组让交叉熵最小的——模型就「学会」了怎么给合法、可信的概率。这条损失同样有据可查若假设标签服从伯努利分布∼Bernoulli()y∼Bernoulli()那么「最大化似然MLE」和「最小化交叉熵」是一回事。和第一篇 MSE 对应高斯假设一样这里的交叉熵也不是拍脑袋——它来自「标签是 0/1 随机事件」这一概率模型。2.5 实际案例前面四节把公式和损失都讲清了——这一节做一件事用真实数据跑一遍看模型学出来的长什么样、预测靠不靠谱、图该怎么读。第一步获取数据我现在有这么一组300个数据样本ID指标1指标2是否正类10.733246-1.43101020.6560430.842841130.537983-2.05655041.289308-0.079021............2990.1224470.7424813001.7159591.1683371和多元回归不同这里的只有 0 或 1没有「中间值」——正好对应2.2说的「是不是」类问题。第二步训练——最小化交叉熵流程和多元线性回归类似75% 训练、25% 测试第三步看概率——不止「对/错」权重 w: [0.736 3.12 ]截距 b: -0.467测试集准确率: 0.9333分类报告:precision recall f1-score support类 0 0.97 0.89 0.93 38类 1 0.90 0.97 0.94 37accuracy 0.93 75macro avg 0.94 0.93 0.93 75weighted avg 0.94 0.93 0.93 75测试集 75 条里错 5 条75 − 70 5准确率 93.3%。更细地看分类报告类精确率召回率解读0负类0.970.89判为 0 的很准但有 4 个真 0 被漏判成 11正类0.900.97真 1 大多抓住了漏检少结论93% 准确率 两类 F1 都在 0.93 左右说明模型有效分开了两类。逻辑回归的价值在于。拿第 2 条样本真实1特征 0.66 0.84模型给出P(1)≈0.93按2.3规则→ 判为1和真实标签一致若这是信贷场景就可以跟业务说「违约概率约 93%」——这就是2.2强调的逻辑回归相比硬用多元回归多出来的能力。第四步看图——决策边界在说什么绝大多数点落在「与自己颜色一致」的背景区仅约 5 个点跨到了对面——和 93.3% 准确率一致。这些错分点多半靠近分界线属于「概率在 0.5 附近、模型本身就不太确定」的样本可接受。那么为什么要用Sigmoid函数如下图第五步数值对照硬用线性回归为什么「数看起来还行、用起来却不行」同一数据集上若硬用多元线性回归则会出现线性回归输出范围: [-0.532, 1.443] ← 出现负值和 1不是合法概率 强行 0.5 阈值准确率: 0.9233 逻辑回归概率范围: [0.000, 1.000] ← 合法 逻辑回归准确率: 0.9300准确率差不多92% vs 93%但线性回归的1.443、-0.532 无法当概率向业务解释——这就是2.2说的「工具不匹配」。分类任务应看逻辑回归不能只看准确率数字接近就偷用回归。2.6 逻辑回归在现实中的应用我们在二维特征上看到了「分界线 概率」。现实中特征可以很多但问法不变是不是、会不会、要不要——且往往既要判类也要概率。以下有三个经典场景分类适用于逻辑回归场景一信贷风控输入收入、负债比、逾期记录输出是否违约0/1 违约概率问法「这笔贷款会不会违约概率多大」风控不只要「拒/批」还要算预期损失——直接进业务公式所以必须用逻辑回归这类输出合法概率的模型。场景二垃圾邮件过滤输入词频、链接数、发件人信誉等输出是否 spam问法「这封邮件是不是垃圾」可以设≥0.9才进垃圾箱减少误杀——阈值灵活依赖的正是概率输出。场景三疾病筛查输入血压、血糖、BMI输出是否高风险问法「要不要进一步检查」医学场景常更怕漏诊假阴性会故意降低阈值——同样基于调而不是只能「对/错」一个点。