您的位置:首页 > 其它

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

2017-05-31 19:03 239 查看

第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:插值产生额外样例,不能简单重复,否则造成严重过拟合

阅读材料

稀疏表示

多标记学习

多分类学习的每一个样本仅属于一个类别,一个样本同时预测出多个类别标记属于多标记学习
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