【ML笔记】第三章 线性模型

来源:互联网 发布:独立思考 知乎 编辑:程序博客网 时间:2024/05/17 12:21

第3章 线性模型

基本形式

给各个属性分配权值,和数对应到预测函数

线性回归

  • 定义:给定离散的数据点(属性,标记)数据对,学习线性模型预测输出
  • 对于输入属性
    • 输入属性数目只有一个
      • 离散属性:存在序关系的转换为大小不同的值,不存在序关系的转化为0/1向量
  • 基于均方误差最小化进行模型求解的方法:「最小二乘法」
  • 求解w,b使得均方误差最小的过程称为最小二乘「参数估计」
    • 对均方误差函数E(w,b)分别关于w和b求导,令导数为0
    • 原理:E是关于w和b的凸函数;判断凸函数方法:二阶导数在区间上非负(若严格大于0则称严格凸函数)
  • 多元线性回归

对数几率回归

  • 将分类任务用线性模型解决
  • 「单位阶跃函数」:以0.5为界将0~1的实值转化为0/1标记(自变量只接收0/0.5/1三个离散值)
  • 「对数几率函数」:y=1/(1+e^-z) 是一种Sigmoid函数(形似S的函数)
    • 可以变形为ln(y/(1-y))=z
    • 左边称为「对数几率」,即几率的自然对数
    • 几率(odds)是正确可能性/错误可能性
  • 优点
    • 无须假设数据分布
    • 可得近似概率预测
    • 对率函数是任意阶可导凸函数
  • 求解w和b【P59-60】

线性判别分析(Linear Discriminant Analysis, LDA)

  • 找到一条直线,使得同类样例投影点尽可能接近,异类尽可能远离;对新样本,观察投影点位置来分类
  • 求解w和b【p60-63】
  • 将LDA推广到多分类任务
  • LDA常被视为一种经典的监督降维技术

多分类学习

  • 基本思路:拆解为若干个二分类任务
  • OvO一对一:将N个类别两两配对形成N(N-1)/2个二分类任务,把被预测的最多的分类作为结果【训练每个分类器时只调用这两个类别】
  • OvR一对其余:其中一个类作为正例,其余所有作为反例,训练N个分类器【每次训练都会调用所有的样例】
  • MvM多对多:构造正反类
    • 纠错输出码(Error correcting output codes, ECOC)
      • 编码:将N个类别作M次划分,形成M个分类器
      • 解码:样本在M个分类器上运行,得到M个正/反例预测(因为分类器是二分类器,所以只要该样本属于该二分类器正例部分就”极可能“输出正例),构成一个长度为M的”预测编码“;对于每一个类别,可以在每一个分类器上得到一个“标准答案”;将样本的预测编码与“标准答案”比较,取距离最短的类别划分至之
      • 二元码和三元码:后者可以指定“停用类”置0
      • 海明距离与欧氏距离:前者统计对应位置值不同数目,后者计算差值的平方之和开根号;只有当使用三元码时排序可能出现不同
      • 怎么分类很难说,分类也不是越多越好的
        • 有问题依赖的ECOC编码法:开源ECOC库
    • DAG拆分法
  • 多类支持向量机

类别不平衡问题

  • 分类任务中不同类别的训练样例数差别很大的情况
  • 问题出现在:判定正例与反例的阈值为0.5的前提是,假定正例与反例出现的概率是相等的
  • 因此:应更正阈值为真实几率(通常取训练集的观测几率代表之,即“训练集是样本总体的无偏采样”)
  • 再缩放(rescaling/rebalance):若y÷(1-y)>(m+)÷(m-)即为正例,把右边分数移到左边即可退化为y’÷(1-y’)的形式与1比较大小
    • 是“代价敏感学习”的基础,将正例(m+)更换为将正例误分为反例的代价,反之亦然
  • 欠采样(undersampling)
    • EasyEnsemble:集成学习机制,将反例划分为若干个不同集合供不同学习器使用
  • 过采样(oversampling)
    • SMOTE:插值产生额外样例,不能简单重复,否则造成严重过拟合

阅读材料

  • 稀疏表示
  • 多标记学习
    • 多分类学习的每一个样本仅属于一个类别,一个样本同时预测出多个类别标记属于多标记学习
阅读全文
0 0
原创粉丝点击