各种机器学习算法最佳应用场景 – 1

此前,跨象乘云™ 曾介绍了基于 scikit-learn 的机器学习算法工程导图这篇文章进一步详细解析了各种机器学习算法的最佳应用场景,以下内容由机器之心编译。

机器学习既是一门科学,也是一种艺术。各类机器学习算法,并没有一种普适的解决方案或方法。事实上,有几个因素会影响你对机器学习算法的选择。有些问题是非常特别的,需要用一种特定的解决方法。例如,如果你对推荐系统有所了解,你会发现它是一类很常用的机器学习算法,用来解决一类非常特殊的问题。而其它的一些问题则非常开放,可能需要一种试错方法(例如:强化学习)。监督学习、分类、回归等问题都是非常开放的,可以被用于异常检测或建立更加广泛的预测模型。

同时,我们在选择机器学习算法时所做出的一些决定与算法的优化或技术层面关系并不大,而更多地与业务决策相关。我们认为,机器学习本身就是一项与经验关联十分密切的技术 —— 你越了解你的业务需求,越多的尝试各种机器学习算法对于不同业务模型与数据特征下的表现,你就越有机会在最短的时间内找到合适的机器学习算法。这也是跨象乘云™ 在设计《机器学习》课程时的最大宗旨,换句话说,你做的实验越多,成功几率越大。首先,无论采用哪种机器学习算法,你都需要先完成以下必要的数据科学流程:

第一步:理解数据特征

当我们决定使用哪种算法时,我们所拥有的数据的类型和形态起着关键性的作用。有些算法可以利用较小的样本集合工作,而另一些算法则需要海量的样本。特定的算法对特定类型的数据起作用。例如,朴素贝叶斯算法对处理待分类的输入特别有效,但是对于缺失值则一点都不敏感。

1. 查看总结统计和数据可视化的结果

  • 百分比可以帮助你识别大多数数据的范围
  • 平均数和中位数可以描述集中趋势
  • 相关系数可以指出强的关联性

2. 探索性数据分析(EDA)

  • 箱形图可以识别出异常值
  • 密度图和直方图可以显示出数据的散布情况
  • 散点图可以描述二元关系

跨象乘云™ 大数据可视化探索平台,便是一个非常不错的通过可视化快速理解数据分布及特征形态的工具。

第二步:数据预处理与清洗

1. 处理缺失值。缺失的数据对于某些模型的影响比对其它模型更大。即使是对于那些被用于处理缺失数据的模型来说,它们也可能对缺失数据很敏感(某些变量的缺失数据可能导致预测性能变差)。

2. 选择处理异常值的方法

  • 异常值在多维数据中十分常见。
  • 有些模型对异常值的敏感性比其它模型要低。通常而言,树模型对于异常值的存在不太敏感。然而回归模型、或者任何试图使用方程的模型都会受到异常值的严重影响。
  • 异常值可能是糟糕的数据收集造成的,也可能是合理的极值。

3. 数据需要被聚合吗?详细可以参考跨象乘云™ 的《数据预处理与数据标记》课程。

第三步:数据增强与特征工程

1. 特征工程是从原始数据中产生能够被用于建模的数据的过程,可以起到以下几种作用:

  • 使模型更容易被解释(如:数据分箱(binning))
  • 捕获更复杂的关系(如:神经网络)
  • 减少数据冗余并降低数据维度(如:主成分分析(PCA))
  • 重新缩放变量(如:标准化或归一化)

2. 不同的模型可能有不同的特征工程的要求。有的模型有内置的特征工程。详细可以参考跨象乘云™ 的《特征工程》课程。

第四步:对问题进行分类

1. 根据输入分类:

  • 如果你拥有的是带标签的数据,那么这就是一个监督学习问题。
  • 如果你拥有的是未标注过的数据,并且希望从中找到有用的结构,那么这就是一个无监督学习问题。
  • 如果你想要通过与环境的交互来优化一个目标函数,那么这就是一个强化学习问题。

2. 根据输出分类:

  • 如果模型的输出是一个(连续的)数字,那么这就是一个回归问题。
  • 如果模型的输出是一个类别,那么这就是一个分类问题。
  • 如果模型的输出是一组用输入数据划分出的簇,那么这就是一个聚类问题。
  • 你想发现一个异常点吗?此时你面对的就是一个异常检测问题。

第五步:理解你要满足的约束条件

  • 你需要考虑你能够存储数据的容量有多大?这取决于系统的存储容量,你可能无法存储若干 GB 大小的分类、回归模型或者若干 GB 的用于聚类分析的数据。例如,在嵌入式系统中,你就会面临这种情况。
  • 对预测过程的速度是否有要求?在实时应用中,很显然,尽快得出预测结果是十分重要的。例如,在自动驾驶问题中,应用必须尽可能快地对道路标志进行分类,以免发生交通事故。
  • 对学习过程的速度是否有要求?在某些情况下,快速训练模型是十分必要的:有时,你需要使用不同的数据集快速地实时更新你的模型。

第六步:寻找可用的算法

当对自己的任务环境有了一个清晰的认识后,你就可以使用你所掌握的工具确定适用于待解决的问题并切实可行的算法。一些影响你选择模型的因素如下:

  • 模型是否满足业务目标
  • 模型需要多少数据预处理工作
  • 模型有多准确
  • 模型的可解释性如何
  • 模型运行的速度有多快:构造模型需要多久?模型做出预测需要多长时间?
  • 模型的可伸缩性如何

模型的复杂度是一个影响算法选择的重要标准。一般来说,一个更复杂的模型具备下列特征:

  • 它依赖于更多的特征进行学习和预测(例如,使用十个而不是两个特征来预测目标)
  • 它依赖于更复杂的特征工程(例如,使用多项式特征、交互特征或主成分)
  • 它有更大的计算开销(例如,需要一个由 100 棵决策树组成的随机森林,而不是一棵单独的决策树)

除此之外,同样的机器学习算法可以基于参数的个数和某些超参数的选择而变得更加复杂。例如:

  • 回归模型可以拥有更多的特征,或者多项式项和交互项。
  • 决策树可以拥有更大或更小的深度。
  • 将相同的算法变得更加复杂增加了发生过拟合的几率。

智能数据挖掘》进一步了将各种机器学习算法与业务需求联系起来,让大数据与人工智能专业学生更加明确各种机器学习算法能够解决的真实业务问题。

第二部分我们将介绍集中常用的机器学习应用场景,包括:线性回归,Logistic 回归,决策树,K-均值,主成份分析(PCA),支持向量机(SVM),朴素贝叶斯,随机森林,神经网络 …… 等。