有监督学习、无监督学习以及半监督学习详解

有监督学习、无监督学习以及半监督学习详解相信大家在开始学习机器学习的入门时,首先接触的概念就是监督学习、无监督学习以及半监督学习。在我们开始讲解之前,我们先回顾一下什么是机器学习(ML)?百度百科给出的定义是,机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为工具并致力于真实实时的模拟人类学习方式,并将现有内容进行知识结构划分来有效提高学习效率。从定义中,我们可以发现:(1)机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法…

大家好,又见面了,我是你们的朋友全栈君。

      相信大家在开始学习机器学习的入门时,首先接触的概念就是监督学习、无监督学习以及半监督学习。在我们开始讲解之前,我们先回顾一下什么是机器学习(ML)?

百度百科给出的定义是,机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为工具并致力于真实实时的模拟人类学习方式, 并将现有内容进行知识结构划分来有效提高学习效率。

从定义中,我们可以发现:

(1) 机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。

(2) 机器学习是对能通过经验自动改进的计算机算法的研究。

(3) 机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。

 

重温了机器学习的基础概念之后,我们正式进入我们的正文部分。

 

监督学习

 

监督学习是从标记的训练数据来推断一个功能的机器学习任务。利用一组已知类别的样本调整分类器参数,使其达到所要求性能的 过程,也称为监督训练或有教师学习。

根据已有的数据集,知道输入和输出结果之间的关系。根据这种已知的关系,训练得到一个最优的模型。也就是说,在监督学习中训练数据既有特征(feature)又有标签(label),通过训练,让机器可以自己找到特征和标签之间的联系,在面对只有特征没有标签的数据时,可以判断出标签。

 

监督学习有一种应用场景:回归和分类。

回归(Regression)

回归问题是针对于连续型变量的。

 

举个栗子:预测房屋价格

假设想要预测房屋价格,绘制了下面这样的数据集。水平轴上,不同房屋的尺寸是平方英尺,在竖直轴上,是不同房子的价格,单位时(千万$)。给定数据,假设一个人有一栋房子,750平方英尺,他要卖掉这栋房子,想知道能卖多少钱。

这个时候,监督学习中的回归算法就能派上用场了,我们可以根据数据集来画直线或者二阶函数等来拟合数据。

有监督学习、无监督学习以及半监督学习详解

 通过图像,我们可以看出直线拟合出来的150k,曲线拟合出来是200k,所以要不断训练学习,找到最合适的模型得到拟合数据(房价)。

回归通俗一点就是,对已经存在的点(训练数据)进行分析,拟合出适当的函数模型y=f(x),这里y就是数据的标签,而对于一个新的自变量x,通过这个函数模型得到标签y。 

分类(Classification)  

和回归最大的区别在于,分类是针对离散型的,输出的结果是有限的。

举个栗子:估计肿瘤性质

假设某人发现了一个乳腺瘤,在乳腺上有个z肿块,恶性瘤是危险的、有害的;良性瘤是无害的。

假设在数据集中,水平轴是瘤的尺寸,竖直轴是1或0,也可以是Y或N。在已知肿瘤样例中,恶性的标为1,良性的标为0。那么,如下,蓝色的样例便是良性的,红色的是恶性的。

有监督学习、无监督学习以及半监督学习详解

 这个时候,机器学习的任务就是估计该肿瘤的性质,是恶性的还是良性的。

那么分类就派上了用场,在这个例子中就是向模型输入人的各种数据的训练样本(这里是肿瘤的尺寸,当然现实生活里会用更多的数据,如年龄等),产生“输入一个人的数据,判断是否患有癌症”的结果,结果必定是离散的,只有“是”或“否”。

所以简单来说分类就是,要通过分析输入的特征向量,对于一个新的向量得到其标签。

 

无监督学习

定义:我们不知道数据集中数据、特征之间的关系,而是要根据聚类或一定的模型得到数据之间的关系。

可以这么说,比起监督学习,无监督学习更像是自学,让机器学会自己做事情,是没有标签(label)的。

接刚刚上面机器学习解释时用到的例子来更好理解一下二者的区别:

对于平时的考试来说,监督学习相当于我们做了很多题目都知道它的标准答案,所以在学习的过程中,我们可以通过对照答案,来分析问题找出方法,下一次在面对没有答案的问题时,往往也可以正确地解决。 而无监督学习,是我们不知道任何的答案,也不知道自己做得对不对,但是做题的过程中,就算不知道答案,我们还是可以大致的将语文,数学,英语这些题目分开,因为这些问题内在还是具有一定的联系。 

