快速复习

在前一篇文章中,“机器学习第2周:项目方法学,”我写了关于算法学习分类。你会发现一些关于CRISP-DM方法的个人见解。

算法学习分类

当开始了KXEN的旅行时,并没有一个在数据挖掘或数据科学领域的谱系说明。我有技术支持和程序员的背景,因此,我理解了“算法”这个词在编程方面的含义,并且发现对于数据科学来说,也没有什么区别。

当还在学校的时候,我们就解决了代数问题,例如“找到通过两点(1,1)和(1, 2)之间直线的方程”或“找到函数f(x)=x4-8×2+5的最大值和最小值。

有很多算法可以帮助你去解决单一类型的问题,在机器学习项目中通常是由数据挖掘目标进行表示的。

所以,我们需要一种方法来组织算法的工具包。在这里,我将使用一种叫做“学习分类”的概念。

使用“学习分类”帮助你思考如何进行准备并使用你的数据来建立模型。最后,你会尝试选择最合适的算法来测试。

让我们来看看机器学习算法和相关的子类别的主要学习分类。

监督学习

使用监督学习,你将用一组标记过的数据来推导一个函数,其中结果(目标)是已知的。这个数据集也被称为训练数据集。

训练数据集可以被表示为由一个特征向量输入(或变量、维度)和相关联的输出值组成的数据对。

因此,监督学习算法的目标是分析训练数据,并产生一个函数,该函数可以对新的特征向量输入进行评分,并得到预测输出值。

这将要求算法从训练数据中对模式进行泛化(在推断函数中),以便以“合理”、正确的方式确定对任何新的和看不见的特征向量输入的输出值。

目前有大量的监督学习算法,它们各有各的的长处和短处。这意味着没有一个“全能”算法可以解决所有监督学习的问题。

你可以进一步对监督学习算法进行分组:

分类

这种方式适用于当目标被表示为一类的时候,如“真”和“假”或“A”和“B”的二元分类,或“A”,“B”,和“C”的一个多类别分类。

下图表描述了一个简单的分类示例,其中每个图标基于其输入值(x1和x2轴)进行定位,并基于输出值标记颜色。推断函数是绿线(这里是线性函数),每个问号是推断函数将被分配给一侧或另一个的新输入。

回归

这种方式适用于目标被表示为一个连续的数字的时候,比如财政收入、重量或温度时。

下图描述了一个简单的回归示例,其中每个标记基于其输入值(x轴)和输出值(y轴)来定位。推断函数是绿线,它可以为任何“X”输入值获得“Y”输出值。

时间序列预测

适用于当训练数据集表示一个信号或一系列的值时,在这里,你需要使用以前的数据来推断下一个N值。

有些人可能认为时间序列预测是一种回归,除了时间序列的推断函数将产生一系列的值,而不是在回归中的一个值。

另外,时间序列的数据集结构需要具有唯一值的“排序”列(通常是日期,但在某些情况下也可能是个增量列)

下面的例子显示了固定区间中的一系列点:标记为蓝色的点。时间序列算法推断函数(绿线)表示余弦函数,该余弦函数可用于预测后续5个值(红色的点)

综上所述,分类和回归的最大区别是目标变量(输出)的表达方式,其中一个是离散的(类别),而另一个是连续的。

无监督学习

与监督学习相反,使用无监督学习,你将使用一组未标记的数据(没有定义的结果)来推导出一个函数。

因此,推导函数是用来描述在数据中隐藏的底层结构和模式或分布。与监督学习不同,没有真正的方法来评估所找到的结构和模式的准确性或相关性。

你可以进一步对无监督学习算法进行分组:

聚类

这种类型的算法的适用情况是,当需要对比综合分布,而根据实体属性的“相似性”或“差别距离”来定义实体组(a.k.a.集群)时。每个聚类算法都有自己的分组策略,其基于距离中心的距离、组密度、组分布等,就像一些允许或防止重叠,或存在剩余项一样。

在下面的示例中,这个算法用到中心的距离定义了5个聚类。

关联规则

当使用事务性数据集将项目互相链接或将用户和项目链接时,可以应用这种类型的算法,而你的目标是提取有关关联的规则。一个常见的规则例子可以是当你购买Y时又买X。当然,规则可以在涉及多个项目或执行某个确定的序列的时间更长。

在下面的示例中,从一系列用户购物的交易中提取一组规则

其它的学习分类

半监督学习

在半监督学习中,只有一部分输入数据被标记了,这意味着算法必须通过结构学习来组织数据以及进行预测。

标记所有数据可能会变得费时费力,或者更糟的是,它们可能被错误地标记。

如果以一个图像库为例,只有一小部分图像将被标记。

因此,无监督学习和监督学习技术都被用来最好的利用未标记数据,将其与标记数据进行聚类或做出最佳的预测,并使用所有这些来构建模型。

增强学习

通过强化学习,该算法试图找到“最佳的方式”(一系列决策或行为)以获取最大的“回报”。

很典型的,在每一个步骤中,在导致一个回报和一个状态的环境中来做出决定。通过多次执行,该算法能够学习如何提高其决策能力和获得更大回报的能力。

参考

为了写这篇文章,我参考了一些有启发的、描述详细的和有想法的来源。

1.面向数据科学的机器学习101

2.Ronald van Loon解释机器学习

3.维基百科:

(1)增强学习

(2)半监督学习

(3)监督学习

(4)无监督学习

总结

希望这篇文章有助于清除机器学习中的一些术语,并帮助读者们理解这些算法,你可以使用自己的训练数据(标记或未标记的)创建最好的“函数”,然后就可以应用到新的数据集上了。

