当前位置: 首页 > java >正文

机器学习-入门-线性模型(2)

机器学习-入门-线性模型(2)

3.4广义线性回归

一般形式: y = g − 1 ( w T x + b ) y = g^{-1} \left( w^T x + b \right) y=g1(wTx+b)

单调可微的联系函数 (link function)

g ( ⋅ ) = ln ⁡ ( ⋅ ) g(\cdot) = \ln (\cdot) g()=ln() 则得到对数线性回归

ln ⁡ y = w T x + b \ln y = w^T x + b lny=wTx+b

实际上是在用 e w T x + b e^{w^T x + b} ewTx+b逼近 y y y

3.5对率回归

线性回归模型产生的实值输出 z = w T x + b z = w^T x + b z=wTx+b

期望输出 y ∈ { 0 , 1 } y \in \{0, 1\} y{0,1}

理想的"单位阶跃函数" (unit-step function)

y = { 0 , z < 0 ; 0.5 , z = 0 ; 1 , z > 0 , y = \begin{cases} 0, & z < 0; \\ 0.5, & z = 0; \\ 1, & z > 0, \end{cases} y= 0,0.5,1,z<0;z=0;z>0,

性质不好,需找"替代函数" (surrogate function)

常用单调可微、任意阶可导

y = 1 1 + e − z y = \frac{1}{1 + e^{-z}} y=1+ez1

z z z y y y的联系函数

对数几率函数 (logistic function) 简称"对率函数"

以对率函数为联系函数: y = 1 1 + e − z y = \frac{1}{1 + e^{-z}} y=1+ez1

变为 y = 1 1 + e − ( w T x + b ) y = \frac{1}{1 + e^{-(w^T x + b)}} y=1+e(wTx+b)1

即: ln ⁡ ( y 1 − y ) = w T x + b \ln \left( \frac{y}{1 - y} \right) = w^T x + b ln(1yy)=wTx+b

ln ⁡ ( y 1 − y ) \ln \left( \frac{y}{1 - y} \right) ln(1yy)称为几率 (odds),反映了 x x x 作为正例的相对可能性(log odds,亦称 logit)。

“对数几率回归”(logistic regression)简称“对率回归”

  • 无需事先假设数据分布
  • 可得到“类别”的近似概率预测
  • 可直接应用现有数值优化算法求取最优解

注意:它是分类学习算法!

3.6多分类任务

一对多(One-vs-Rest, OvR)

原理
为每个类别训练一个独立的二分类器,将该类别作为正类,其他所有类别合并作为负类

实现步骤

  1. 假设共有K个类别
  2. 训练K个二分类器(如逻辑回归、SVM等)
  3. 第i个分类器的训练数据:
    • 正样本:原始数据中标签为类别i的样本
    • 负样本:原始数据中标签不为类别i的所有样本
  4. 预测时:
    • 用所有K个分类器分别预测
    • 选择输出概率/分数最高的类别作为最终预测结果

特点

  • 优点:只需训练K个分类器,计算效率较高
  • 缺点:当类别数很多时,每个分类器的负样本会远多于正样本,导致类别不平衡问题

一对一(One-vs-One, OvO)

原理
为每两个类别组合训练一个独立的二分类器,专门区分这两个类别

实现步骤

  1. 假设共有K个类别
  2. 训练K×(K-1)/2个二分类器(如逻辑回归、SVM等)
  3. 每个分类器(i,j)的训练数据:
    • 只使用原始数据中标签为i或j的样本
    • 类别i作为正类,类别j作为负类(或反之)
  4. 预测时:
    • 让所有分类器进行预测并记录"投票"
    • 统计每个类别获得的票数
    • 选择得票数最多的类别作为最终预测结果

特点

  • 优点:每个分类器只关注两个类别,训练数据更均衡
  • 缺点:需要训练O(K²)量级的分类器,当K很大时计算开销显著增加
http://www.xdnf.cn/news/2604.html

相关文章:

  • 线下零售数据采集:在精度与效率之间寻找平衡点
  • 在 Ubuntu 24.04 LTS 一台机子上同时部署Dify 1.3.1 和 RAGflow 0.18.0
  • 《数据结构之美--二叉树》
  • PCI/PXI 总线的可编程电阻卡
  • oracle 数据库查询指定用户下每个表占用空间的大小,倒序显示
  • Java垃圾收集器与内存分配策略深度解析
  • 再看 BBR 到 BBRv3 的公平性改进
  • Hadoop 单机模式(Standalone Mode)部署与 WordCount 测试
  • 深入解析 Babylon.js 中的 TransformNode.lookAt 方法
  • AI大模型应用之按照设计稿还原代码
  • 第36课 常用快捷操作——用“鼠标右键”退出当前命令
  • 计算机考研精炼 计网
  • 网络安全实战指南:从安全巡检到权限维持的应急响应与木马查杀全(命令查收表)
  • 基于YOLO的瓷砖缺陷检测系统设计与实现(附数据集+源码)
  • HarmonyOS NEXT 诗词元服务项目开发上架全流程实战(一、项目介绍及实现效果展示)
  • 使用TortoiseGit进行文件比较
  • 【3分钟准备前端面试】Hybrid开发 谷歌浏览器调试安卓app
  • 【优选算法-二分查找】二分查找算法解析:如何通过二段性优化搜索效率
  • 终端下PgSQL与MySQL常用命令
  • Sql刷题日志(day6)
  • 从视频中学习:从Humanoid-X、UH-1的自动打字幕,到首个人形VLA Humanoid-VLA(自监督数据增强且整合第一人称视角)
  • Vue响应式数据详解
  • 微调灾情分析报告生成模型
  • Golang 学习指南
  • 2025 FIC wp
  • 每日定投40刀BTC(15)20250420 - 20250427
  • 基于esp32实现键值对存储读写c程序例程
  • 码蹄集——输入、输出格式题
  • AI核心技术与应用场景的深度解析
  • 【Java二分查找】