-
- 特征转化*
我们可能有成千上万的特征,如果是图形256*256的图形,就会有196608个特征,如果有256个照片就有256196608,不同类型的图形就会有这么多种
我们能不能收集足够的特征,来
我们必须降低特征数量,目标就是Poriginal进行一个新的转换Pnew,保持一个特征数。Pnew远小于Poriginal。
特征转化后只有很小的信息损失,但是有高品质的预测结果。
缺点:转换出来的结果很可能无法被我们所解读。很难理解它的意义(数学公式)
如果需要了解特征的含义,那就需要对它进行特征选择(统计选择)
-
-
- 线性的特征转化
-
与目标字段无关的转化
PCA,SVD,TSVD,矩阵分解NMF
与目标字段有关的转换
LDA
PCA:运用线性的关系,做维度消除的方法。把原本的观察值投射到较少的主成分空间里,还能保留大量的差异,(retain the most variance)。用比较少的主成分取代变量
PCA是一种非监督式的计算,所以一般使用比较少的变量进行特征转化。
可以发现directions ,first Principal component的是变异最大(信息最多)的变量,second Principal component就是变异第二大的主成分
主成分无相关性
PCA步骤:
协方差矩阵
求出协方差矩阵的特征值,特征向量
由大到小排序决定第一主成分、第二主成分。(特征值就是方差)
解特征值a的问题就是在协方差矩阵A中求出满足Ax=ax的a以及x,a是特征值,x是特征向量(本质就是求在坐标为主成分中每个点的坐标)
案例:
上面是假设,也就是利用协方差求出第一主成分第二主成分,求出点在第一主成分第二主成分为坐标系下的点值。
解协方差矩阵的特征值问题,和求保留最大变异主成分问题,在数学是是等价的。
PCA如何求个数,我们要看自己需要多少百分比原始变量的数值。百分之80,百分之90都可以
如果结果是蓝线,那么就不建议使用PCA。
LSA:潜在语意分析(Latent Semantic Analysis,LSA)运用SVD(Singular Value Decomposition)从文字数据中找出语汇所拥有的潜在的语义关联,广泛运用在自然语言数据搜索上的降维方式。
传统自然语言搜索引擎的搜寻方式会要求使用者下查询的关键词,如何依照这些关键词去查询文章中出现关键词的文章。
但是如果词与该词代表的含义是相同的,但是词不同,就无法顺利搜寻出这些文章
简单的例子:文章中有车这个词,查询的关键词是汽车,那么尽管二者是同义词,也无法顺利搜索出。
LSA就是用于解决该问题的,它可以计算出词汇之间的相似度,已经词汇和文章之间的相似度,来解决此问题
LSA,是利用SVD的矩阵分解技术,将词汇-文件的矩阵降维,转换为潜在语意空间
案例:
文件1:驾驶汽车去公司
文件2:开车过去
文件3:在餐厅吃汉堡排
文件4:吃餐厅的意大利面
SVD矩阵分解技术
其中的n是行数,d是列数,r是你选取的特征数。
我们取两个特征
特征转换之后就是我们的语义空间
后者就是我们的语义空间,我们通过对比数值,接近的话,就说明它的语义差不多 。
如果前后用词相似的时候,SVD就会认为二者相似。
这就是LSA的做法。
后者是文章与词的关联性。
对照上图就发现文章1,与汽车,公司关联高。
对比关键词来搜寻,本方法是运用词周围的词来定义词,那他的灵活性就高一些了。
缺点:
1.LSA是利用SVD进行降维之后,语意维度正交,矩阵中的元素可能是负值,可能解读困难,NMF或者LDA的方法可以解决。
2.SVD非常耗时,尤其是关键词量非常大的时候。
3.新词加入时,需要重新进行矩阵分解
4.进行SVD的时候,可以采用截断SVD(Truncated SVD,TSVD)
二者的区别在于TSVD可以产生一个指定维度的分解矩阵,运算较快。相当于SVD会全部算完之后提取出r个结果,TSVD就直接拿其中r个结果进行运算。其实本质上是一样的。
矩阵分解NMF(非监督式计算unsupervised technique)
原始空间对应到新空间。和SVD一样,要确定r值V~WH,V就是d*n
W是之前的d*r,H是之前的r*n
特点:
1.它不会有负值,原始矩阵中所有元素也为非负数
2.分解之后都为非负数
3.但是潜在语意空间维度不一定正交
步骤:
将W,H初始化,正值
H视为常数,更新W
把W视为常数,更新H
直到W,H收敛,停止计算。
白点是原始坐标,绿点是NWH的结果
LDA(linear Discriminant Analysis)
是一种分类分析classification algorithm
变量减少
PCA追求的是方差最大化(非监督式),LDA是希望把多类的距离分的越开越好(监督式)
LDA的步骤:
计算每个类别的平均向量
计算类别内Sw和类别之间Sb的散布矩阵(Scatter Matrix)
求解出Sw-1Sb的特征值以及特征向量
特征值由大到小排序,保留前K个特征向量
使用得到了K个特征向量将数据投影到新的空间
LDA的预测结果就比较好,可以直接用横线切割,适合用决策树等算法,PCA是有斜线,不太合适,
这是因为LDA有参考目标字段进行坐标构建。
-
-
- 非线性的特征转化
-
与目标字段无关的转换
Kernel PCA,t-SNE
与目标字段有关的转换
神经网络
Kernel PCA :利用kernels坐标空间进行非线性转化对应到坐标空间中,在进行PCA。假如是原生数据就是线性关系,PCA转化就很实用,但是如果原生数据不是线性的,PCA就不那么可用
这是Kernel PCA就很重要,rbf,poly(多项式),sigmoid()linear(标准pca)
普通PCA对待非线性会让二者重叠,二Kernal PCA就可以区分开来。
案例:
处理非线性问题。
-t-SNE
将复杂的,高纬度的数据降低到二维或者三维。用于低维度的空间可视化。
步骤:
首先使用高斯分布计算高纬数据中任意两点XiXj的相似度H
在低纬空间随机产生于高纬空间中相同数量的数据点,利用t分布计算低纬数据中任意两点yiyj的相似度L
T分布可以将原本在高维空间彼此临近的结果,在低维空间变的更近,原本在高维越远的,在低纬变得更远。扩大差异
更新数据点yi,以拉近H与L的相似度分布
重复上个步骤,直到H与L的相似度分布趋近相同。
也就是在低维空间的值找到对应。高纬空间的投影。
保留相似度的情况下,在
神经网络:(会参考目标字段)
案例,
左边是输出字段,中间是隐藏层,右边的输出字段。经过训练,就会得到DrugY的值就是高的。
我们会发现Y~0.07*Na-1.02494*K大于0时,drugY的概率会很大。
也就是当NA/K>14.642时,用DRUGY的概率高
之后我们特征参数具体说明
总结:
中间的数值代表是否有监督,右边的数值代表是否为线性。
AutoEncoder,神经网络下次会具体说说,如何产生新特征,是重点。其他都是有具体的目标(假设方差最大等等)没有假设,所以比较像特征学习。
第五部分有实操,在具体说明,能更具体了解。