更新:下面的是每周在盒子博客上发表的所有的机器学习文章的链接:

·介绍机器学习项目

·机器学习第2周:项目方法论

·回顾机器学习第2周: 项目方法论

·机器学习第3周: 算法学习分类

·机器学习第4周: 让你的环境运转起来

·机器学习第5周: 下载机器学习的数据集

·机器学习第6周: SAP、HANA和R 整合

·机器学习第7周: Jupyter笔记

数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

本文作者:【方向】
阅读原文
本文为云栖社区原创内容,未经允许不得转载。

机器学习第3周:算法学习相关推荐

  1. python机器学习(一)算法学习的步骤、机器学习的应用及流程(获取数据、特征工程、模型、模型评估)

    机器学习入门 机器学习中需要理论性的知识,如数学知识为微积分(求导过程,线性回归的梯度下降法),线性代数(多元线性回归,高纬度的数据,矩阵等),概率论(贝叶斯算法),统计学(贯穿整个学习过程),算法根 ...

  2. 机器学习之K-近邻算法学习笔记

    K-近邻算法 1.k-近邻法简介 k近邻法(k-nearest neighbor, k-NN)是1967年由Cover T和Hart P提出的一种基本分类与回归方法. 它的工作原理是:存在一个样本数据 ...

  3. 机器学习之KNN邻近算法学习

    前言 KNN和K-means是不同的哦,小伙伴们不要搞混! KMeans算法是一种无监督的聚类方法,其工作流程如下: (1)在一群无标签的数据中,随机选择k个数据作为簇中心(k是人为选择的) (2)依 ...

  4. 深度学习笔记第三门课 结构化机器学习项目 第二周 机器学习(ML)策略(2)...

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  5. 【深度学习】吴恩达深度学习-Course3结构化机器学习项目-第一周机器学习(ML)策略(1)作业

    题目仅含中文!! 视频链接:[中英字幕]吴恩达深度学习课程第三课 - 结构化机器学习项目 参考链接: [中英][吴恩达课后测验]Course 3 - 结构化机器学习项目 - 第一周测验 吴恩达< ...

  6. 小白机器学习基础算法学习必经之路

    https://www.toutiao.com/a6657427848900379150/ 2019-02-14 15:21:13 未来,人工智能是生产力,是变革社会的主要技术力量之一. 掌握人工智能 ...

  7. 逻辑回归二分类算法python_机器学习第七周--二分类算法逻辑回归

    一.Logistic分类算法 逻辑回归(Logistic Regression, LR)是传统机器学习中的一种分类模型,由于算法的简单和高效,解释性好以及容易扩展等优点,被广泛应用于点击率预估(CTR ...

  8. 机器学习(八)Apriori算法学习

    Apriori算法学习 原文地址:http://blog.csdn.net/hjimce/article/details/45438507 作者:hjimce 本文主要是我学习<机器学习实战&g ...

  9. 机器学习knn算法学习笔记使用sklearn库 ,莺尾花实例

    ** 机器学习knn算法学习笔记使用sklearn库 ,莺尾花实例. 具体knn算法是怎样的我这里就不再详细论述.在这里我注意总结我使用knn算法进行一个分类的分析 ** 分析过程 1.前期准备 引入 ...

  10. AI 自动研发机器学习系统,DeepMind 让算法学习强化学习

    人工智能研发的一个大方向是用AI系统来自动化开发AI系统.虽然这一目标尚未实现,但目前的进展让已足够令人人震惊.本文介绍了最新的一些进展,包括伯克利让算法自我优化.MIT自动生成神经网络架构,以及在这 ...

最新文章

  1. 宜阳一高中历年录取分数线_上海高中TOP30!从录取分数线看上海高中排名!
  2. PHP使用单例模式进行连接DB:public的方法进行调用连接函数即可
  3. js之数据类型及类型转换
  4. Linux什么时候在pc机上有一席之地
  5. C语言编程 简单展开扫雷游戏
  6. java ape切割_无损分解和保持依赖的判断
  7. 如何使用内网穿透,将自己的内网接口暴露到外网
  8. wamp5如何配置多个自定义域名访问本地不同的项目
  9. 微信支付 H5端 和小程序端 统一下单接口 4个JAVA源码文件代码
  10. cacti graphs new.php,Cacti /graphs_new.php SQL Injection Vulnerability
  11. kafka的auto.offset.reset设置earliest和latest区别
  12. 开启子进程的两种方法
  13. [kubernetes]-weave scope初体验
  14. linux下删除u盘分区工具,如何删除U盘中的CDFS分区-
  15. Android技术分享| 【Android 自定义View】多人视频通话控件
  16. Jackson Western印迹检测分析物丨比色免疫印迹
  17. UDS刷写上位机全套CAPL脚本,有简单panel界面
  18. 高频功率放大器损耗电阻怎么计算
  19. day46--快速排序
  20. python中if语句求最大值_如何用if语句向量化numpy数组中的最大值?

热门文章

  1. 深入理解HTTP协议(转)
  2. 机器学习基础:K近邻算法(Machine Learning Fundamentals: KNN)
  3. matlab中text 函数在显示字符串时的使用方法
  4. 支持向量机SVM分析
  5. HDU5667 - Sequence 矩阵快速幂 + 费马小定理
  6. 2-36进制,可以任意进制互转的类
  7. Go slice切片的“陷阱”和本质
  8. Z-score标准化[转载]
  9. 如何用Python做舆情时间序列可视化?
  10. SVN创建项目以及检出项目