本文转载自公众号“读芯术”(ID:AI_Discovery)。
机器学习是数据科学领域最重要的子领域之一。1959年,IBM研究人员ArthurSamuel首次使用了机器学习这一术语。从此以后,机器学习领域引发了很多人的极大兴趣。
当你开始数据科学之旅时,遇到的第一个子领域可能就是机器学习。机器学习是用于描述计算机算法集合的名称,这些算法在运行过程中通过收集信息不断进行学习和改进。
机器学习算法都是基于某些数据的。最初,该算法通过一些“训练数据”来建立解决特定问题的直觉。一旦算法通过了学习阶段,就可以通过已获得知识解决基于不同数据集的相似问题。
一般而言,机器学习算法分为4类:
- 监督算法:在运行过程中需要开发人员的监督。为此,开发人员可以标记训练数据并为要遵循的算法设置严格的规则和界限。
- 无监督算法:开发人员不直接控制的算法。在这种情况下,算法的期望结果是未知的,需要由算法定义。
- 半监督算法:该算法结合了监督算法和非监督算法的各个方面。例如,初始化算法时,并非所有训练数据都将被标记,并且不提供一部分规则。
- 强化算法:此种类型算法使用了一种称为探索/开发的技术。技术内容很简单;机器执行一个动作,观察结果,然后在执行下一个动作时考虑这些结果,依此类推。
以上每种算法都有特定目标。例如,监督学习旨在扩展训练数据的范围,并据此预测未来或新数据。另一方面,无监督算法用于组织和筛选数据以使其有意义。
每个类别都有各种旨在执行特定任务的特定算法。本文将介绍每个数据科学家都必须了解的5种基本算法,内容涵盖机器学习的基础知识。
1. 回归
回归算法是监督算法,用于查找不同变量之间的可能关系,以了解自变量对因变量的影响程度。可以将回归分析视为一个方程,例如,假设有方程y = 2x + z,y是因变量,则x,z是自变量。回归分析就是找出x和z在多大程度上影响y的值。
相同的逻辑适用于更高级和更复杂的问题。对于各种问题,回归算法的类型也有很多。最常用的前五名可能是:
- 线性回归:最简单的回归技术使用线性方法来描述因变量(预测值)和自变量(用于预测的值)之间的关系。
- Logistic回归:这种类型的回归用于二进制因变量,被广泛用于分析分类数据。
- 岭回归:当回归模型变得过于复杂时,岭回归会校正模型系数的大小。
- Lasso回归:Lasso(最小绝对收缩选择器运算符)回归用于选择变量并对其正则化。
- 多项式回归:这种类型的算法用于拟合非线性数据。使用时最好的预测不是直线,而是一条试图拟合所有数据点的曲线。
2. 分类
机器学习中的分类是基于预分类的训练数据集将项归类的过程。分类被认为是监督学习算法的一种。这些算法利用训练数据的分类结果,计算出新的项落入已定义类别之一的概率。分类算法的一个著名示例是将传入的电子邮件分为垃圾邮件或非垃圾邮件。
分类算法有多种类型,最常用的有:
- K近邻:KNN是一种使用训练数据集来查找某些数据集中的k个最接近数据点的算法。
- 决策树:可将其视为流程图,将每个数据点一次分为两类,然后再分为两类,依此类推。
- 朴素贝叶斯:此算法使用条件概率规则计算项属于特定类别的概率。
- 支持向量机(SVM):在此算法中,根据数据的极性程度对数据进行分类,这可能超出X / Y预测范围。
图源:Google
3. 集成
集成算法通过将两个或多个其他机器学习算法的预测结合来得到更准确的结果。可以通过投票或平均结果来组合结果。投票通常在分类过程中使用,而平均则在回归过程中使用。
集成算法有3种基本类型:Bagging、Boosting、以及Stacking。
- Bagging:在Bagging中,算法在大小相同的不同训练集上并行运行,然后使用相同的数据集测试所有算法,并投票确定总体结果。
- Boosting:在Boosting的情况下,算法按顺序运行,然后使用加权投票选择总体结果。
- Stacking:顾名思义,Stacking包含两个层次,初级学习器是算法的组合,次级学习器是基于基础层次结果的元算法。
4. 聚类
聚类算法是一组用于对数据点进行分组的无监督算法 同一聚类中的点比不同聚类中的点彼此之间更相似。聚类算法有4种类型:
- 基于质心的聚类:此聚类算法根据初始条件和异常值将数据组织到类中。基于质心的聚类算法中用的最多的就是k均值。
- 基于密度的聚类:在这种聚类类型中,该算法将高密度区域连接到聚类中以创建任意形状的分布。
- 基于分布的聚类:此聚类算法假定数据由概率分布组成,然后将数据聚类为该分布的各种版本。
- 层次聚类:此算法创建了一个层次数据簇的树,可以通过在正确的级别上切割树来改变簇的数量。
5. 关联
关联算法是无监督算法,用于发现某些项在特定数据集中一起出现的概率,主要用于购物篮分析。最常用的关联算法是Apriori。Apriori算法是交易数据库中常用的挖掘算法。Apriori用于挖掘频繁项集,并从那些项集生成一些关联规则。
例如,如果一个人购买牛奶和面包,那么他也可能会买一些鸡蛋。这可以从各个顾客的先前购买记录得出。然后算法算出这些项被一起购买的频繁程度,根据针对该置信度的特定阈值来形成关联规则。
图源:Google
机器学习是数据科学中最著名、研究最深入的子领域之一。人们也一直在开发新的机器学习算法,以达到更高的准确性和更快的执行速度。无论采用哪种算法,通常都可以将其归为以下四类之一:有监督、无监督、半监督和增强算法。每个算法的用途都不一样。
这些算法经过了深入研究和广泛使用,你只需要了解如何使用它,而不是如何实现它。大多数著名的Python机器学习模块(例如ScikitLearn)都包含大多数(如果不是全部)这些算法的预定义版本。
了解其原理后,赶紧掌握用法并开始用起来吧。