线性模型

2023-11-01

本文为自己学习《西瓜书》时做的一些笔记,方便知识点的梳理复习。

线性模型

  • 定义: 学的一个通过属性的线性组合来进行预测的函数。

  • 形式: 函数/向量

  • 优点:

    • 模型简单,已于建模
    • 蕴含着机器学习中一些基本思想,一些强大的非线性模型可以通过引入层级结构或高为映射得到。如lny 与 x函数之间的关系。
    • 向量w,可以直观表达各属性在预测中的重要性。
  • 种类

    • 回归任务的线性模型
    • 二分类任务
    • 多分类任务

线性回归

  • 目标: 试图学的一个模型尽可能准确的预测实值输出标记y
  • 属性值的转化:
    • 属性值间存在序关系,则可以转化为连续值
    • 不存在序关系,通常将k个属性转化为k维向量
一元线性回归函数
  • 线性方程如何求解
    • 求解的关键在于:如何使f(x) ≈ y尽可能准确
    • 所以,w,b的取值,应该在min∑(f(x)-y)^2。(这里使用的是均方误差,因为它是回归任务中最常用的性能度量),该方法称 模型的最小二乘“参数估计”
    • 求解方法: 求偏导,联立方程
多元线性回归函数
  • 求解公式,
  • 现实中,方程有唯一解的条件一般不满足,会出现多个解。 对于如何选择,这是由学习算法的归纳偏好决定的,最常见的方法是引入正则化项。
广义线性模型

对数几率回归

概念区分

  • 线性模型的回归学习:前面我们讨论了吸纳型模型的回归学习,即预测值是连续的

  • 线性模型的分类学习: 分类指预测值是离散的,对于这类任务,模型构建会使用到广义线性模型

  • 二分类任务

    • 特点: 标记输出只有0/1
    • 所以对z=wx(T)+b的转化,最理想的是“单位阶跃函数”,即分段函数。
      • 单位阶跃函数
        • 函数为(3.16),解释为:若预测值大于0,就判为正例,小于0则判为反例,预测值为临界值0则可任意判别。
        • 局限: 并不连续,所以我们想找一个一定成都上近似单位阶跃函数的“替代函数”,并希望它单调可微。————对数几率函数
  • 对数几率函数

    • 特点
      • 是一种“Sigmoid”函数,即形似S的函数
      • 作用: 将z值转化为0/1,并在x=0处变化很陡
      • y/1-y,被称为几率,反映了x作为正例的相对可能性
    • 最优解的求法
      • 梯度下降法
      • 牛顿法

线性判别分析(LDA)

  • 思想: 给定训练样例集,设法将样例投影到一条直线事上,使得同类样例的投影尽可能接近,异类投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。

(即对直线位置的寻找,该直线满足两个条件.1. 同类样例投影尽可能近。2.不同类尽可能远。)

  • 使同类样例投影尽可能近
    • 让同类样例投影点的协方差尽可能小(两样本协方差之和)
  • 使异类样例投影点尽可能远离
    • 通过让类中心之间的距离尽可能大(两样本协方差之差)
  • 同时考虑两者,可得到欲最大化的目标J(差/和)
    • 定义类内散度矩阵和类间散度矩阵,可以重新定义LDA欲最大化的目标J,也被称为Sb和Sw的“广义瑞利商”
  • 如何求解广义瑞利商?
    拉格朗日乘数法吧…没看懂

  • 将LDA推广到多分类任务。

    • P62,只提到了起取值条件,J最大
    • LDA也常被视为一种监督降维技术

多分类学习

现实中常遇到多分类任务,对于该类问题,我们基于一些基本策略,利用二分类学习器来解决多分类问题。本节的重点为: 拆分策略

  • 基本思路:“拆分法”,即将多分类任务拆为若干二分类任务求解。集体来说,先对问题进行拆分,然后为拆分出的每个二分类任务训练一个分类器;在测试时,对这些分类器的预测结果进行集成以获得最终的多分类结果。 其关键在于如何对多分类任务进行拆分,以及如何对多个分类器进行集成。
