机器学习中,怎样分析数据结构来选择算法

如题所述

在模型选择方面,本身来说,个人觉得并没有一种很确定的指导方式,更多的是从你数据的应用角度去考虑问题,然后才是你对数据的理解。

应用角度的问题就是你对模型的要求,如果你的要求是模型尽量是可解释的,那么选择估计就只有决策树,逻辑回归等等这种简单的模型。
数据的角度:这个角度其实更多的是从获取某种先验知识或者基于某种假设等等,然后你去选择模型;
比如我有一个数据,我知道y-x>0则为1类,y-x<0则为0类别,这个是假设我知道的情况下,你会怎么取选择分类器呢,很明显,直接用线性回归就应该做的不错,或许和你之后的会有点小偏差,但是就是应该不错,那么此时你会发现SVM的线性核应该可以是可以的,你的思路就会发现,其实基本上所有的线性分类器在这样的数据集合上都应该不错的;
然而你考虑一下Decision Tree,你会发现他做的不是很好,但是最差最差也能够得到75%(假设我就分一次,x>0和x<0),这个时候你怎么评估这个问题的好与坏呢,如果是赌场,这个效果是很好了,但是如果是指纹的识别,这个就不好了;再深入的考虑下去,你可能会否定Decision Tree,但是,其实这个问题,如果是用 Random Forest去做,他又会做的很好,因为在不断的选取数据中,他会不断的得到新的划分点。
你也可以从wikipedia(Random forest)的介绍中感觉到,RF是可以做好的,因为他相当于是带权的KNN;
所以我觉得在实际应用中,从简单模型开始尝试,或许会有新的对数据的认识,从而使你得到一些没有的信息,如上述的问题中,你从linear regression就很容易发现这个效果,但是你如果一来就是NN或者SVM,或许你就发现不了这种关系了;
当然,如果你是为了快速的做出一个好的结果,那一来就尝试复杂模型总会是稍微好点的,理由也是很简单的,因为复杂模型的VC维比较高,当然就能解决更多的问题。
温馨提示:答案为网友推荐,仅供参考
相似回答