【机器学习笔记】有监督学习和无监督学习

【机器学习笔记】有监督学习和无监督学习有监督学习和无监督学习(一)有监督学习(二)无监督学习(三)二者的区别(四)如何在两者中选择合适的方法(一)有监督学习概念:通过已有的训练样本去训练得到一个最优模型,再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现预测和分类的目的,也就具有了对未知数据进行预测和分类的能力。简单来说,就像有标准答案的练习题,然后再去考试,相比没有答案的练习题然后去考试准确率更高。监督学…

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

(一)什么是机器学习?

概念:
从广义上来说,机器学习是一种能够赋予机器学习的能力以此让它完成直接编程无法完成的功能的方法。但从实践的意义上来说, 机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法。

机器学习的应用范围:
机器学习与模式识别、统计学习、数据挖掘、计算机视觉、语音识别、自然语言处理等领域有着非常深的联系。

  • 模式识别 = 机器学习
    两者的主要差别在于前者是从工业界发展起来的概念,后者则主要源自计算机学科。它们中的活动能够被视为同一个领域的两个方面
  • 数据挖掘 = 机器学习 + 数据库
    数据挖掘是一种思考方式,告诉我们应该尝试从数据中挖掘出知识,但不是每一个数据都能挖掘出金子的。一个系统绝对不会由于上了一个数据挖掘模块就变得无所不能。大部分数据挖掘中的算法是机器学习的算法在数据库中的优化。
  • 统计学习近似等于机器学习
    统计学习是个与机器学习高度重叠的学科,由于机器学习中的大多数方法来自统计学,甚至能够觉得,统计学的发展促进机器学习的发展。
  • 计算机视觉 = 图像处理 + 机器学习
    图像处理技术用于将图像处理为适合进入机器学习模型中的输入,机器学习则负责 从图像中识别出相关的模式。计算机视觉相关的应用非常的多,比如百度识图、手写字符识别、车牌识别等等应用。
  • 语音识别 = 语音处理 + 机器学习
    语音识别就是音频处理技术与机器学习的结合。语音识别技术一般不会单独使用,通常会结合自然语言处理的相关技术,有关的应用有苹果的语音助手siri等。
  • 自然语言处理 = 文本处理 + 机器学习
    自然语言处理技术主要是让机器理解人类的语言的一门领域。

通俗来讲,机器学习就是:
三个基本的要素,任务T、经验E和性能P。机器学习=通过经验E的改进后,机器在任务T上的性能p所度量的性能有所改进=T–>(从E中学习)–>P(提高)

(二)有监督学习

概念:
通过已有的训练样本去训练得到一个最优模型,再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现预测分类的目的,也就具有了对未知数据进行预测和分类的能力。简单来说,就像有标准答案的练习题,然后再去考试,相比没有答案的练习题然后去考试准确率更高。监督学习中的数据中是提前做好了分类信息的, 它的训练样本中是同时包含有特征和标签信息的,因此根据这些来得到相应的输出。

有监督算法常见的有:线性回归算法BP神经网络算法决策树支持向量机KNN等。

数学说明:
监督学习从训练数据集合中训练模型,再对测试据进行预测,训练数据由输入和输出对组成,通常表示为: T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x i , y i ) } T=\left \{ \left ( x_{1},y_{1} \right ),\left ( x_{2},y_{2} \right ) ,\cdots ,\left ( x_{i},y_{i} \right )\right \} T={
(x1,y1),(x2,y2),,(xi,yi)}

测试数据也由相应的输入输出对组成。

有监督学习中,比较典型的问题可以分为:输入变量与输出变量均为连续的变量的预测问题称为回归问题(Regression),输出变量为有限个离散变量的预测问题称为分类问题(Classfication),输入变量与输出变量均为变量序列的预测问题称为标注问题

应用:
垃圾邮件分类等已知结果的分类问题。

(三)无监督学习

概念:
训练样本的标记信息未知, 目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础,此类学习任务中研究最多、应用最广的是”聚类” (clustering),聚类目的在于把相似的东西聚在一起,主要通过计算样本间和群体间距离得到。深度学习PCA都属于无监督学习的范畴。

无监督算法常见的有:密度估计(densityestimation)异常检测(anomaly detection)层次聚类EM算法K-Means算法(K均值算法)DBSCAN算法 等。

应用:
比较典型的是一些聚合新闻网站(比如说百度新闻、新浪新闻等),利用爬虫爬取新闻后对新闻进行分类的问题,将同样内容或者关键字的新闻聚集在一起。所有有关这个关键字的新闻都会出现,它们被作为一个集合,在这里我们称它为聚合(Clustering)问题
在这里插入图片描述

