你好,游客 登录 注册 搜索
背景:
阅读新闻

Azure 「机器学习」:我该用哪种算法?

[日期:2015-01-14] 来源:中国大数据  作者:蔡孟儒 (Raymond) [字体: ]

在「Azure 「机器学习」初体验」一文中,我们了解到如何透过 Azure ML 工具,很快的完成一个实验 (Experiment)。基本上是遵循以下流程:

image

上图的红框 (apply Algorithms) 则是本文所要介绍的重点。也就是,我该在实验中选择哪一种演算法,来解决问题呢?

Azure ML 将内建的演算法分为叁种类型:Classification (分类), Regression (迴归分析) 以及 Clustering (分群):

image

1. Classification (分类): 如字义所见,即是透过机器学习,预测结果是属于哪一种类别的方法。最常见的情境就是二分法了,亦即可以回答 True/False 或 Positive/Negative 的问题,比如:

  • 现有的中x电信客户,会不会转去远x电信呢?

  • 客户有没有潜在升级或加购产品的商机呢?

以下是 Azure ML 所内建提供的 Classification 演算法 (竟然有类神经网路啊!! 回想到以前在交大修这门课时的熬夜岁月 ><…):

几种不同「二分法 (Two-Class)」 Classification 演算法的示意图:

f:id:TJO:20140106225421p:plain

(图片来源: http://tjo-en.hatenablog.com/entry/2014/01/06/234155)

2. Regression (迴归分析): 与前者 Classification 方法的不同之处,在于 Regression 演算法通常是预测出一个「数值」。比如:明天的台北股市收盘价是多少? 如何根据所在城市、坪数、学区等来预测房价? 都是适合使用 Regression 演算法的问题。

Azure ML 提供的 Regression 演算法包括:

image

例如我想以汽车马力 (horsepower) 来预测耗油量 (miles per gallon),以下即是透过 Linear Regression 演算法的预测示意图:

image

(图片来源: “Predictive Analytics with Microsoft Azure Machine Learning: Build and Deploy Actionable Solutions in Minutes”)

3. Clustering (分群): 通常是用来处理「没有正确答案」的问题,这种问题该怎么办呢? Clustering 能将有相同特徵者丛集在一块。比如:Facebook 辨别使用者属于哪些不同的群组 (运动爱好者、通勤族、萝莉控…等),以满足广告投放商的需求。

以下是塬始资料,及以 K-means Clustering 分群之后的示意图:

_images/kmeans_2d.png

(图片来源: http://pypr.sourceforge.net/kmeans.html)

小结:

所以回到最初的问题,当我们在设计 Machine Learning 实验时,要如何决定使用哪种演算法呢?

  • 如果您的问题能够以 Yes/No 来回答 => Classification (分类)

  • 如果您期望的解答是一个数值的话 => Regression (迴归分析)

  • 如果您想将具相同特性的资料群集分类 => Clustering (分群)

但请注意,以上仅是大致的判断法则,仍请各位能徵询资料科学家的专业意见,选择最合适的演算法。

另外,有注意到文章标题中的 algorithms 用了复数吗? 是的,在实际的应用模型中,多种演算法被合併使用是很常见的 (如: Amazon 的情绪分析模型)。

练习题:

最后各位要不要猜猜看,以下这 3 种预测或应用,主要是用了什么演算法呢?

1. 如左图,照张狗的照片即可辨别出,这隻狗是属于哪个品种。 (罗得西亚背嵴犭- 影片连结: https://www.youtube.com/watch?v=zOPIvC0MlA4#t=45)

imageimage

2. 2014 年的第 86 届奥斯卡金像奖共 24 奖项中,在颁奖典礼前针对入围者给出一个得奖的机率,最后成功预测了 21 个!

3. 苏格兰是否要脱离英国的独立公投,是 2014 年属一属二的国际新闻,在投票前预测结果。

註:本文介绍的演算法分类中,前两类 (Classification & Regression) 都是属于「监督式学习」(Supervised Learning);Clustering 则是属于「非监督式学习」(Unsupervised Learning) 的範畴。

再註:Azure ML 基本上是根据学习的方法 (如监督式学习/非监督式学习),以及可被应用的方式来作分类。故各位可以注意到,如决策树 (Decision Tree) 或类神经网路 (Neural Network) 等,可分别被应用到 Classification 或是 Regression 的类别中,以解决不同类型的问题。





收藏 推荐 打印 | 录入:Cstor | 阅读:
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款