如下图所示,在无监督学习中,我们只是给定了一组数据,我们的目标是发现这组数据中的特殊结构。例如我们使用无监督学习算法会将这组数据分成两个不同的簇,,这样的算法就叫聚类算法。

有监督学习、无监督学习以及半监督学习详解

 

生活中的应用:

1.Google新闻按照内容结构的不同分成财经,娱乐,体育等不同的标签,这就是无监督学习中的聚类。

2.根据给定基因把人群分类。如图是DNA数据,对于一组不同的人我们测量他们DNA中对于一个特定基因的表达程度。然后根据测量结果可以用聚类算法将他们分成不同的类型。这就是一种无监督学习, 因为我们只是给定了一些数据,而并不知道哪些是第一种类型的人,哪些是第二种类型的人等等。

有监督学习、无监督学习以及半监督学习详解

 

半监督学习

半监督学习(Semi-Supervised Learning,SSL)是模式识别和机器学习领域研究的重点问题,是监督学习无监督学习相结合的一种学习方法。半监督学习使用大量的未标记数据,以及同时使用标记数据,来进行模式识别工作。当使用半监督学习时,将会要求尽量少的人员来从事工作,同时,又能够带来比较高的准确性,因此,半监督学习正越来越受到人们的重视。

至于实例的话,大家可以去自己探讨一下。

 

本文参考:

链接:https://www.jianshu.com/p/682c88cee5a8
链接:https://baike.baidu.com/item/监督学习/9820109?fr=aladdin

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140166.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ttyLinux安装完整指南「建议收藏」

    ttyLinux安装完整指南「建议收藏」本文地址:http://blog.csdn.net/useway《Java程序员,上班那点事儿》ttyLinux号称是最小的Linux系统,这两天找到了一个很好用虚拟机VirtualBox,这个虚拟机是SUN开发的一个免费开源的虚拟机,原来一直用vmware,不过发现SUN的这个免费的虚拟机更好用,主要是比较轻量级的,感觉挺好。正好想试试ttyLinux到底有多小,就用这个虚拟机试试…

    2022年8月12日
    5
  • JsonArray转换List

    JsonArray转换List将List转换为JsonArray:AppResponse<List<ProjectVo>>allProject=projectServiceFeign.findAllProject();//转jsonStringtoJSONString=JSON.toJSONString(allProject.getData());//保存到redis中,设置失效时间redisTemplate.opsForValue().set(“projectStr”,toJSONStr

    2022年6月23日
    31
  • java实现excel表格导入数据库表「建议收藏」

    java实现excel表格导入数据库表「建议收藏」导入excel就是一个上传excel文件,然后获取excel文件数据,然后处理数据并插入到数据库的过程一、上传excel前端jsp页面,我的是index.jsp在页面中我自己加入了一个下载上传文件的功能,其中超链接就是下载&lt;%@pagelanguage="java"contentType="text/html;charset=utf-8"pageEnc…

    2022年6月28日
    55
  • Ubuntu 18.04 firefox浏览器装flash[通俗易懂]

    Ubuntu 18.04 firefox浏览器装flash[通俗易懂]进入http://get.adobe.com/cn/flashplayer/即flash官网(注意下载和系统浏览器相对应的包)在左边选择.tar.gz格式的文件然后解压  tar-zxvfinstall_flash_player_11_linux.x86_64.tar.gz进入解压后的usr文件夹,把libflashplayer.so文件放到路径/usr/lib/mozilla/…

    2022年6月8日
    34
  • vue子组件调用父组件方法_父组件获取子组件数据

    vue子组件调用父组件方法_父组件获取子组件数据Vue子组件调用父组件的方法-靳哲-博客园Vue中子组件调用父组件的方法https://www.cnblogs.com/jin-zhe/p/9523782.html

    2022年9月25日
    1
  • 本以为java语言很难学,其实就学完下面这些知识,就能理解了

    本以为java语言很难学,其实就学完下面这些知识,就能理解了刚毕业,找工作,很多人都面临相同的问题。自己能做什么?什么工作既舒服,福利又好(不存在的,除非银行你家开的)。然后社会是个发展的社会,现代人的生活越来越智能,生活中其实充满“技术”!!!所以,在各个岗位中,其实编程类的岗位工资是平均水平最高的。可以加你Java资料分享群java《学习》+交流523401738作为5大编程语言的JAVA是当今最受各大公司的青睐,很多项目,很多工程都需要用到java…

    2022年7月8日
    17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号