Q1:解释什么是维数诅咒,如何解决这个问题?
- 随着训练模型所需的数据量增加,机器学习算法的学习过程变得越来越困难。在非常高维的空间中,监督算法难以学习分离点并构建函数近似值以做出良好的预测。并且,当特征数量增加时,从时间和计算的角度来看,这种搜索都会变得昂贵。可能无法足够快地找到好的解决方案。这就是维度诅咒。
- 使用降维技术(如PCA、ICA、SVD),可以在原始特征集中发现最显着的特征。然后将这个特征集的维度减少到一个更易于管理的数字,同时在这个过程中丢失很少的信息。这有助于监督学习找到近似数据集的最佳函数。
Q2:解释什么是PCA?
- PCA通常用于降维,它对高维度数据集合寻找尽可能少的正交矢量(主成分)表征数据信息特征。
- 主成分是一系列单位向量,主成分的方向是使投影数据的方差最大化(代表最大信息量)的方向。
Q3:解释为什么数据在高维空间更稀疏?
- 假设您有一个关于人的数据集。如果只有人群的年龄,基本上可以做四五个组:很年轻的人,年轻人,中年人,老年人,老年人。如果现在您添加另一个维度,比方说,gender,则可能的组合加倍。如果你添加第三个,比如height,如果我们考虑我们按small、normal和tall对人进行分组,那么你可能的组数会增加三倍。
- 更多的维度使我们的数据点之间的差异性变大,这就是它变得更稀疏的原因。两个随机点之间的距离随着维度的增加而增加:每个数据点都变得越来越独立,并且与其他数据点不同。
Q4:PCA中的第一个主成分轴是如何选择的?
- 在主成分分析 (PCA)中,我们希望将大量相关变量汇总为较少数量的代表性变量,称为主成分,它解释了原始集合中的大部分可变性。
- 第一个主成分轴的选择方式使其能够解释数据中的大部分变化并且最接近所有n个观测值。从数学上来讲,是原始数据中方差最大的方向
引用:https://builtin.com/data-science/step-step-explanation-principal-component-analysis
Q5:维度灾难对训练机器学习模型有什么影响?
- 随着维数的增加,数据变得更加稀疏;每个新维度都会增加特征空间的体积,从而为我们的数据提供更高的分化机会,因此,与低维空间相比,它在高维空间中分布得更多的可能性。这意味着训练模型需要更多的数据样本
- 随着维度增加,特别是对于参数模型,我们增加了训练它们所需的时间。
- 维度灾难使得数据中含有大量的嘈杂和不相关特征,模型从这些嘈杂或不相关的特征中学习,并可能导致其性能下降。
- 更多的特征和维度导致模型比那些特征数量少的模型更复杂和更难解释。
Q6:知道哪些关于超参数调优的方法?
- 随机搜索:为超参数创建了一个可能值的网格。每次迭代都会尝试从该网格中随机组合超参数,记录性能,最后返回提供最佳性能的超参数组合。
- **网格搜索:为超参数创建了一个可能值的网格,在每次迭代中,**都会尝试以特定顺序组合超参数以及它适合每个可能超参数组合的模型,并记录模型性能。最后,返回具有最佳超参数的最佳模型。
- 贝叶斯优化:用各种代理函数来拟合超参数与模型评价之间的关系,然后选择有希望的超参数组合进行迭代,最后得出效果最好的超参数组合。这种方法可以帮助我们在最少的步数中找到最小点。
Q7:与PCA相比,使用LLE(局部线性嵌入 Locally Linear Embedding)有哪些优点?
- 和传统的PCA,LDA等关注样本方差的降维方法相比,LLE关注于在降维时保持样本局部的线性特征;
- LLE在计算空间和时间方面比其他算法更有效,因为它倾向于累积稀疏矩阵。
Q8:为什么在执行PCA之前居中和缩放数据很重要?
- 标准化数据使得特征处于同一数量级,具有不同数量级值的特征会影响 PCA 计算最佳主成分,因为PCA对变量的方差非常敏感,PCA依据数据的方差划分主成分
Q9:解释什么是SVD降维
- 奇异值分解,全称Singular Value Decomposition,简称SVD。它是一种矩阵因式分解。通过计算奇异值个数和奇异向量,生成一个可以代替原矩阵的近似矩阵,将数据集的奇异值表征按重要性排列,舍弃不重要的特征向量。可用来达到降维的目的,从而找出数据中的主成分。
Q10:***PCA和随机投影*方法有什么区别?
- PCA计算使方差最大化的向量或方向,因此在投影期间丢失的信息量最少;
- Random Projection简单地选择任何向量,然后执行投影。这在高维空间中非常有效,并且计算效率很高。
- Random Projection的理论基础是所谓的Johnson-Lindenstrauss 引理:高维欧几里德空间中的N 个点的数据集可以映射到更低维度的空间,从而在很大程度上保持点之间的距离。
Q11:KNN算法是否会受到维度灾难的影响?具体描述;
- K-NN最大的缺陷就是很容易引起维数灾难,在高维空间,数据变得异常稀疏,这就\使得即使是最近的邻居数据点,所需计算数据点之间的距离也变得异常得远。 随着变量的增加,训练集所要求的数据量呈指数级的增长,计算量也随之变得异常大。
Q12:聚类和降维有什么区别和联系?
- 降维是在数据预处理时为了防止过拟合和避免维度灾难时常用的方法,聚类时在数据集是在整个数据集上按照一个定义的拓扑距离进行分组的过程。聚类和降维之间的一个关键区别是,通常进行聚类是为了揭示数据的结构,而降维通常主要是为计算考虑,缓解维度灾难。
- 共同点是两种方法都属于无监督学习
Q13:***PCA和t-SNE*有什么区别?
- PCA 致力于保留数据的全局结构,而 T-SNE 保留局部结构
- PCA 和 T-SNE 都会产生难以解释的特征
- 当特征之间存在线性关系时,PCA 效果很好,而 T-SNE 在线性和非线性数据集中都表现不错。
- PCA 是一种确定性算法(每次产生相同的输出),而 T-SNE 本质上是非确定性的(每次可能产生不同的输出)
引用:https://medium.com/analytics-vidhya/understanding-pca-and-t-sne-intuitively-f8f0e196aee4
Q14:解释用于降维的局部线性嵌入(LLE)算法
- LLE 首先找到点的 k 个最近邻点。然后,它将每个数据向量近似为其 k 个最近邻的加权线性组合。最后,它计算最能从其邻居中重建向量的权重,然后生成由这些权重最能重建的低维向量;
- LLE的优势是在降维时,保持了样本的局部特征;并且由于LLE 倾向于累积稀疏矩阵,它在计算空间和时间方面比其他算法更有效。
Q15:深度神经网络如何缓解维数诅咒的影响?
- 维数灾难是因为数据中存在相关特征或者太多噪声特征;深度神经网络缓解维度灾难的方法是更好的数据建模,即将数据在较低维空间中建模;比如使用word2vec,bottleneck feature(维度较低的隐藏层)等等
Q16:解释什么是t-SNE(t-Distributed Stochastic Neighbour Embedding)方法
- t-SNE的主要目标是将多维数据集转换为低维数据集,主要用于数据探索和可视化高维数据;
- t-SNE使用具有一个自由度的 T 分布来计算低维空间中两点之间的相似度,而不是高斯分布。T 分布在低维空间中创建点的概率分布,这有助于减少拥挤问题。
引用:https://towardsdatascience.com/t-distributed-stochastic-neighbor-embedding-t-sne-bb60ff109561
Q17:线性 SVM是否会遭受维数灾难?
- SVM 也会遇到来自高维数据的问题;在高维+低样本量的情况下,对于 SVM 来说,很多数据点将同时成为支持向量,因此 SVM 会过度拟合。
Q18:维度灾难会如何影响K-means算法?
- 由于维度灾难的影响,在高维空间中,欧式距离的测度会失去意义,当维度趋于无穷时,数据集中任意两点的距离会趋向收敛,任意两点的最大距离和最小距离会变为相同。因此基于欧式距离的k-means算法,会无法进行聚类(
Q19:解释ICA算法,分析它与PCA方法的不同之处
- ICA,独立成分分析,指在只知道混合信号,而不知道源信号、噪声以及混合机制的情况下,分离或近似地分离出源信号的一种分析过程;是盲信号分析领域的一个强有力方法;
- ICA与PCA区别:
- PCA是将原始数据降维并提取出不相关的属性,而ICA是将原始数据降维并提取出相互独立的属性。
- PCA目的是找到这样一组分量表示,使得重构误差最小,即最能代表原事物的特征。ICA的目的是找到这样一组分量表示,使得每个分量最大化独立,能够发现一些隐藏因素。由此可见,ICA的条件比PCA更强些。
- ICA要求找到最大独立的方向,各个成分是独立的;PCA要求找到最大方差的方向,各个成分是正交的。
- ICA认为观测信号是若干个统计独立的分量的线性组合,ICA要做的是一个解混过程。而PCA是一个信息提取的过程,将原始数据降维,现已成为ICA将数据标准化的预处理步骤。