机器学习第3周:算法学习
快速复习
在前一篇文章中,“机器学习第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周:算法学习相关推荐
- python机器学习(一)算法学习的步骤、机器学习的应用及流程(获取数据、特征工程、模型、模型评估)
机器学习入门 机器学习中需要理论性的知识,如数学知识为微积分(求导过程,线性回归的梯度下降法),线性代数(多元线性回归,高纬度的数据,矩阵等),概率论(贝叶斯算法),统计学(贯穿整个学习过程),算法根 ...
- 机器学习之K-近邻算法学习笔记
K-近邻算法 1.k-近邻法简介 k近邻法(k-nearest neighbor, k-NN)是1967年由Cover T和Hart P提出的一种基本分类与回归方法. 它的工作原理是:存在一个样本数据 ...
- 机器学习之KNN邻近算法学习
前言 KNN和K-means是不同的哦,小伙伴们不要搞混! KMeans算法是一种无监督的聚类方法,其工作流程如下: (1)在一群无标签的数据中,随机选择k个数据作为簇中心(k是人为选择的) (2)依 ...
- 深度学习笔记第三门课 结构化机器学习项目 第二周 机器学习(ML)策略(2)...
本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...
- 【深度学习】吴恩达深度学习-Course3结构化机器学习项目-第一周机器学习(ML)策略(1)作业
题目仅含中文!! 视频链接:[中英字幕]吴恩达深度学习课程第三课 - 结构化机器学习项目 参考链接: [中英][吴恩达课后测验]Course 3 - 结构化机器学习项目 - 第一周测验 吴恩达< ...
- 小白机器学习基础算法学习必经之路
https://www.toutiao.com/a6657427848900379150/ 2019-02-14 15:21:13 未来,人工智能是生产力,是变革社会的主要技术力量之一. 掌握人工智能 ...
- 逻辑回归二分类算法python_机器学习第七周--二分类算法逻辑回归
一.Logistic分类算法 逻辑回归(Logistic Regression, LR)是传统机器学习中的一种分类模型,由于算法的简单和高效,解释性好以及容易扩展等优点,被广泛应用于点击率预估(CTR ...
- 机器学习(八)Apriori算法学习
Apriori算法学习 原文地址:http://blog.csdn.net/hjimce/article/details/45438507 作者:hjimce 本文主要是我学习<机器学习实战&g ...
- 机器学习knn算法学习笔记使用sklearn库 ,莺尾花实例
** 机器学习knn算法学习笔记使用sklearn库 ,莺尾花实例. 具体knn算法是怎样的我这里就不再详细论述.在这里我注意总结我使用knn算法进行一个分类的分析 ** 分析过程 1.前期准备 引入 ...
- AI 自动研发机器学习系统,DeepMind 让算法学习强化学习
人工智能研发的一个大方向是用AI系统来自动化开发AI系统.虽然这一目标尚未实现,但目前的进展让已足够令人人震惊.本文介绍了最新的一些进展,包括伯克利让算法自我优化.MIT自动生成神经网络架构,以及在这 ...
最新文章
- 宜阳一高中历年录取分数线_上海高中TOP30!从录取分数线看上海高中排名!
- PHP使用单例模式进行连接DB:public的方法进行调用连接函数即可
- js之数据类型及类型转换
- Linux什么时候在pc机上有一席之地
- C语言编程 简单展开扫雷游戏
- java ape切割_无损分解和保持依赖的判断
- 如何使用内网穿透,将自己的内网接口暴露到外网
- wamp5如何配置多个自定义域名访问本地不同的项目
- 微信支付 H5端 和小程序端 统一下单接口 4个JAVA源码文件代码
- cacti graphs new.php,Cacti /graphs_new.php SQL Injection Vulnerability
- kafka的auto.offset.reset设置earliest和latest区别
- 开启子进程的两种方法
- [kubernetes]-weave scope初体验
- linux下删除u盘分区工具,如何删除U盘中的CDFS分区-
- Android技术分享| 【Android 自定义View】多人视频通话控件
- Jackson Western印迹检测分析物丨比色免疫印迹
- UDS刷写上位机全套CAPL脚本,有简单panel界面
- 高频功率放大器损耗电阻怎么计算
- day46--快速排序
- python中if语句求最大值_如何用if语句向量化numpy数组中的最大值?