在数据科学领域,选择合适的机器学习算法对于解决业务问题至关重要。本文将通过算法化的方法,指导如何为特定的业务问题挑选恰当的算法。无论是数据科学的新手还是老手,本文都将为提供宝贵的知识。
在选择机器学习算法时,并没有一劳永逸的解决方案。这通常是一个复杂且令人生畏的任务,因为它依赖于多个因素,包括但不限于:
本文将讨论如何选择适合的算法来构建机器学习模型。阅读完本文后,将不再为选择特定业务问题的算法而烦恼。只需按照描述的方法,就可以找到合适的算法。
本文将讨论以下四种算法家族:
以下是本文讨论的核心流程图:
将从流程图的右上角开始讨论。以下是一些需要记住的符号,以便在阅读本文时正确理解:
如果样本数量少于50,则需要从关系数据库、平面文件或NoSQL数据库中提取更多数据。如果样本数量超过50,则检查是否预测类别,例如判断电子邮件是否为垃圾邮件,或将个人归入低收入、中等收入或高收入类别。如果答案是肯定的,将继续检查数据是否已标记,即数据集中是否存在目标或因变量。如果答案是肯定的,那么这是一个分类问题。
接下来,需要检查数据集中的观测值或样本数量是否少于100,000。如果是,可以选择线性SVC(支持向量分类器)算法。如果线性SVC未能给出正确的结果或准确性,将检查数据是否为文本格式。如果是文本数据,应选择朴素贝叶斯算法进行分类,因为该算法用于对用户的情感进行分类,以执行情感分析。如果数据不是文本性质的,应选择KNN(K最近邻)分类器。如果KNN算法未能工作或给出正确的结果或准确性,应尝试使用SVC或集成分类器构建模型。
如果没有标记的数据,即数据集中没有目标或因变量,将进入聚类算法家族。将检查另一个条件,以了解否知道类别的数量。如果知道类别的数量,将检查数据集中的样本或观测值是否少于10,000。如果是,应该选择K-means算法,如果K-means算法给出的准确性或结果不佳,可以选择谱聚类或GMM(高斯混合模型聚类)。如果样本数量不少于10,000,应该选择mini-batch k-means聚类。
如果不是在预测类别,而是预测数量,将进入回归算法家族。首先,将尝试找出数据集中的样本或观测值是否少于100,000。如果样本数量超过100,000,选择SGD(随机梯度下降回归器)。否则,将检查是否只有少数特征对预测至关重要。如果是这样,会选择Lasso或ElasticNet回归算法,否则会选择Ridge回归或SVR(支持向量回归器)与线性核。
如果目标不是预测数量,而是查看特征或自变量,以便想要筛选出具有最大变异性的自变量,可能是数据集中成千上万的列,那么将进入降维算法家族。现在,知道不可能用成千上万的列或变量构建模型,所以尝试找到有限数量的自变量或列或特征来生成预测,因此使用这类算法来实现这一目的。这意味着正在尝试执行某种降维,即减少可以提供与构建预测模型时相当的准确性的变量数量。
在本文中,详细解释了如何为给定的业务问题高效地选择合适的算法,以便不必四处寻找。
还可以查看之前的博客文章。
以下是LinkedIn个人资料,如果想与联系,将非常乐意与建立联系。
对于任何疑问,可以通过Gmail与联系。