我所讲授的数据科学课程涵盖了该领域大部分内容,但尤其关注机器学习(machinelearning)。除了讲授模型的评估过程和度量方法以外,很明显,我们还讲算法本身,主要是监督式学习(supervisedlearning)算法。
在为期11周的课程接近尾声的时候,我们花了几个小时检查所用的课程资料。我们希望学生能够逐渐理解他们所学的东西。要掌握的技能之一就是在解决机器学习的问题时,有能力在不同的监督式学习算法中做出明智的选择。虽然使用“蛮力”(把每种情况都试一遍,看看哪种最好)的方法有其价值所在,但比这价值大得多的是能够在不同算法之间做出权衡利弊的选择。
我决定为学生们组织一场比赛。我给他们一张空白的表格,列出所讲的监督式学习算法,让学生从几个不同维度对这些算法进行比较。我在网上找到了这样的表格,自己先弄一张再说!下面就是,一起看看:
上图为表格部分截图,中文版下载请点击这里。
贡献出这张表格,有两个原因:
其一,它可以用来讲课或者学习(下载下来拿去用吧)。
其二,这张表格需要完善,人多力量大!
这张表格是集鄙人经验与研究的产物,在任何这些算法的领域,我都称不上是专家。如果你有能够改进表格的建议,给我留言哟!
是否在我的这些评估中存在误导或错误?(当然啦,有些比较维度本身就带有主观性。)
是否存在应该添加到表格中的其他“重要的”对比维度?
是否还有其他你希望加入到这张表格的算法?(目前,表格中只有我所讲授的算法。)
我意识到每种算法的特征及相应的评价都可以基于数据的具体情况(以及数据的调优程度)发生变化。因此有人会认为试图做“客观”的比较是欠考虑的。然而,我认为作为监督式学习算法入门的一般性参考,这张表仍然有其价值所在。
Duang~Duang~Duang~!
学习资源
ChoosingaMachineLearningClassifier:EdwinChen所做的概述,短小易懂,可读性强。
scikit-learn的“机器学习导图”:选择“正确”的估计器(estimator)。
MachineLearningDoneWrong:深思熟虑的建议,避免在机器学习中掉进常见的坑,有些建议涉及算法的选择。
PracticalmachinelearningtricksfromtheKDD2011bestindustrypaper:较上一项更高级的建议。
AnEmpiricalComparisonofSupervisedLearningAlgorithms:发表于2006年的研究论文。