拆分策略(经典的有3种)
  • 一对一(OvO)

  • 一对其余(OvR)

    • 需要了解:如何选择正例,反例。 需要的分类器个数
    • 优缺点:
      • OvR分类器数目小于OvO,OvO的储存开销何测试时间要更大
      • 训练时,OvR每个分类器要使用所有的训练样例,而OvO每个分类器只使用2个类的样例。因此,类别很多时,OvO的训练开销更小
      • 对于预测性能,要取决于具体的数据分布,在多数情况下,两者差不多。
  • 多对多(MvM)

    每次将若干类作为正类,若干类作为反类,正反类的构造有特殊的设计。书中主要介绍了一种常用的MvM技术“纠错输出嘛”(EOOC)

    • 主要有两个过程
      • 编码,N个类进行M次划分,每次划分将一部分划为正类,一部分划为分类,进而形成一个二分类训练集;最终共产生M个训练集,可训练出M个分类器。

      • 解码,M个分类器对测试样例进行预测,这些预测标记组成一个编码,将这个预测编码和各自的编码进行比较,返回其中距离最小的。

      • 距离的计算

        • 汉明距离,在信息编码中,两合法编码 编码不同的位数 称为码距,又称汉明距离
        • 欧式距离,空间中两点间的距离。

类别不平衡问题

  • 定义,带来的问题
  • 类别不平衡学习的一个基本策略————再缩放
    • 欠采样,减少一些反例使正反例数目接近
    • 过采样,增加一些正例使正反例数目接近
    • 阈值移动,基于原始数据学习,但用训练好的分类器进行预测时,将公式代入到决策过程中。
  • 各方法的优缺点
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线性模型 的相关文章

  • 爬取杂志所有期刊的文章案例

    爬取杂志所有期刊的文章案例 前言 这次给大家带来一个简单的爬虫案例 就是爬取意林杂志所有期刊的文章 本案例网址 https www yilinzazhi com 一 分析网页 可以看出这个网站的网页很规整 而且没有反爬 每一年的期刊日期都是

