监督式机器学习是最常用且最成功的机器学习类型之一。
当你希望根据给定的输入来预测某个结果,并且我们有输入/输出对示例时,就使用监督学习。我们根据这些输入/输出对来构建机器学习模型,这些对构成了我们的训练集。
那些从输入/输出对中学习的机器学习算法被称为监督学习算法。
监督学习通常先需要人工来构建训练集,之后就能实现自动化处理,从而加快原本繁琐或难以完成的任务。目标是对从未见过的新数据做出准确的预测。
监督机器学习问题主要有两种类型,分类和回归。
在机器学习过程中,最重要的一环或许就是理解你所处理的数据,以及这些数据与你要解决的问题之间有何关联。随机选择一种算法并把数据输入其中是无效的。在开始构建模型之前,有必要先了解数据集中的情况。每种算法在适用数据类型及问题场景方面都有所不同。
对于许多算法而言,设置合适的参数对于获得良好性能至关重要。有些算法对我们如何表示输入数据也很敏感,尤其是特征的缩放方式。
如果不了解模型的假设条件以及参数设置的含义,就盲目地将算法应用于数据集,则很难得到准确的模型。了解这些模型及其在特定情境下的应用场景,对于在实际应用中成功运用机器学习来说至关重要。
最近邻点
对于小型数据集而言,适合作为基准,易于解释。
线性模型
作为首选算法来尝试,它适用于非常大的数据集,也适用于极高维度的数据。
朴素贝叶斯
仅用于分类。比线性模型更快,适用于非常大的数据集和高维数据,但通常不如线性模型准确。
决策树
运行速度极快,无需对数据进行缩放,可可视化且易于解释。
随机森林
几乎总能优于单个决策树,具有很强的鲁棒性和强大性能。无需数据缩放,但不适用于极高维稀疏数据。
梯度提升决策树
通常略优于随机森林。训练速度较慢,但预测速度比随机森林更快,内存占用更小。相比随机森林,需要更多的参数调优。
支持向量机
对于特征含义相似、规模中等的数据集效果很好。需要对数据进行缩放,且对参数敏感。
神经网络
能够构建非常复杂的模型,尤其适用于大数据集。对数据缩放和参数选择较为敏感。大型模型训练所需时间较长。
在构建机器学习解决方案时,你应该牢记以下问题:我收集到的数据能够回答那个问题吗?将我的问题表述为机器学习问题的最佳方式是什么?我收集的数据是否足以代表我想要解决的问题?我提取了数据的哪些特征?这些特征能否帮助做出正确的预测?这个机器学习解决方案将如何与我研究或商业产品的其他部分进行交互?
在处理新数据集时,最好从简单的模型开始,比如线性模型、朴素贝叶斯或最近邻分类器,看看能取得怎样的效果。在对数据有了更多了解之后,再考虑使用能够构建更复杂模型的算法,如随机森林、梯度提升决策树、SVM或神经网络。
在不同数据集上试验这些算法,能有更深入的理解。