特征抽取 LTSA
type
status
date
slug
summary
tags
category
icon
password
Property
 
严格意义上来说,局部切空间对齐(LTSA) 并不是LLE的变体,但是,从算法角度来说,它们俩又是足够接近的。与 LLE 算法关注于保持临点距离不同,LTSA 寻求通过切空间来描述局部几何形状,并(通过)实现全局最优化来对其这些局部切空间,从而得知对应的嵌入。 LTSA 可执行为函数 locally_linear_embedding或它的面向对象的对应形式 LocallyLinearEmbedding,附带关键词 method = 'ltsa'
 
LTSA 算法含三部分:
  1. 近邻搜索:与标准 LLE 的相同
  1. 加权矩阵构造:大约是 。其中第一项与标准 LLE 相似
  1. 部分特征值分解:同于标准 LLE
特征抽取 t-SNE
type
status
date
slug
summary
tags
category
icon
password
Property

原理

SNE

推导SNE

Symmetric SNE(对称SNE)

Crowding问题

 

t-SNE

代码

notion image
notion image
 
 
特征抽取 流形学习方法的比较
type
status
date
slug
summary
tags
category
icon
password
Property
 
 
notion image
notion image
 
 
 
 
notion image
 
Scikit-Learn数据集
type
status
date
slug
summary
tags
category
icon
password
Property

数据类型

不同类型的数据集采用的算法是不一样的。总体来说,生活场景中只有两种类型的数据,一种是离散型,一种是连续型:
  1. 离散型数据:由记录不同类别个体的数目所得到的数据,又称计数数据,所有这些数据不能再细分,也不能进一步提高他们的精确度。比如分类就是离散型数据。
  1. 连续型数据:变量可以在某个范围内取任一数,即变量的取值可以是连续的。如长度、时间、质量值等,这类数通常是非整数,含有小数部分
 

可用数据集

  1. Kaggle:一个大数据竞赛平台,上面的数据都是真实的,并且有很多数据集。
  1. UCI:收录了360个数据集,覆盖了科学、生活、经济等领域。
  1. scikit-learn数据集:用于学习的数据集,数据量比较小,但是方便获取和学习。
交叉验证和网格搜索
type
status
date
slug
summary
tags
category
icon
password
Property

交叉验证

交叉验证,顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“交叉”。
 
什么时候才需要交叉验证呢?
交叉验证用在数据不是很充足的时候。比如在日常项目里面,对于普通适中问题,如果数据样本量小于一万条,就会采用交叉验证来训练优化选择模型。如果样本大于一万条的话,一般随机的把数据分成三份,一份为训练集(Training Set),一份为验证集(Validation Set),最后一份为测试集(Test Set)。用训练集来训练模型,用验证集来评估模型预测的好坏和选择模型及其对应的参数。把最终得到的模型再用于测试集,最终决定使用哪个模型以及对应参数。
 
