摘要:
前两天面试问到了PCA,感觉讲得不是很透彻,这里再次详细写一下。 首先定义如下变量的含义: X:Rn*m,n个样本m个属性,对于第i个样本xi:R1*m。 W:Rm*k,k个正交的单位正交的列向量组成的矩阵,投影矩阵,把原来的m维降到k维。对于第i个维度wi:Rm*1。 投影后的样本矩阵X' = X 阅读全文
摘要:
一个C/C++程序从源代码到可执行程序主要经历了四个阶段: ①预处理。包括展开宏、处理#include,#if,#ifdef等指令、删除注释、还有一些其他操作。相关命令:gcc -E或cpp ②编译。对预处理文件进行分析并生产汇编代码,主要包括语法分析、语义分析、汇编代码生成、(源/汇编)代码优化。 阅读全文
摘要:
核化这个概念在很多机器学习方法中都有应用,如SVM,PCA等。在此结合sklearn中的KPCA说说核函数具体怎么来用。 KPCA和PCA都是用来做无监督数据处理的,但是有一点不一样。PCA是降维,把m维的数据降至k维。KPCA恰恰相反,它是把m维的数据升至k维。但是他们共同的目标都是让数据在目标维 阅读全文
摘要:
最近太忙,又有一段时间没写东西了。 pca是机器学习中一个重要的降维技术,是特征提取的代表。关于pca的实现原理,在此不做过多赘述,相关参考书和各大神牛的博客都已经有各种各样的详细介绍。 如需学习相关数学理论,请移驾。T_T 简单说一下pca的实现,首先对于一个矩阵X,我们计算X·XT,显然这个一个 阅读全文
摘要:
L1正则化是一种常用的获取稀疏解的手段,同时L1范数也是L0范数的松弛范数。求解L1正则化问题最常用的手段就是通过加速近端梯度算法来实现的。 考虑一个这样的问题: minx f(x)+λg(x) x∈Rn,f(x)∈R,这里f(x)是一个二阶可微的凸函数,g(x)是一个凸函数(或许不可导),如上面L 阅读全文
摘要:
网上看到关于数据降维的文章不少,介绍MDS的却极少,遂决定写一写。 考虑一个这样的问题。我们有n个样本,每个样本维度为m。我们的目标是用不同的新的k维向量(k<<m)替代原来的n个m维向量,使得在新的低维空间中,所有样本相互之间的距离等于(或最大程度接近)原空间中的距离(默认欧氏距离)。 举个栗子: 阅读全文
摘要:
快速排序Qsort是所有学习算法和数据结构最基础的一个部分,也是考试题和面试的一个小重点。 快速排序的时间复杂度为O(N*lgN),而且常数因子很小。 对于随机数据,效率特别高; 对于构造的恶意数据,最坏复杂度为O(N2),解决方案为采用随机化的快排。 除了时间效率上的优势,快速排序进行就地排序,即 阅读全文
摘要:
增广拉格朗日乘子法的作用是用来解决等式约束下的优化问题, 假定需要求解的问题如下: minimize f(X) s.t.: h(X)=0 其中,f:Rn->R; h:Rn->Rm 朴素拉格朗日乘子法的解决方案是: L(X,λ)=f(X)+μh(X); μ:Rm 此时,求解L对X和μ的偏导同时为零就可 阅读全文
摘要:
告诉你某些人的年龄大小关系,问你把所有的人分成若干个组,最少需要多少组,使得组内任意两个人的年龄不可比。首先考虑特殊情况,如果所有年龄关系构成了一个环,那么这个环中所有人的年龄都是相等,也就是可比的。同时所有其他的与这个环中任意一个点相连的任意一个环或者点都是可比的。如果两个点或者环,无法处在同一条... 阅读全文