资讯详情

【老计带你懂AI算法】02:线性回归与逻辑回归,最朴素也最重要的两块地基

📅 2026/9/24 17:38:43 | 华诺云谱 👁 阅读
【老计带你懂AI算法】02:线性回归与逻辑回归,最朴素也最重要的两块地基
【老计带你懂AI算法】02线性回归与逻辑回归最朴素也最重要的两块地基开头为什么所有课程都从它俩讲起你翻开任何一本机器学习教材、点开任何一门课开头几乎都是线性回归和逻辑回归。新手常犯嘀咕这俩听起来这么简单“古老”都AI大模型时代了还有必要学吗太有必要了。因为这两个模型是理解机器学习到底在干什么的最好切入点。它们足够简单简单到你能看清里面每一个齿轮怎么转可它们又包含了机器学习最核心的思想学会它们的机制你就掌握了后面那些复杂模型的通用套路无非是把简单的东西堆得更复杂。而且别小看它们的实用性。在很多真实业务里一个训练好的逻辑回归效果不见得比花哨的深度学习差多少还快、还好解释。银行的信用评分、广告的点击率预估至今大量在用逻辑回归。它们是地基不是过时的古董。这一篇我们就把这两块地基打牢。线性回归本质就是画一条最合适的线先讲线性回归它解决的是回归任务也就是预测一个数值。举个最直观的例子预测房价。假设房价只跟面积有关你手里有一堆历史数据每条是面积到成交价。把它们画在坐标图上是一堆散点。线性回归干的事就是在这堆散点中间画一条最合适的直线。这条线一旦画好来了一套新房子你把面积代进这条线就能算出预测价格。那最合适是什么意思就是这条线要尽可能贴近所有的点让每个真实点到这条线的偏差预测值和真实值的差距的总和最小。机器学习管这个偏差总和叫损失函数线性回归用的是误差平方和。所以线性回归的学习过程说白了就是不断调整这条线的位置和斜率找到那条让总误差最小的线。这个调整参数、最小化损失的过程就是机器学习最核心的思想后面所有模型本质都在干这件事只是线变成了更复杂的函数。那机器具体怎么不断调整去找到最优的线这里藏着机器学习的另一个核心机制叫梯度下降值得用大白话讲一下因为后面深度学习还会反复用到它。想象你被蒙上眼睛站在一座山上要走到山谷最低点最低点就对应误差最小。你看不见全局怎么办很简单用脚感受一下当前位置哪个方向最陡、往下降得最快就朝那个方向迈一小步到了新位置再感受一次、再迈一步。这样一步步往下挪最终就能走到谷底。机器找最优参数就是这么干的它从一组随机的参数开始计算当前的误差看看往哪个方向微调参数能让误差下降最快这个方向在数学上叫梯度就朝那个方向调一点点然后反复迭代直到误差降到最低。每一步迈多大由一个叫学习率的东西控制迈太大会在谷底反复横跳、迈太小则慢得要命。记住蒙眼下山、朝最陡的方向一步步挪到谷底这个画面你就理解了几乎所有机器学习模型是怎么被训练出来的。从线性回归到大模型训练的底层逻辑都是这套梯度下降。现实里房价当然不只跟面积有关还有地段、楼层、房龄……那就从一条线升级成一个多维的平面每个因素配一个权重这个因素有多重要。但思想完全一样找到一组最合适的权重让预测和真实的总误差最小。逻辑回归把回归掰弯用来做分类再讲逻辑回归。名字里带回归干的却是分类的活这是新手最容易懵的地方。它要解决的问题是判断是或不是。这封邮件是不是垃圾邮件这个用户会不会流失这类问题输出的不是数值而是是/否两个类别。逻辑回归的巧妙在于它先像线性回归那样算出一个分数再用一个特殊的函数叫SigmoidS型函数把这个分数压缩到0到1之间变成一个概率。比如判断用户会不会流失模型先根据用户的各项特征算出一个分数再压成一个概率比如0.85。这个0.85的意思是这个用户有85%的可能会流失。然后设一个门槛通常0.5超过门槛就判为会流失否则不会。用一句话概括逻辑回归 线性回归算个分数 Sigmoid把分数变概率 拿概率跟门槛比来分类。它把预测数值的能力巧妙地掰弯成了判断类别的能力。为什么输出概率而不是直接给是/否很重要因为概率携带了置信度。判为流失是0.51的勉强判定还是0.99的十拿九稳业务上处理起来完全不同。这种给出概率的能力是逻辑回归特别实用的地方。还有个新手常问的问题既然线性回归也能算出个数值为什么做分类要多此一举加个Sigmoid不直接拿线性回归的输出判个大小原因有两个都挺关键线性回归的输出没有边界可能算出负数、也可能算出几百几千你没法解释这个数代表多大可能性。而概率必须在0到1之间Sigmoid正好把任意范围的数平滑地压进0到1天然适合表达可能性。Sigmoid是非线性的它在中间区域敏感、两端饱和。这意味着模型对模棱两可的样本反应灵敏对铁定是/铁定不是的样本则很笃定这更符合分类的直觉。直接用线性回归做分类对那些远离分界线的极端样本会异常敏感反而学不好。这就是逻辑回归的精妙它没有另起炉灶而是站在线性回归的肩膀上加一道Sigmoid变换就把预测数值优雅地转成了判断类别。理解了这个复用改造的思路你会发现机器学习里很多模型都是这么演进出来的不是推倒重来而是在已有的东西上巧妙地加一层。输入和输出长什么样把两个模型的输入输出说清楚你对它们就有了具体的感觉线性回归输入一批样本每个样本是若干个数值特征如房子的面积、房龄、楼层。输出一个连续数值如预测房价 358.6万。逻辑回归输入同样是一批样本、每个若干数值特征如用户的年龄、消费额、登录频率。输出一个0到1之间的概率如流失概率0.85再根据门槛转成类别流失/不流失。共同点输入都是一行行样本、每行一组特征数字就是表格数据。区别只在输出一个是数值一个是概率/类别。这也印证了总览篇说的分类和回归常放一起讲因为很多模型两样都能做。上代码两个模型都跑一遍代码用scikit-learn一个做回归、一个做分类。输入结构化特征。输出线性回归给数值逻辑回归给类别和概率。# 依赖pip install scikit-learnimportnumpyasnpfromsklearn.linear_modelimportLinearRegression,LogisticRegressionfromsklearn.model_selectionimporttrain_test_splitfromsklearn.datasetsimportload_breast_cancer# 线性回归预测数值 # 造一份简单数据面积(平米) - 房价(万)价格大致 面积*0.8 噪声np.random.seed(0)areanp.random.rand(200,1)*10050# 200套房面积50~150平米pricearea[:,0]*0.8np.random.randn(200)*520# 房价Xtr,Xte,ytr,ytetrain_test_split(area,price,test_size0.3,random_state0)linLinearRegression()lin.fit(Xtr,ytr)# 训练找那条最合适的线print(学到的斜率(每平米涨多少):,round(lin.coef_[0],3))print(学到的截距:,round(lin.intercept_,3))print(一套100平米的房预测价格:,round(lin.predict([[100]])[0],1),万)# 逻辑回归做分类 # 用经典的乳腺癌数据集根据肿瘤的各项测量特征判断良性/恶性X,yload_breast_cancer(return_X_yTrue)print(\n分类输入形状:,X.shape)# (569, 30) 569个样本30个特征Xtr,Xte,ytr,ytetrain_test_split(X,y,test_size0.3,random_state0)clfLogisticRegression(max_iter5000)clf.fit(Xtr,ytr)# 训练print(测试集准确率:,round(clf.score(Xte,yte),3))# 看第一个测试样本的预测既能给类别也能给概率print(第一个样本预测类别:,clf.predict(Xte[:1])[0])print(第一个样本各类别概率:,np.round(clf.predict_proba(Xte[:1])[0],3))运行输出示例学到的斜率(每平米涨多少): 0.803 学到的截距: 20.564 一套100平米的房预测价格: 100.9 万 分类输入形状: (569, 30) 测试集准确率: 0.977 第一个样本预测类别: 1 第一个样本各类别概率: [0.003 0.997]运行后你能看到线性回归学出了每平米涨多少钱这个斜率还能预测新房价格逻辑回归不仅给出类别还通过predict_proba给出了概率。注意两个模型的接口几乎一样fit训练、predict预测这就是sklearn的统一设计你学会一个模型的用法其他模型也会用了。关键参数与一个绕不开的概念正则化逻辑回归里最该懂的一个参数牵出机器学习一个核心概念过拟合与正则化。什么是过拟合就是模型在训练数据上表现特别好一到没见过的新数据上就拉胯。好比一个学生把课后习题的答案全背下来了考试考原题满分一换新题就傻眼他没真正理解只是死记硬背。模型也一样如果它过度追求把训练数据的每个点都拟合完美就会把数据里的噪声也当成规律学进去泛化能力就差。正则化就是给模型松绑的手段在追求拟合的同时惩罚过大的权重逼模型别太较真、保持简单。简单的模型反而更能抓住普遍规律、在新数据上更稳。sklearn的逻辑回归里参数C就是控制正则化强度的C越小正则化越强、模型越简单。过拟合是贯穿所有机器学习模型的头号敌人正则化是最常用的解药之一。这个概念你在后面每个模型都会反复遇到这里先建立直觉不是拟合得越完美越好能在新数据上表现好才是真本事。优缺点与适用场景线性/逻辑回归的优点简单、快、省资源训练飞快能处理海量数据。可解释性极强每个特征的权重清清楚楚能直接看出哪个因素影响大、正向还是负向。这在金融、医疗这些要给监管和用户交代的领域是刚需。是极好的基线做任何分类回归任务先跑个逻辑/线性回归当基准再看复杂模型有没有真的更好。缺点只能抓线性关系它本质是直线/平面思维如果数据的规律是复杂的曲线、非线性的它就抓不住。适合场景表格数据、特征和结果大致是线性关系、需要强解释性、要快速出基线。不适合图像语音文本这类复杂非结构化数据、规律高度非线性的场景那是后面树模型和深度学习的舞台。小结与承上启下这一篇你应该拿到了几样东西机器学习的核心套路调整参数、最小化损失误差线性回归把这个套路展示得最清楚。回归与分类的区别线性回归输出数值逻辑回归用Sigmoid把分数变概率来做分类。一个贯穿全程的核心概念过拟合与正则化不是拟合越完美越好。选型直觉简单、可解释、当基线抓不了非线性。线性/逻辑回归只会画直线和平面遇到复杂的非线性规律就无能为力。那怎么办下一篇的主角就是干这个的它用一层层如果……那么……的判断来处理复杂规律还能组队投票那就是决策树和随机森林。我们下一篇见。延伸阅读scikit-learn 官方文档广义线性模型含线性回归、逻辑回归https://scikit-learn.org/stable/modules/linear_model.htmlscikit-learn 官方用户指南本系列传统机器学习代码都基于它https://scikit-learn.org/stable/user_guide.html说明以上为官方公开文档地址可能随版本调整如打不开可用标题搜索。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。