关于处理MSR3D_ActionDataset的一…

今天试着将计算得到的原始特征矩阵进行降维等简单化处理,还是学到蛮多东西的,首先是归一化,因为得到的特征矩阵中,u,v,d三个特征对应的值相差很大,所以要进行归一,说白了还是挺简单的,这里使用的是线性归一:
y=(x-MinValue)/(MaxValue-MinValue)
其中x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。

此外还有很多归一方法,区别只是所用公式有些不同,如:
clip_image004
其中μ为所有样本数据的均值, σ为所有样本数据的标准差。
对数函数转换:y=lg(x)
表示,以10为底的对数函数转换。

还有PCA算法暂时没看完,容后更新

10月8日更新:
之前在线性归一时,发现归一公式只能归到值域[-1,1],自己这几天尝试了几个公式都效果不理想,刚在网上找到一个新公式感觉挺不错:y = 2 * ( x - min ) / ( max - min ) - 1,这样可以将值域完美地投影到[-1,1]区间。

10月18号更新:
关于PCA,其实弄明白原理之后还是很简单的。首先要明白的是,特征向量的物理含义,这里就膜拜一位大神的博客了:http://blog.sina.com.cn/s/blog_49a1f42e0100fvdu.html

PCA原理在于,将高维的特征向量映射到低维空间,低维空间向量的每一维,都是原高维空间多个维度的合成,因此就有了以一维代替原多维的可能性。

具体步骤网上很多,这里说说matlab的PCA在MSRdataset中的使用。
[pca,~,latent,~] = princomp(temp_eigenjoint);
其中第二个和第四个输出暂时没考虑到怎么用,略过。
这里需要注意的是,PCA的输入数据,即temp_eigenjoint,是不需要进行取均值等操作,直接将线性归一后的数据输入即可。另一方面,因为整体数据集的相关性,因此,按照机器学习的一般过程,直接对train进行PCA操作,然后把得到的降维过后的特征矢量与test矩阵相乘进行降维即可

你可能感兴趣的:(机器学习与图像识别)