根据切分的方法不同,交叉验证分为下面三种:
  • 简单交叉验证,简单是和其他交叉验证方法相对而言的。首先,随机的将样本数据分为两部分(比如: 70%的训练集,30%的测试集),然后用训练集来训练模型,在测试集上验证模型及参数。接着再把样本打乱,重新选择训练集和测试集,继续训练数据和检验模型。最后选择损失函数评估最优的模型和参数。
  • S折交叉验证(S-Folder Cross Validation),S折交叉验证会把样本数据随机的分成S份,每次随机的选择S-1份作为训练集,剩下的1份做测试集。当这一轮完成后,重新随机选择S-1份来训练数据。若干轮(小于S)之后,选择损失函数评估最优的模型和参数。
     
     

    网格搜索

    保存和加载模型
    type
    status
    date
    slug
    summary
    tags
    category
    icon
    password
    Property
     

    保存模型和数据缩放器

     

    加载模型和数据缩放器

    距离和相似度度量
    type
    status
    date
    slug
    summary
    tags
    category
    icon
    password
    Property
    距离度量公理Axioms of Distance Measures
    一般而言定义一个距离函数,需要满足下面几个准则:(即距离度量需要满足的性质)
    1. 到自己的距离为0 Note: iff = if and only if
    1. 距离非负
    1. 对称性: 如果 A 到 B 距离是 a,那么 B 到 A 的距离也应该是 a
    1. 三角形法则triangle inequality: (两边之和大于第三边)
    范数
    欧氏距离
    曼哈顿距离
    闵氏距离
    切比雪夫距离
    标准化欧氏距离
    模型的评价指标
    type
    status
    date
    slug
    summary
    tags
    category
    icon
    password
    Property

    回归模型的评价指标

    假定为真实值, 为预测值

    解释方差(explained_variance)

    解释方差的计算公式为:
     
     
     

    分类模型的评价指标

     
     
     

    聚类模型的评价指标

    矩阵向量求导
    type
    status
    date
    slug
    summary
    tags
    category
    icon
    password
    Property
     
    标量对标量的求导可以表示为,有些时候,有一组标量 来对一个标量 的求导,那么会得到一组标量求导的结果:
    如果把这组标量写成向量的形式,即得到维度为的一个向量对一个标量 的求导,那么结果也是一个维的向量:
    可见,所谓向量对标量的求导,其实就是向量里的每个分量分别对标量求导,最后把求导的结果排列在一起,按一个向量表示而已。类似的结论也存在于标量对向量的求导,向量对向量的求导,向量对矩阵的求导,矩阵对向量的求导,以及矩阵对矩阵的求导等。
     
    总而言之,所谓的向量矩阵求导本质上就是多元函数求导,仅仅是把把函数的自变量,因变量以及标量求导的结果排列成了向量矩阵的形式,方便表达与计算,更加简洁而已。
    为了便于描述,后面如果没有指明,则求导的自变量用 表示标量, 表示 维向量, 表示 维度的矩阵,求导的因变量用 表示标量, 表示维向量, 表示维度的矩阵。
     

    矩阵向量求导定义

    根据求导的自变量和因变量是标量,向量还是矩阵,有9种可能的矩阵求导定义,如下:
    定义法
    type
    status
    date
    slug
    summary
    tags
    category
    icon
    password
    Property
     

    标量对向量求导

    标量对向量求导,严格来说是实值函数对向量的求导。即定义实值函数 ,自变量维向量,而输出是标量。对于一个给定的实值函数,如何求解呢?
    首先想到的是基于矩阵求导的定义来做,由于所谓标量对向量的求导,其实就是标量对向量里的每个分量分别求导,最后把求导的结果排列在一起,按一个向量表示而已。那么可以将实值函数对向量的每一个分量来求导,最后找到规律,得到求导的结果向量。
     
    首先看一个简单的例子: ,求解
    根据定义,先对的第个分量进行求导,这是一个标量对标量的求导:
    可见,对向量的第 个分量的求导结果就等于向量 的第 个分量。由于是分母布局,最后所有求导结果的分量组成的是一个 维向量。那么其实就是向量 。也就是说:
    同样的思路,也可以直接得到:
    同样的思路,也可以推导出:
    再来看一个复杂一点点的例子: ,求解
    微分法
    type
    status
    date
    slug
    summary
    tags
    category
    icon
    password
    Property
     
    定义法对于比较复杂的求导式子,中间运算会很复杂,同时排列求导出的结果也很麻烦。因此需要其他的一些求导方法。这里讨论使用微分法来求解标量对向量的求导,以及标量对矩阵的求导。
     

    矩阵微分

    在高数里面学习过标量的导数和微分,他们之间有这样的关系:
    如果是多变量的情况,则微分可以写成:
    可以发现标量对向量的求导和它的向量微分有一个转置的关系。
     
    现在再推广到矩阵,对于矩阵微分,定义为:
    其中第二步使用了矩阵迹的性质,即迹函数等于主对角线的和。即