机器学习和决策树

 网站优化    |      2020-06-08

几乎每个人都听过“机器学习”这个词,但大多数人并不完全明白他们的意思,机器学习不是简单地应用于问题的单一公式。有许多算法可供选择,每种算法都可用于实现不同的目标。这是一系列文章中的第一篇,它将介绍机器学习算法,以帮助您了解它们的工作方式以及何时使用每种算法。

什么是机器学习?

在我们进一步讨论之前,让我们确切地定义我们正在谈论的内容。什么是机器学习?机器学习是关于构建具有自适应参数的程序,这些参数可根据程序接收的数据自动调整。通过适应以前看到的数据,程序能够改善他们的行为。它们还可以推广数据,这意味着程序可以对以前看不到的数据集执行功能。

如果这个定义让你联想到人工智能,那么你就走在了正确的轨道上:机器学习实际上是人工智能的一个子领域,机器学习算法可以被认为是帮助计算机学习更智能操作的构建块。

机器学习算法有两种类型:监督和非监督。监督算法使用输入向量和目标向量(或预期输出)作为训练数据,而无监督算法仅使用输入向量,无监督算法使用称为聚类的过程来识别目标向量,这涉及在数据中创建组和子组。

例如,假设您正在教孩子识别不同类型的蔬菜,监督学习将涉及向孩子提供蔬菜并说:“这是胡萝卜,这些是豌豆,这是西兰花。“无监督的学习将涉及在没有给出他们的名字的情况下展示蔬菜,并让孩子对蔬菜进行分类:胡萝卜是橙色的,豌豆和西兰花是绿色的。然后,孩子将创建一个子类别来区分绿色蔬菜。豌豆是绿色和小的,西兰花是绿色和大。

参考:机器学习的亮点和挑战

了解决策树

我要介绍的第一个算法是决策树,这是一种较旧的算法,目前尚未广泛使用,但它仍然是学习我们将提出的更高级算法的基础。

决策树是监督预测模型,它可以通过根据收到的输入值回答问题来学习预测离散或连续输出。

让我们看一个使用现实世界数据集的例子:1986-1987的美国职业棒球大联盟(MLB)球员数据,我们将根据他在主要联赛中的比赛年数以及他上一年的点击次数来确定职业球员的薪水。

下图说明了我们的培训数据,彩色圆点表示单个玩家的工资:蓝色/绿色圆点代表低工资,红色/黄色代表高工资。

决策树使用不同的属性来重复地将数据拆分成子集,直到子集是纯的,这意味着它们都共享相同的目标值。在这种情况下,我们将空间划分为区域,并使用每个区域的平均工资作为未来玩家的预测工资,目标是最大化区域内的相似性,同时最小化区域之间的相似性。

计算机创建了以下区域:

R1-小于五年经验/平均$166,000的薪水
R2-five年以上经验/小于118次点击/平均403000$工资
R3-five年以上经验/118次点击以上/平均$846,000的薪水

然后使用这些区域对样本外数据进行预测,注意:只有三个预测,这是等效的回归树:

第一次拆分是年份<4.5,因此它位于树的顶部。如果拆分规则为true,请按左分支,如果为false,请按照右侧分支。左侧分支中玩家的平均工资为166,000美元,因此您使用该值标记它。(工资除以1,000并对数转换为5.11。)对于右分支中的玩家,命中数<117.5进一步分割,这进一步将球员划分为两个薪水区域:403,000美元(转换为6.00)和$846,000(转换为6.74)。

从这棵树,我们可以推断出以下内容:

美国职业棒球大联盟球员的比赛年数是决定他薪水的最重要因素,较低的薪水年数较少。对于年龄较低的美国职棒大联盟球员来说,命中率并不是决定薪水的重要因素。

对于已经参加更多年份的美国职业棒球大联盟球员来说,命中率是确定薪水的一个重要因素,更多的命中率与更高的薪水相对应。

量化子集的纯度

在决策树中,任何属性都可用于分割数据,但算法会根据结果子集的纯度选择属性和条件,子集的纯度由子集内的目标值的确定性确定。

为了测量子集的纯度,我们必须提供一个定量度量,以便决策树算法可以客观地选择要分割的最佳属性和条件。有多种方法可以测量一组值中的不确定性,但出于我们的目的,我们将使用熵(由H表示):

X得到的分裂n子集
p

为了方便用户快速找到我们,也可以关注我们的微信公众号:唯小宝网络