在统计学、机器学习和信息论中,降维是指将数据从高维度转换到低维度的过程。比如,我们将n维数据降维到k维,其中k小于n。降维的一个常见例子是主成分分析(PCA)。假设我们有一组数据,其中有两个特征值分别为4和1。通过计算特征向量,我们可以得到一个新的单位向量,这个向量被称为特征向量或主成分(PC1)。这个向量的比例关系(如0.97:0.242)被称为加载得分。主成分的特征值等于其区间内的平方和,而奇异值则是特征值的平方根。
在进行降维时,我们需要将数据投影到新的坐标轴上,使得新的坐标轴能够最大化数据的方差。例如,如果我们要将2D数据降到1D,我们会选择覆盖更多方差的特征,比如特征1,因为它包含了83%的数据信息。
优点: - 删除了相关特征,提高了模型效率。 - 减少了过拟合的风险。 - 改善了数据的可视化效果。
缺陷: - PCA是一种线性算法,对于多项式或其他复杂函数的效果较差。 - 如果选择的主成分数量不合适,可能会丢失大量信息。 - 主成分的可解释性较低,因为它们不像原始特征那样直观。
我们可以通过下载MNIST数据集,并对其进行预处理,如标准化处理,使其平均值为0且所有数据都在单位正方形内。PCA有两种实现方式:一种是手动计算特征向量,另一种是使用sklearn库。这两种方法通常都能得到相似的结果。
LDA是机器学习和统计领域中常用的降维技术,旨在将数据投影到一个低维度空间,以便最大化类别之间的可分性。与PCA不同,LDA是一种监督学习算法,它利用目标值来寻找新的坐标轴。
LDA的目标是最大化不同类别之间的距离,同时最小化同一类别内部的方差。具体而言,LDA通过最大化类别之间的可分性来寻找新的坐标轴,这与PCA寻求最大方差的做法有所不同。通过这种方式,LDA能够在保持类别间差异的同时,减少数据的维度。
当数据的平均值共享时,LDA可能失效。此时,可以采用非线性判别分析方法,如二次判别分析(QDA)、费舍尔判别分析(FDA)和正则化判别分析(RDA)。
我们可以使用sklearn库在IRIS数据集上实现LDA,将数据从4维降至2维。通过对比PCA和LDA的结果,可以看到LDA在保持类别间可分性方面的优势。
T-SNE是由Laurens van der Maaten和Geoffrey Hinton开发的一种非线性降维技术,常用于数据可视化。它将高维数据嵌入到二维或三维空间中,使得相似的数据点在低维空间中依然靠近。
T-SNE通过构建高维数据点之间的概率分布,并在低维空间中找到最接近这些分布的点。它通过最小化两个分布之间的Kullback-Leibler散度来实现这一点。T-SNE适用于处理多项式或非线性数据,并且可以保留局部和全局结构。
T-SNE通过使用T分布来克服数据点在低维空间中拥挤的问题。相比于高斯分布,T分布允许更多的空间来容纳低相似度的数据点。
优点: - T-SNE是一种非线性降维技术,适合处理多项式或非线性数据。 - 它可以保留数据的局部和全局结构。
缺陷: - T-SNE的时间和空间复杂度较高,不适合处理大规模数据集。 - 它是一种非参数映射方法,需要重新训练整个算法才能处理新数据。
BHTSNE是一种改进的T-SNE算法,利用Barnes-Hut算法来近似计算数据点之间的力,从而显著提高计算效率。
我们可以在MNIST数据集上实现T-SNE,通过调整参数如Perplexity和迭代次数来优化结果。T-SNE的结果受到这些参数的影响,正确选择参数非常重要。
在进行降维前,需要对数据进行归一化处理。这是因为像PCA这样的降维技术依赖于数据的方差,如果不同特征的尺度差异很大,方差最大的特征会主导结果,从而忽略了其他特征。通过归一化,我们可以将所有数据归一到相同的尺度上,使得所有特征的贡献相同。
常见的数据归一化技术包括: - 线性缩放:将数据缩放到[0, 1]范围内。 - 特征剪切:限制特征值的上下限。 - 对数缩放:适用于遵循幂律分布的数据。 - Z分数标准化:将数据标准化为均值为0,标准差为1的形式。
降维是数据科学中一项重要的技能,通过合理选择降维技术,我们可以有效处理大规模数据集,提取关键特征,提升模型性能。希望以上内容对你有所帮助。