随机推荐

  • Flutter绘制系列03---绘制图片文字

    1 绘制图片系列 因为读取图片是一个异步的操作 在读取完毕之后 需要重新渲染界面 也就是可变状态 现在要有一个概念 画布只承担绘制工作 一切数据的来源由使用者来提供 也就是将ui Image对象作为参数传递給PaperPainter 画板质
  • PowerVM 分区快速划分配置工具的使用方法

    在 PowerVM 虚拟化配置实施时 管理员经常要面对数十台物理服务器 数百个分区 如果采取手工配置与实施 工作量大 繁琐 且会造成大量的重复劳动 针对这种情况 IBM 系统科技实验室服务部推出了 PowerVM 分区快速划分与配置工具 P
  • flask - 定义API接口

    flask自行定义API接口 并且可以实现接口调试的增删查改 需要两个工具 pip install flask restful pip install flask marshmallow 初始化app 初始化app的两种方式 Api app
  • 用Python实现PDF转Word文档

    Refer to 只需2行代码 轻松将PDF转换成Word Introduce 要用Python实现PDF转Word 需要通过python内的PYMuPDF库提取PDF文件中的数据然后采用python docx库解析内容的布局 段落 图片
  • php中session超时严格控制的解决方案

    php中session默认是30分钟超时 但是有的时间压根就没到30分钟就自动超时了 这对很多操作带来不便 下面我们来看看解决30分钟超时的办法 第一种回答 最常见的一种回答是 设置Session的过期时间 也就是session gc ma
  • 荒野大镖客ol 服务器位置,荒野大镖客OL盗贼据点分布位置

    玩家们好 本次小编为大家介绍一下荒野大镖客OL盗贼据点分布位置 一起来看看吧 有关盗贼据点的相关事项 1 地点都差不多不会变 最多是稍有一点点偏差 这一点我很确定 因为同地点我刷过两三次 2 如果其它玩家灭过该位置的盗贼据点的话 一定时间内
  • “errcode“:60020,“errmsg“:“not allow to access from your ip,from ip: 183.198.X.X

    企业微信开发过程中 添加组织人员遇到的问题 主要是这个ip没有被认可 需要添加白名单 步骤如下 管理工具 通讯录同步 通讯录同步 企业可信IP 配置本地ip加入白名单即可
  • 一枚芯片的实际成本是多少?(2)晶片的成本

    晶片的成本 由于在将晶圆加工 切割成晶片的时候 并不是能保证100 利用率的 因而存在一个成品率的问题 所以晶片的成本用公式表示就是 晶片的成本 晶圆的成本 每片晶圆的晶片数 晶片成品率 由于晶圆是圆形的 而晶片是矩形的 必然导致一些边角料
  • 【Kubernetes】神乎其技的K8s到底是什么,为什么被越来越多人使用

    欢迎来到本文 个人简介 陈童学哦 目前学习C C 算法 Python Java等方向 一个正在慢慢前行的普通人 系列专栏 陈童学的日记 其他专栏 C STL 感兴趣的小伙伴可以看看 希望各位 点赞 收藏 留言 万物从心起 心动则万物动 前言
  • 自定义训练大型语言模型(LLM):带有代码示例的详细指南

    自定义训练大型语言模型 LLM 带有代码示例的详细指南 这篇文章提供了一个综合指南 描述了关于如何使用代码示例和实例来自定义训练大型语言模型 例如GPT 4 的方法 近年来 大型语言模型 LLM 如GPT 4因其在自然语言理解和生成方面的惊
  • 如何在VC++IDE 环境下生成.MAK文件

    转载自以下 同样只适用于EVC VC6 不适用于VS2003及以上 http blog csdn net lantian1099 article details 1833253 通过VC IDE 环境中的 TOOLS gt OPTIONS
  • kvm qemu内幕介绍

    kvm qemu内幕介绍 标签 虚拟化io数据结构linux内核优化磁盘 2012 09 14 11 10 6923人阅读 评论 4 收藏 举报 分类 linux 56 版权声明 本文为博主原创文章 未经博主允许不得转载 目录 1 硬件虚拟
  • Kaldi中文语音识别-----手把手教你kaldi的安装编译

    写在前面 本人目前读研中 小白一枚 主要研究方向 语音识别及语音歌曲合成 在这里记录一下自己学习软件的过程 还望大神们口下留情 kaldi是什么 kaldi是一个用C 写的语音识别工具包 kaldi旨在供语音识别研究员使用 当然 kaldi
  • RGB TFT-LCD彩条显示实验

    实验任务 本节的实验任务是使用正点原子ZYNQ开发板上的RGB TFT LCD接口 驱动RGB LCD液晶屏 支持目前推出的所有RGB LCD屏 并显示出彩条 模块示意图 RGBTFT LCD输入时序包含三个要素 像素时钟 同步信号 以及图
  • 也谈分离JavaScript和HTML

    不知道能不能将JavaScript和HTML的分离也归结为 你必将业务逻辑由显示中分离 thou shalt separate business logic from display 1 的问题 但有HTML和CSS的分离在前面对照 它们的
  • java mysql 项目_mysql数据库如何实现与Java项目连接

    mysql数据库如何实现与Java项目连接 发布时间 2020 11 09 16 47 40 来源 亿速云 阅读 68 作者 Leah mysql数据库如何实现与Java项目连接 很多新手对此不是很清楚 为了帮助大家解决这个难题 下面小编将
  • Python发送邮件

    Python3 SMTP 发送邮件 在现代社会 邮件已经成为了人们重要的沟通方式之一 Python3 提供了 SMTP 库 使得发送邮件变得非常容易 本文将介绍如何使用 Python3 中的 SMTP 库来发送邮件 SMTP 简介 SMTP
  • 虚拟机VMwar报错:您没有查看“hgfs“的内容所需的权限解决

    取消挂载 sudo umount mnt hgfs 再指定用户和组挂载 sudo vmhgfs fuse host mnt hgfs o allow other o uid 1000 o gid 1000 o umask 022
  • 深入理解Solidity——Using for

    指令using A for B 用来附着库里定义的函数 从库A 到任意类型B 这些函数将会默认接收调用函数对象的实例作为第一个参数 语法类似 python中的self变量一样 using A for 的效果是 库A中的函数被附着在做任意的类
  • 线性模型

    本文为自己学习 西瓜书 时做的一些笔记 方便知识点的梳理复习 线性模型 定义 学的一个通过属性的线性组合来进行预测的函数 形式 函数 向量 优点 模型简单 已于建模 蕴含着机器学习中一些基本思想 一些强大的非线性模型可以通过引入层级结构或高