1088 字

从因子分析到垃圾邮件

想不到真的拖了1年才续写这个系列,因子分析的要义其实就是挖掘背后的信息。例如我给你些综合性经济指标,让你把其中出口的跟内需的部分挖出来你该如何去做?指标都是综合性的,不会说你想抽出一部分就可以。在主成分分析中,其实想得到的是综合性指标去降维而因子分析是想挖掘现有数据中的一部分。例如GDP中出口占多少?但GDP还有其他的组成部分,甚至还有自己独特的一部分,而其他指标也是这样,都有符合意图的一部分的同时也有自己独特的一组,所以算法上就会要求因子分析去分离每个变量中的这两种因素:公共因素与独立因素。而且前面也过于理想化了,你拿到的分离出的新因子可能不代表出口,换言之你可能找不到实际意义,这就悲剧了。但如果你新分出来的因子在解释问题上表现优异,那你可以根据实际问题给他起个名字。所以说因子分析可以用来建立假设,这也是探索分析的一种。但是,也有从假设出发的因子分析,它隶属于结构方程模型(SEM),可以拿来做很复杂的分析,所以社科的人比较喜欢这货。

假设我能通过统计学的知识得到强有力的背后特征且也是我需要的,这个描述就一定合理吗?不一定,有时候好用的东西讲不出道理,不好用的直观模型反而更受欢迎。这里引一段丁鹏对统计学的描述:

……统计中所谓的“因果”是“某种”意义的“因果”,即统计学只讨论“原因的结果”,而不讨论“结果的原因”。前者是可以用数据证明或者证伪的;后者是属于科学研究所探索的。用科学哲学家卡尔·波普的话来说,科学知识的积累是“猜想与反驳”的过程:“猜想”结果的原因,再“证伪”原因的结果;如此循环即科学。

所以看起来原因的结果似乎都是通过数据探索来完成的,而这个原因并不一定是真的。或者说将假设中结果的原因与数据反映的原因的结果去对应,很有可能是对不上号的,特别是观测而不是实验数据。不过如果从问题出发,简化的问题可能更容易求解,这一系列前面关于降维的讨论核心也在这里:没有物理意义的降维却可能解决实际的计算问题。那么这跟垃圾邮件有什么关系?

我们描述一个世界跟描述一个问题是不同的,如果使用同一套交流体系,世界要有实体指代,而问题却可能只是信息层面上的。一段描述感受的文字有信息量,但不一定有对应实体,而垃圾邮件就是这一类描述的代表,对我们没用的信息。处理这个问题你不能用铁锨或垃圾桶,你需要对信息进行筛选,而这里就会用到很多统计学上的方法。首先,我们要能够识别出垃圾邮件,但说实话等你识别出来就已经因垃圾邮件耽误时间了,所以这时候就需要把这种活交给程序去做。但你是无法告诉程序那是对那是错的,因为垃圾邮件本就不是一个特定名词,定义不清的事就只能交给经验了。所谓机器学习就是人类偷懒的一个表现。那面对这个问题如何下手呢?

既然是机器学习,那就告诉他特征吧,例如有促销或办证字样的就是垃圾邮件。这样我们建立一个关键词数据库就OK了,但发送邮件的也不傻,我对关键字加盐或发图片你就没招了吧?这样我们从内容上就不好判断了,那就靠来源,建个黑名单。但垃圾邮件发送者也知道你这招,每次换个邮箱就可以了,反正现在搭或租一个邮箱服务器也不难。那我用白名单,但这样有些重要信件就丢失了。而且每个人对垃圾邮件的定义也不一样,有些人对某些邮件还是感兴趣的,这时就需要在客户端部署个性化邮件筛选器,而这里就用到了贝叶斯方法。然而,这场战斗不会这么容易结束,而当垃圾邮件被再抽象为是与否的二元响应变量后,自变量从哪里来,它们又真的跟垃圾与否相关吗?下篇将从垃圾邮件出发,经过一番忽悠,讲到回归诊断。