关于机器学习中规则与统计方法的思考

      最近工做了一段时间,今天跟你们讨论一下关于“规则与模型”的问题。
      你们确定都知道,机器学习方法主要分两类,一类是基于统计的方法,好比贝叶斯、KNN等,都是对数据的某种特征进行归类计算获得数据划分的依据的;另外一类是基于规则的方法,好比,语义规则,语法规则或者业务规则等等,这些规则主要是根据数据自己的特征人为地对分类细节进行限定,没有什么过高深的理论,可是实用性很强。固然,我以为还有第三种方法,就是基于统计与基于规则相结合的方法,好比关联规则,apriori方法,或者决策树方法。这些方法在分类或者求变量关系的时候本质上是基于规则分类,可是在训练过程当中倒是使用统计的方法的。好比apriori方法,该方法自己就是求规则的一种方法,但该方法训练的时候是须要对各类关联特征进行统计的。训练完毕后寻找强关联性的特征能够进行分类,由于我以为找出哪些是强关联哪些不是强关联就是一个分类的过程。再好比决策树,一样的道理,决策树自己获得的那棵树就是一棵规则树,可是在寻找树的分裂属性上,不管是ID3仍是C4.5,都是基于统计方法的。我认为这种经过训练出的规则进行统计分类的方法就是统计与规则相结合的方法。那么这三类方法哪些是比较有效的呢,或者说哪些是比较适合大部分数据的呢?
      个人我的理解是,没有。咱们在学校里写paper,最主要的任务有三:第一,提升算法性能;第二,提升算法对数据的匹配度;第三,提升数据对算法的匹配度。举个例子来讲,我用SVM对新浪微博文本作情感分析,要么改进SVM核心算法,提升分类精度;要么对SVM选取特征的方法或空间构造的方法进行改进,提升分类精度;要么就是直接改进数据特征提取方式,提升数据对分类器的匹配度。可是,不论是哪种方法,都要知足最小泛化阈值。也就是说,对训练数据以外的测试数据的分类准确度必定要知足最低要求。咱们把训练数据和测试数据的概念扩大一下,若是咱们把要训练的某类数据做为训练数据,把该类别以外的数据做为测试数据,状况就彻底不同了。好比,我把微博数据做为训练数据,把短信类短文本数据做为测试数据,虽然一样都属于短文本,但泛化值出奇的低。这是由于咱们不管采用哪种方法,数据都必须是封闭的,或者说是相对封闭的。咱们用分类器或者基于统计的方法,其实主要就是为了提升泛化能力,由于统计一个词的个数和一个数的个数的意义是同样的。可是如今看来,好像基于统计的方法的泛化能力仍是有限。
致使这种现象的缘由是什么呢?我在刚开始学机器学习的时候就遇到一个很大的矛盾,既然SVM是最好的基于统计的分类方法,而基于统计的方法的目的就是为了提升泛化能力,为何在使用SVM的时候仍是须要去适应数据呢?在我理解,分类方法对数据适应的越多,规则成分就越多。我在最近作“技能词识别”的时候使用了各类规则,尝试了各类方法,而后我返现我犯了两个个错误,第一SVM是一种思想,不是一种具体的方法。思想自己没法使用,只有把它应用到实践才有价值;第二就是数据挖掘,或者机器学习的核心的重点永远是数据和思想的问题,没有方法的问题。由于咱们选择的方法必定是要匹配数据的,目前来讲这是根本;方法也是必需要符合分类某数据的核心思想的。由此我想出,不管是基于规则的方法仍是基于统计的方法都是基础理论,单纯的使用基础理论是没有什么意义的,或者说只能知足不多一部分数据的。只有结合实际状况,结合多种基础理论,才能把机器学习运用到实际当中,由于咱们的核心是数据,是实际状况。
      因此说,若是们分类的时候发现基于统计的方法远远不如基于规则的方法,或者反过来,并不代表哪种方法好,而是说明某一种方法更适合目前要分析的数据。对彻底不一样数据类型的数据进行泛化我以为目前来讲不太现实,由于对于真实的人来讲让一我的根本不懂英语的中国人去理解英文那是不可能的。固然,之后会发展到什么程度我是难以预料的,个人眼光目前也比较短浅看不到很深远的东西。但我以为,若是某一天这种泛化能力实现了,人类将走向灭绝。
      对了,最后一点,我以为将“基于统计的学习方法”和“基于规则的学习方法”改成“基于统计的学习思想”和“基于规则的学习思想”更好一些。
      可能会有逻辑不对的地方,欢迎批评指正!
相关文章
相关标签/搜索