监督学习和无监督学习_一篇文章区分监督学习、无监督学习和强化学习
经过之前的一些积累,终于有勇气开始进军机器学习了!说实话,机器学习 这个概念是我入行的最纯粹的原因,包括大学选专业、学习 Python 语言…这些有时间仔细梳理下经历再写,总之这个系列的文章就是我自学 机器学习 的笔记,各位看看就好,希望能为一些想入门但无从下手的小伙伴,提供一些帮助。另外我会采用通俗易懂的方式描述一些概念上的东西,我本人小白一枚,如果在这系列的文章中有什么错误,欢迎各路大神指正!在此谢过。
机器学习
所谓机器学习,就是让机器(特指计算机)具有像人类一样学习能力的技术,从海量数据(大数据)中寻找有价值的信息。所以我认为,机器学习的本质是数据挖掘技术。
比如 淘宝通过你的购买记录向你推荐可能感兴趣的商品;头条通过你的浏览记录向你推荐可能感兴趣的文章或视频……
机器学习的种类
根据数据训练方式的不同,机器学习分为 监督学习、无监督学习和强化学习 3 种学习类型,本文的目的就是用最朴素的语言描述三者之间的区别,以明确概念。
监督学习
监督学习是一个 举一反三 的过程,先由已标注正确的 训练集 进行训练,训练完成之后的“经验”称为模型,然后将未知的数据传入模型,机器即可通过“经验”推测出正确结果。
这么讲有些抽象,举个例子:
1.老师:1 个苹果 + 1 个苹果 = 2 个苹果
2.学生:1 个苹果 + 1 个苹果 = 2 个苹果
3.老师:1 个香蕉 + 1 个香蕉 = 2 个香蕉
4.学生:1 个香蕉 + 1 个香蕉 = 2 个香蕉
5.老师:1 个西瓜 + 1 个西瓜 = ?
6.学生:1 个西瓜 + 1 个西瓜 = 2 个西瓜
上边的例子中,学生通过总结第 1 步和第 3 步中,老师所传授的“苹果和香蕉”的经验,总结出了 “1 + 1 = 2”,所以,在第 5 步,老师没有给定答案的情况下,学生根据总结出的 “1 + 1 = 2”的经验,给出了 “1 个西瓜 + 1 个西瓜 = 2 个西瓜”推测。
此时,学生对应的是 机器,老师传授的“苹果和香蕉”的经验对应的是 训练集,学生总结出的 “1 + 1 = 2” 对应的是 模型 ,“1 个西瓜 + 1 个西瓜 = ?” 对应的是 未知数据 ,学生给出的 “1 个西瓜 + 1 个西瓜 = 2 个西瓜” 对应的是 正确结果。
通过上边的这个例子,我们就能了解了 监督学习的概念,监督学习有两个任务:回归和分类。
分类
分类 的概念很容易理解,通过 训练集 给出的分类样本,通过训练总结出样本中各分类的特征模型,再将位置数据传入特征模型,实现对未知数据的分类。
举个例子:
训练集:水果===>可生吃,酸酸甜甜的蔬菜===>不可生吃,涩涩的
未知数据:西瓜:可生吃,甜的
分类结果:西瓜===>水果
未知数据:白菜:不可生吃,涩涩的
分类结果:白菜===>蔬菜
由此我们明白了 分类 的概念。
回归
回归 可以理解为 逆向的分类 ,通过特定算法对大量的数据进行分析,总结出其中的个体具有代表性的特征,形成类别。
举个例子:
训练集:苹果:可生吃,甜的桔子:可生吃,酸的白菜:不可生吃,涩的茄子:不可生吃,涩的
回归结果:苹果、桔子:可生吃,酸酸甜甜的===>水果白菜、茄子:不可生吃,涩涩的===>蔬菜
由此我们明白了 回归 的概念,通过回归结果,我们可以对一个未知的东西进行分类。
Ps:上边的例子旨在简单举例说明分类和回归的概念,别跟我杠西红柿黄瓜这类东西是水果还是蔬菜。
无监督学习
无监督学习 本质上是一种统计手段(也可以理解为一种分类手段),它没有明确目的的训练方式,你无法提前知道结果是什么,因此无须打标签。它的原理类似于 监督学习中的回归 ,但在回归结果中没有打标签。
举个例子:
训练集:苹果:可生吃,甜的桔子:可生吃,酸的白菜:不可生吃,涩的茄子:不可生吃,涩的
无监督学习结果:苹果、桔子:可生吃,酸酸甜甜的白菜、茄子:不可生吃,涩涩的
上述例子中我们可以看到,无监督学习只是根据训练集中训练数据特点的不同,将其分成了两个类,但每个类代表什么意思,不知道。因此我将无监督学习理解为一种 漫无目的的分类手段,首先分成几类不确定,每个分类的标签页不确定。基于无监督学习的这个特性,它常用的两个 分类算法 (或者说分类手段)是 降维和聚类。
降维
这里的 降维 和《三体》中的 “降维打击” 并非同一个概念,这里的降维,我的理解实质上是一种 去重过程。
比如说苹果和茄子都有 “圆的” 这个特征,香蕉和黄瓜都有 “长的” 这个特征,但这两个特征是 “水果” 和 “蔬菜” 两个分类中都包含的,可以认为是 “无用特征” 所以在分类过程中将其直接去除,一是影响分类结果,二是减少计算机的运行冗余。
聚类
简单来说,聚类 是一种自动化分类的方法,在监督学习中,你很清楚每一个分类是什么,但是聚类则不是,你并不清楚聚类后的几个分类每个代表什么意思。
就像上边例子中表述的无监督学习结果中,总结出了苹果、桔子都是可生吃、酸酸甜甜的,白菜、茄子都不可生吃、涩涩的,但机器只是将其分成了两类,具体这两类表示的什么东西,它是不知道的。
因此,无监督学习其实就是一个 没有感情的分类机器,需要人为对每个分类结果进行分析。
强化学习
强化学习 指的是计算机对没有学习过的问题做出正确解答的泛化能力,可以理解为 强化学习 = 监督学习 + 无监督学习。和监督学习一样,它也是需要人工介入的。
具体的流程可以用下边的例子理解一下:
训练集:可生吃,酸酸甜甜的===>水果不可生吃,涩涩的===>蔬菜
未知数据:苹果:可生吃,甜的桔子:可生吃,酸的白菜:不可生吃,涩的茄子:不可生吃,涩的猪蹄:来自动物,炖着吃贼香
分类结果:苹果、桔子===>水果白菜、茄子===>蔬菜猪蹄===>???
人工标注:来自动物,炖着吃贼香===>肉类
分类结果:苹果、桔子===>水果白菜、茄子===>蔬菜猪蹄===>肉类
上边例子的训练集中已经标注了水果和蔬菜的特征,当未知数据符合训练集中标注的特征(苹果、桔子、白菜、茄子)时,机器进行了正确的分类;当未知数据不符合训练集中标注的特征(猪蹄)时,机器无法判定这个数据的特征属于哪个类别,此时人工介入进行标注后,机器才能对这个未知数据(猪蹄)进行分类。
倘若人工不介入,又输入了大量未标注特征的数据时,这场 强化学习 则又变成了 无监督学习。
Ps:如此举例只是简单的个人理解,若有错误之处欢迎各路大神指正。
总结
无论是监督学习、无监督学习还是强化学习,都不是一种特定的算法,是一种思想,在遇到的具体问题中选择合适的学习方法有助于提高工作效率。欢迎在下方评论区交流,下篇文章再见。
监督学习和无监督学习_一篇文章区分监督学习、无监督学习和强化学习相关推荐
- 了解mysql文章_一篇文章带你深入了解MySQL 索引相关
基础知识 一张数据表中具有百万级的数据时,如何精确且快速的拿出其中某一条或多条记录成为了人们思考的问题. InnoDB 存储引擎的出现让这个问题得到了很好的解决, InnoDB 存储引擎是以索引来进行 ...
- java ee 值范围_一篇文章带你读懂: Java EE
原标题:一篇文章带你读懂: Java EE 点击上图,查看教学大纲 何为 Java EE Java EE是一个标准中间件体系结构 不要被名称"Java PlatformEnterprise ...
- python 的库如何开发_一篇文章入门Python生态系统
译者按:原文写于2011年末,虽然文中关于Python 3的一些说法可以说已经不成立了,但是作为一篇面向从其他语言转型到Python的程序员来说,本文对Python的生态系统还是做了较为全面的介绍.文 ...
- java 不重启部署_一篇文章带你搞定SpringBoot不重启项目实现修改静态资源
一.通过配置文件控制静态资源的热部署 在配置文件 application.properties 中添加: #表示从这个默认不触发重启的目录中除去static目录 spring.devtools.res ...
- c++ 计算正弦的近似值_一篇文章搞懂正弦保真性
本文介绍数字信号处理中"正弦保真性"这一概念,想要更好地理解本文所述内容,建议读者先阅读<一篇文章搞懂卷积>. 正弦保真性定义 一个正弦信号作为线性时不变系统的输入时, ...
- python网络爬虫_一篇文章教会你利用Python网络爬虫获取穷游攻略
点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 穷游网提供原创实用的出境游旅行指南.攻略,旅行社区和问答交流平台, ...
- c++ socket线程池原理_一篇文章看懂 ThreadLocal 原理,内存泄露,缺点以及线程池复用的值传递问题...
编辑:业余草来源:https://www.xttblog.com/?p=4946 一篇文章看懂 ThreadLocal 原理,内存泄露,缺点以及线程池复用的值传递问题. ThreadLocal 相信不 ...
- list vue 添加数据方法_一篇文章教会你创建vue项目和使用vue.js实现数据增删改查...
简介:一篇文章教会你创建vue项目和使用vue.js实现数据增删改查 [一.项目背景] 在管理员的一些后台页面里,数据列表中都会对这些数据进行增删改查的操作,例如管理员添加商品.修改商品价格.删除商品 ...
- java常见的gc回收器_一篇文章让你了解GC垃圾回收器
简单了解GC垃圾回收器 了解GC之前我们首先要了解GC是要做什么的?顾名思义回收垃圾,什么是垃圾呢? GC回收的垃圾主要指的是回收堆内存中的垃圾对象. 从根对象出发,所有被引用的对象,都是存活对象 其 ...
最新文章
- 用深度神经网络搭建马赛克神器,高清无码效果感人
- 西班牙放大招,利用区块链技术防腐
- 百度地图3.0实现图文并茂的覆盖物
- TensorFlow alexnet在华为Mate10上运行方法
- DB2: 为DB2数据库创建新用户帐户并为其分配特定特权
- c#中程序以管理员身份运行的三种办法
- 零基础学习 Python 之文件
- 每隔10秒钟打印一个“Helloworld”
- 华硕z170a如何开启m2_「科技犬」新品游戏本、翻转屏评测汇总:华硕微星荣耀戴尔,选谁...
- 从不同步的代码块中调用了对象同步方法。_Java中Synchronized的用法
- matlab调用kmeans_Matlab中Kmeans函数的使用
- It's not a Bug, it's a Feature! UVA - 658 (最短路)
- 运维工作的OKR愿景、战略和目标设计示例
- 两张图片怎样合成一张左右拼图?
- python里的点_Python里面这些点,据说80%的新手都会一脸懵逼
- Home Assistant 接入 Lifesmart(云起智能)家居的途径。
- super()函数的使用
- pip命令下载第三方依赖的彩色进度条的具体实现
- 解压命令tar zxvf中zxvf的意思
- 吉首大学第九届"新星杯"大学生程序设计大赛(重现赛)(回顾补题)
热门文章
- 在线重定义生产环境大表分区的惨烈踩雷记录
- 一文带你 GNN 从入门到起飞,做一个饭盆最稳 GNN 饭人!
- 云原生数据库风起云涌,华为云GaussDB破浪前行
- 数据库实践丨MySQL多表join分析
- 前端常用60余种工具方法(上)
- 【6.19日云享专家技术公开课】从零开始快速搞定扫码付款
- Kotlin学习笔记25 协程part5 协程的同步与异步
- 检验例题_高一化学微课之81氨气的制备和铵根离子的检验
- 关于Training deep neural networks for binary communication with the Whetstone method的代码实现
- idea代码补全_不想得手指关节炎?帮你提炼IDEA常用代码补全操作