前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【经典】机器学习可视化演示

【经典】机器学习可视化演示

作者头像
新智元
发布2018-03-26 14:07:38
1.3K0
发布2018-03-26 14:07:38
举报
文章被收录于专栏:新智元新智元

【新智元导读】机器学习应用统计学习技术,自动识别数据集内的模式。这些技术可以用来作出准确性很高的预测。决策树是机器学习作预测的常见方法之一,本文以一个房屋资料数据集为示例,用可视化图阐释了如何建一个能够区分房屋地理位置的决策树模型。虽然原文发布已有一段时间,然而每次看来仍然震撼,强烈推荐:http://www.r2d3.us/visual-intro-to-machine-learning-part-1/

机器学习中,计算机常应用统计学习技术自动识别数据集内的模式。这些技术可以用来作出高度准确的预测。本文以一个房屋资料的数据集为示例,图解如何建一个能够区分纽约市和旧金山的房子的机器学习模型。

一些直观特征

假设我们需要凭数据预测一栋房屋是位于旧金山还是纽约市,应该怎样做呢?在机器学习学科里,这是一种分类任务(classification task)

如果你到过旧金山,你可能会知道其地貌是高低不平的丘陵地带。那么房屋的海拔数据或许能区分这两座城市的房屋。

上图表示两地房屋的海拔数据,你可能会认为海拔240英尺以上的房子看来应该是位于旧金山的。这是我们凭直觉所能作出的初步预测。

增加维度

增加一个维度(dimension)能让我们发现更多差别特征。例如,纽约市的房子每平方英尺价格显然要比旧金山的贵得多。

所以加上每平方英尺价格这个维度后,我们的图变成了散点图,从散点图可以看到,海拔较低的房屋中,单价相对高的房子应该是纽约市的。

从这些数据中我们可以作出这样的预测:在海拔低于或等于240英尺的房子中,如果每平方英尺价格高于1776美元,那么这栋房子应该位于纽约市。

机器学习中,数据集内的维度又称特征(features)预测器(predictors)变数(variables)

划分边界

我们可以把海拔(>242ft)和每平方英尺单价(>$1776)作为分界线上面的散点图上画出来。图上绿色的部分(海拔>242ft)可以归类为旧金山的房子,蓝色的部分(平方英尺单价>$1776,海拔≤242ft)归类为纽约的房子。

这种利用数据找出合理的分界线的方法是统计学习的基础。

但是,左下角哪些海拔低,单价也低的房子该怎么分类呢?我们需要更多的特征数据。

我们用来建机器学习模型的房屋数据集里有七个维度。在机器学习中,建模的过程又称训练模型(training a model)

如图,我们把每两个维度的关系都制成散点图,从图中可以看出数据的规律,但分界线不明显。

机器学习

在数据中寻找模式是机器学习的特长。机器学习方法可以使用统计学习找出最佳分界线。

接下来我们将介绍一种叫决策树(decision tree)的机器学习方法。决策树会逐一分析数据集里的维度,是一种合理可行的机器学习方法。

寻找更好的分界特征

让我们回顾最初的海拔数据图,想想怎样找到更好的分界特征。显然,换个角度,把原来的海拔图变为矩形图(histogram)可以更直观地看出数据里的规律,例如每个海拔上房子的数量趋势。

从矩形图中可以看出,纽约市海拔最高的房子大约是240英尺,但大多数房子都位于海拔较低的地方。

第一个分支

决策树使用“如果-则”语句(if-then statements)来定义数据中的规律。例如,如果一栋房子的海拔高于某个数据,则该房子位于旧金山。

在机器学习中,这些条件被称为分支(forks)。分支根据某些维度值把数据分成两个支路(branches),这个值被称为分割点(split point)。在这个分割点左边的数据被归入一类,右边的被归入另一类。分割点即是决策树的分界。

权衡

选择分割点时需要权衡。我们最初选择的分割点(海拔240ft)就把很多旧金山的房子错误划分为纽约市的了。

上面的饼状图里绿色的部分就是错误划分到旧金山的房子,这些分错的样本叫做假负类(false negative)

但是,如果一个分割点把所有的旧金山的房子都正确划分,那它就会同时错误地把许多纽约市的房子也包括进来,这类错误叫做假正类( false positives)

最佳分割点

最佳的分割点应该使每个分支的分类结果尽可能均质(homogeneous)。统计学中有几种方法可以用来计算最佳分割点。

如上图所示,一个特征的最佳分割点还不能完全正确地把旧金山和纽约的房子区分开来。

递归

为了增加另一个分割点,算法在第一个分支后的子数据集中重复上述过程。机器学习中,这种重复叫做递归(recursion),是训练模型时常用的方法。

新分支的最佳分割点取决于各边的数据。例如,在左边海拔较低的分支,最佳分割维度是每平方英尺价格,分割点在$1061 per sqft,在右边海拔较高的分支,最佳分割维度是房价,分割点在$514500。

栽培决策树

增加分支意味着增加新信息,从而提高决策树的预测准确性(prediction accuracy)。在本例中,增加一层决策树的准确性提高到84%。再加几层,准确性达到96%

我们甚至可以继续增加分支,直到决策树的准确度达到100%。这样,决策树末梢的所有分类结果都纯粹地属于旧金山或纽约。

决策树的这些末梢又叫叶节点(leaf nodes)。决策树模型对每个叶节点里的数据(房子)的分类取决于其中的多数派。

作出预测

训练好的决策树模型通过把数据集里的每一栋房子(图示的点/数据)从根部顺着分支走到叶节点进行分类,叶节点属于哪一类,这个数据就属于哪一类。每条路径都有决定预测分类的规则(if-then语句)。

这些数据叫做训练数据(training data),因为它们是用来训练模型的。由于我们这个决策树是用这些训练数据训练出来的,所以这个决策树分类训练数据的准确率当然是100%。

用真实数据测试

用真实数据测试是指用决策树未见过的数据(previously-unseen data)来做分类任务,这类数据叫做测试数据(test data)

理想情况下,决策树对测试数据的分类的准确性应该和训练数据的结果差距不大。在这个例子中,我们的模型得到了89.7%的正确率,如此看来这个决策树做得不算很好。

这些错误是由于过拟合(overfitting)。我们的决策树把训练数据的每个差别特征都看作是同等重要的分界条件,但其中有些特征是不相关的。过拟合是机器学习的一个基本概念,我们会在以后的文章中更详细讨论。

扼要重述

  1. 机器学习使用统计学习方法识别模式,从数据集中挖掘分界条件,从而作出预测。
  2. 决策树是机器学习作预测的方法之一,决策树使用if-then语句进行分界并在数据中找出模式。
  3. 当作分界的差别特征关系不大时,容易发生过拟合。可以用测试数据来检查模型的过拟合程度。

感谢两位原作者,到这里(再次领略)机器学习之美:

原文地址:http://www.r2d3.us/visual-intro-to-machine-learning-part-1/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新智元 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档