一、说在前面
今天学习的是降维,把数据的特征数量从高维转换到低维,降低数据的处理难度,其中自编码器和解码器的效果比较像压缩和解压缩。
二、笔记
1、什么是降维?
数学知识:特征值分解
设A是n阶方阵,如果有常数λ和n维非零列向量α的关系式 Aα = λα 成立,则称λ为方阵A的特征值,非零向量α称为方阵A的对应于特征值入的特征向量
降维:将数据的特征数量从高维转换到低维
实际中很多数据是高维的,但数据“内在的维度”可能更低
例如:通信数据原始有7维:入网时间、套餐价格、每月话费,每月流量、每月通话时长欠费金额、欠费月数。"内在维度"可能只有3个:用户忠诚度、消费能力、欠费指数
降维是解决高维数据的维度灾难问题的一种手段,能够作为一种特征抽取的方法,便于对数据进行可视化分析。
2、主成分分析PCA:基本原理、优化目标和求解方法
在人脸识别和图像压缩等领域得到了广泛的应用
基本思想:构造原始特征的一系列线性组合形成的线性无关低维特征,以去除数据的相关性,并使降维后的数据最大程度地保持原始高位数据的方差信息。
方差比例与数据重构:通过确定将为前后方差保留比例选择降维后的样本维数l,可预先设置一个方差比例阈值如90%
从数据重构角度来看,通过矩阵WT从Y可以得到重构数据为XWWT,且重构误差为||X-XWWT||F~2
3、自编码器:找到数据高效表示的神经网络方法
一种特殊的神经网络,尝试将输入复制到输出,能够表示非线性变换
编码器:将输入x转换成隐含表示h
解码器:将隐含表示h转换成输出x'
优化目标:使得x'和x尽量接近
当隐含层神经元数量小于输入层时,可以当做一种降维算法。
深层自编码器(对称的转换)
指数级地降低表示某些函数的计算成本
指数级的减少学习某些函数所需的训练数据量
一些实验结果表名,深层自编码器比浅自编码器产生更好的压缩效果。
4、降维常用实践工具介绍
主要使用的是SKLearn
5、实践案例:Python降维实践及在特征脸、图像重构和文本数据中的应用
NumPy:求解特征值和特征向量
Pandas:数据读取与预处理
Matplotlib、Seaborn:数据可视化
Sklearn:中文新闻的向量化、t-SNE降维
TensorFlow:自编码器的构建与训练
三、心得体会
降维是一种对问题的简化处理,可以减轻问题处理的难度,减少训练的时间,使用的也是分而治之大道至简的思想。机器学习中对图像的处理将图像通过数学矩阵的计算方式进行处理,虽然没懂得具体的原理,但是感觉还是很巧妙。