(四)二者的区别

  1. 有 vs. 无训练样本: 有监督学习方法必须要有训练集与测试样本。在训练集中找规律,而对测试样本使用这种规律。而无监督学习没有训练集,只有一组数据,在该组数据集内寻找规律。

  2. 分类同时定性 vs. 先聚类后定性:有监督学习的方法就是识别事物,识别的结果表现在给待识别数据加上了标签。因此训练样本集必须由带标签的样本组成。而无监督学习方法只有要分析的数据集的本身,预先没有什么标签。如果发现数据集呈现某种聚集性,则可按自然的聚集性分类,但不予以某种预先分类标签对上号为目的。

  3. 有 vs. 无 规律性: 无监督学习方法在寻找数据集中的规律性,这种规律性并不一定要达到划分数据集的目的,也就是说不一定要“分类”。这一点是比有监督学习方法的用途要广。譬如分析一堆数据的主分量(PCA),或分析数据集有什么特点都可以归于无监督学习方法的范畴。

  4. 分类 vs.聚类:监督的核心分类无监督的核心聚类(将数据集合分成由类似的对象组成的多个类)。有监督的工作是选择分类器和确定权值,无监督的工作是密度估计(寻找描述数据统计值),也就是无监督算法只要知道如何计算相似度就可以开始工作了。

  5. 同维vs.降维:监督的输入如果是n维,特征即被认定为n维,也即 y = f ( x i ) y=f(x_{i}) y=f(xi) p ( y ∣ x i ) , i = n p(y|x_{i}), i =n p(yxi),i=n,通常不具有降维的能力。而无监督经常要参与深度学习,做特征提取,或者采用层聚类或者项聚类,以减少数据特征的维度,使 i < n i<n i<n。事实上,无监督学习常常被用于数据预处理。一般而言,这意味着以某种平均-保留的方式压缩数据,比如主成分分析(PCA)或奇异值分解(SVD),之后,这些数据可被用于深度神经网络或其它监督式学习算法。

  6. . 不透明 vs.可解释性: 有监督学习只是告诉你如何去分类,但不会告诉你为什么这样去分类,因此具有不透明性和不可解释性。而无监督学习是根据数据集来聚类分析,再分出类别,因此具有可解释性和透明性,会告诉你如何去分类的,根据什么情况或者什么关键点来分类。

  7. DataVisor无监督独有的扩展性: 根据原有的数据把分类特征已经定好,若增加一组数据,变成了n+1维。那么,如果这是一个非常强的特征,足以将原来的分类或者聚类打散,一切可能需要从头再来,尤其是有监督学习,权重值几乎会全部改变。而DataVisor开发的无监督算法,具有极强的扩展性,无论多加的这一维数据的权重有多高,都不影响原来的结果输出,原来的成果仍然可以保留,只需要对多增加的这一维数据做一次处理即可。

(五)如何在两者中选择合适的方法

在这里插入图片描述

根据上面的图也可以进行分类:

简单的方法就是从定义入手,有训练样本则考虑采用有监督学习方法无训练样本,则一定不能用有监督学习方法。但是,现实问题中,即使没有训练样本,我们也能够凭借自己的双眼,从待分类的数据中,人工标注一些样本, 并把它们作为训练样本,这样的话,可以把条件改善,用监督学习方法来做。

关于这部分的内容可以观看b站上的链接:

https://www.bilibili.com/video/av9912938/?p=4

如果您在阅读之中发现文章错误之处或者出现疑问,欢迎在评论指出。

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140050.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Java8 基本类型数组转换为List[通俗易懂]

    Java8 基本类型数组转换为List[通俗易懂]Java8种基本类型(byte/short/int/long/float/double/char/boolean)的数组(byte[]/short[]/int[]/long[]/float[]/double[]/char[]/boolean[])不能直接通过Arrays.asList方法转换为List,因为List的元素必须是包装类。在Java8之前,想要实现这种转换只能通过循环,Java8提供…

  • python中类(class)

    python中类(class)"""面向过程和面向对象(oop:objectorientedprogramming)的基本概念面向过程:—侧重于怎么做?1.把完成某一个需求的所有步骤从头到尾逐步实现2.根据开发要求,将某些功能独立的代码封装成一个又一个函数3.最后完成的代码,就是顺序的调用不同的函数特点:1.注重步骤与过程,不注重职责分工2.如果需求复杂,代码会变得很复杂3.开发复杂项…

  • 用AliDDNS脚本实现动态域名

    用AliDDNS脚本实现动态域名Aliyunddns脚本实现动态域名安装1.yum安装必须的软件[root@VM_0_16_centos~]#yuminstall-ywgetcurlcronie2.下载脚本至/usr/sbin/文件夹[root@VM_0_16_centos~]#wget-O/usr/sbin/aliddns.shhttps://bitbucket.org/ilemonrain/aliddns/downloads/AliDDNSv3-Build20181113-PreviewBuil

  • ajax请求五个步骤!

    ajax请求五个步骤!ajax请求五个步骤!今天咱们讲一讲Ajax请求五个步骤!1.创建XMLHttpRequest异步对象varxhr;if(window.XMLHttpRequest){//codeforIE7+,Firefox,Chrome,Opera,Safarixhr=newXMLHttpRequest();}else{//codeforIE6,IE5xhr=newActiveXObject(“Microsoft.XMLHTTP”);}2

  • Spring Boot 系列:处理跨域请求

    一、何为跨域前端请求于后端处理符合三个要求(同一域名,同一端口,同一协议)下,即可访问,有一个不符合就会出现跨域问题。1.1一次正常的请求Controller层代码:@RequestMapping(&amp;amp;quot;/demo&amp;amp;quot;)@RestControllerpublicclassCorsTestController{@GetMapping(&amp;amp;quot;/sayHello&amp;amp;

  • 电脑加速 2010年最新方法

    电脑加速 2010年最新方法
    1、加快开关机速度

      XP中关机时,系统会发送消息到运行程序和远程服务器,告诉它们系统要关闭,并等待接到回应后系统才开始关机。加快开机速度,可以先设置自动结束任务,首先找到HKEY_CURRENT_USERControlPanelDesktop,把AutoEndTasks的键值设置为1;然后在该分支下有个“HungAppTimeout”,把它的值改为“4000(或更少),默认为50000;最后再找到HKEY_LOCAL_MACHINESystemCurrentContr

发表回复

您的电子邮箱地址不会被公开。

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