吃瓜教程第一二章学习记录

2023-09-13 00:50:07

当大多数人听到 "机器学习 "时,他们会联想到机器人:一个可靠的管家或一个致命的终结者,这取决于你问谁。但是,机器学习并不只是未来主义的幻想,它已经存在了。事实上,在一些特殊的应用中,如光学字符识别(OCR)等,已经有了几十年的历史。但是第一个真正主流的ML应用是在20世纪90年代:垃圾邮件过滤器,它改善了数亿人的生活,并迅速得到了广泛的使用。它不完全是一个有自我意识的天网,但是严格来说,其技术上可以被称为机器学习(因为实际上它已经学得很好,你很少需要自己将邮件标记为垃圾邮件)。随后,又有数百个 ML应用现在已悄悄地为数百种产品和功能提供了动力,这些产品和功能包括你经常使用的,从推荐系统到语音搜索。

1.什么是机器学习

让计算机像人一样能从数据中学习出规律的一类算法。
人工智能>机器学习>深度学习
人工智能具体应用场景

  • 计算机视觉(Computer Vision,CV):
    指让计算机和系统能够从图像、视频和其他视觉输入中获取有意义的信息,并根据该信息采取行动或提供建议。
    什么是计算机视觉
  • 自然语言处理(Natural Language Processing,NLP):
    是计算机科学、人工智能和语言学领域的一个交叉学科,主要研究如何让计算机能够理解、处理、生成和模拟人类语言的能力,从而实现与人类进行自然对话的能力。通过自然语言处理技术,可以实现机器翻译、问答系统、情感分析、文本摘要等多种应用。
    什么是自然语言处理
  • 推荐系统(Recommender System,RS):
    推荐系统是一种信息过滤系统,手段是预测用户(user)对物品(item)的评分和偏好。
    推荐系统

数据决定模型的上限,而算法则是让模型无限逼近上限!
what:
研究关于一类能从数据中学习出其背后潜在规律的算法的一门学科。
机器学习的三要素
数据、算法、模型
“机器学习是让计算机像人类一样学习和行动的科学,通过以观察和现实世界互动的形式向他们提供数据和信息,以自主的方式改善他们的学习。”
why:
可以从事相关研究与开发,迁移到自己的研究领域
下面这个想法我觉得很稀奇很有意思我觉得你可以试一试读读它,把机器学习的过程比喻成炼丹,在过程感受艺术的美妙,在过程中感受人生哲理,在过程中寻找自己~
为什么建议人都学机器学习
how:
如何学习机器学习,每个人的方法也许不同,但Datawhale绝对是一个很好的学习社区!见过许多方法不是要很多钱就是需要很自觉但Datawhale真的是既免费又耐心又负责!
假设空间:
“由输入空间到输出空间的映射的集合”
我理解的假设空间是根据数据你自己假设出来的函数、算法和模型所构成的集合能较好的拟合该数据集。
版本空间:
版本空间就是与训练集一致的所有假设所构成的集合,也就是假设空间的一个最大子集,该子集内的每一个元素都不与训练集相冲突。
我理解的是因为训练样本数量有限,假设空间含有很多假设,最终筛选后有可能剩下多个假设是符合训练样本的,这些剩下的假设组成的集合就称为版本空间。

2、基本术语

数据集:表示包含m个样本的数据集。
算法:指的是从数据中学得“模型”的具体方法。如线性回归、决策树、支持向量机、神经网络等。
“算法产出的结果称为“模型””~
模型:在机器学习范式中,模型是指模型参数的数学表达式,以及分别用于回归,分类和加固类别的每个预测,类别和动作的输入占位符。
在机器学习中,模型是重心,一切都围绕模型旋转。尽管不同的人对模型有不同的定义。但是我认为,这是我们最好的定义模型的方法,“机器学习中的模型是试图拟合数据并学习预测未知数据的假设”。
例如样本是⼀堆好⻄⽠和坏⻄⽠时,我们默认的便是好⻄⽠和坏⻄⽠背后必然存在某种规律能将其区分开。
样本:也称为“示例”,是关于一个事件或对象的描述。
样本空间:表示样本的特征向量所在的空间为样本空间。
标记:机器学习的本质就是在学习样本在某个方面的表现是否存在潜在的规律,我们称为该方面的信息称为“标记”。
例如,一条西瓜样本:x=(青绿;蜷缩;清脆),y=好瓜。
标记空间:标记所在空间,每个输出也可以看做一个向量,也可叫做标记空间。
监督学习:监督学习是根据已有数据集,知道输入和输出结果之间的关系,然后根据这种已知关系训练得到一个最优模型,可以划分为回归和分类如k-近邻算法、决策树、朴素贝叶斯等。
**无监督学习:**需要用某种算法去训练无标签的训练集从而能让我们我们找到这组数据的潜在结构,k-均值聚类,BIRCH聚类,高斯混合模型(GMM)等
泛化:由于机器学习的⽬标是根据已知来对未知做出尽可能准确的判断,因此对未知事物判断的准确与否才是衡量⼀个模型好坏的关键,我们称此为泛化能⼒。
举个例子,高中生每天各种做题,五年高考三年模拟一遍遍的刷,为的什么,当然是想高考能有个好成绩。高考试题一般是新题,谁也没做过,平时的刷题就是为了掌握试题的规律,能够举一反三、学以致用,这样面对新题时也能从容应对。这种规律的掌握便是泛化能力,有的同学很聪明,考上名校,很大程度上是该同学的泛化能力好。

考试成绩差的同学,有这三种可能:一、泛化能力弱,做了很多题,始终掌握不了规律,不管遇到老题新题都不会做;二、泛化能力弱,做了很多题,只会死记硬背,一到考试看到新题就蒙了;三、完全不做题,考试全靠瞎蒙。机器学习中,第一类情况称作欠拟合,第二类情况称作过拟合,第三类情况称作不收敛。
在这里插入图片描述

分布:指的是概率论中的概率分布,通常假设样本空间服从⼀个未知分布,⽽我们收集到的每个样本都是独⽴地从该分布中采样得到,即独⽴同分布。通常收集到的样本越多,越能从样本中反推出的信息,即越接近真相。

众算法生而平等

  • 机器学习不是各种算法的堆砌,应当把它当做看待世界的世界观,解决问题的方法论,应该思考机器学习的思维方式而不是所谓的推导过程和各种细节,在掌握所有算法后忘记所有“招数”,融会贯通,整合甚至形成新的算法,无招胜有招。因为问题是无限的,算法是有限的,解决问题时,像裁缝一样量体裁衣,按需设计,度身定制,而不是生搬硬套,各种取巧和一劳永逸~
  • 在机器学习过程中,不要总问哪一种算法最好,哪一种评估方法最好,记住天下没有免费的午餐,具体问题具体对待,机器学习不是在求精确的最优解,而是概率上的近似正确解。

3、模型评估与选择

那么如何评估模型的优劣和选择最适合自己业务场景的模型呢?
如何评估模型的优劣
添加链接描述

3.1 经验误差与过拟合

名词解释:

  • 错误率:在这里插入图片描述
  • 精度:精度=1-错误率。
  • 误差:学习器的实际预测输出与样本的真实输出之间的差异。
  • 经验误差:学习器在训练集上的误差,又称为“训练误差”。
  • 泛化误差:学习器在新样本(测试集)上的误差。
  • 过拟合:是由于模型的学习能力相对于数据来说过于强大
  • 欠拟合:是因为模型的学习能力相对于数据来说过于低下
    根据大数定律,经验误差会收敛于泛化误差,两者(在一定容忍下)相近是由hoeffding不等式作为理论保证的,两者相差过大说明模型的欠拟合或者过拟合,而学习的一致收敛性说的正是这一特性:当训练集足够大,两者的结果就会足够相近,这样我们通过样本的“管中窥豹”的目的才能达到,最终才能获得一个目标假设。
    偏差大,说明模型欠拟合;方差大,说明模型过拟合
    经验误差与泛化误差欠拟合和过拟合

3.2评估方法

主要有3种模型评估方法:留出法、交叉验证法、自助法。
1.留出法
直接将数据集D划分为两个互斥集合S(训练集)和T(测试集)。D=S∪T,S∩T=∅,在S上训练出模型后,用T来评估测试误差,并将其作为泛化误差的估计。
举例:
采用方法:二分类任务
样本集:D包含1000个样本,其中500个正例,500个反例
S与T的划分方法:S包含700个样本,正例350,反例350;T包含300个样本,正例150,反例150
错误率与精度的计算:假设T上有90个样本分类错误,其错误率为(90/300)*100%=30%;精度为[(300-90)/300]*100%=1-30%=70%
补充:单次使用留出法得到的估计误差往往不够稳定,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。如对上述1000个样本,可反复随机划分S和T,使用模型方法后,计算精度,求取平均值。
2.交叉验证法
交叉验证法本质上是在进行多次留出法,且每次都换不同的子集做测试集,最终让所有样本均至少做1次测试样本。
在样本量足够大的理想情况下,应当把数据集分割为三部分:训练集(training set)、验证集(validation set)和测试集(testing set),分别用于模型训练、模型选择和模型评估,用于评估模型泛化能力的测试集只出现在最后的模型评估环节。但很多时候数据不够充足,这种时候可以取消验证集,采用交叉验证方法,通过反复划分训练集和测试集来避免用同一批数据训练和评估一个模型,相当于将验证集和测试集合二为一了。
算法参数是指算法本身的一些参数(也称超参数),例如k近邻的近邻个数k、支持向量机的参数C,算法配置好相应参数后进行训练,训练结束会得到一个模型,例如支持向量机最终会得到w和b的具体数值(此处不考虑核函数),这就是模型参数,模型配置好相应模型参数后即可对新样本做预测。
模型的评估方法
模型评估(model assessment)是指对于一种具体方法输出的最终模型,使用一些指标和方法来评价它的泛化能力。
混淆矩阵,F1score
3.自助法
给定包含m个样本的数据集D,对其进行采样产生数据集D‘:每次随机从D中挑选一个样本,将其拷贝到D‘,然后将该样本放回到D中,使该样本在下次采样中人可能被采到;重复m次后,便得到了包含m个样本的数据集D‘。
举例:
采用方法:二分类任务
采样集:D包含1000个样本,其中500个正例,500个反例
S和T的划分方法:
随机可放回的抽取700个样本作为训练集,在这700个样本中会存在重复的样本。其中样本在700次采样中始终不被采到的概率为(1-1/700)700=0.3676。(当采样数为m时,始终不被采到的某样本概率为(1-1/m)m,取极限得到limm→∞(1-1/m)^m→1/e≈0.368)。
测试集中有0.36概率的样本未在训练集中出现,可选择D\D’中的300个样本作为测试集。并计算测试集中模型的精度。
补充:自助法在数据集较小,难以有效划分训练和测试集时方法较为有用。但通过自助法产生的数据集改变了初始数据集的分布,会出现估计偏差.
参考

更多推荐

Django Web开发入门基础

官方有很详细的文档,但是看过几遍之后如果要翻找还是有点麻烦,本文算作是学习笔记,提取一些关键点记录下来,另附上官方教程WritingyourfirstDjangoapp注:文中的指令使用py,是在Windows上,macOS要使用python31.安装DjangoDjango是一个基于Python的Web开发框架,安装

git使用说明

配置hosts配置C:\Windows\System32\drivers\etc\hosts192.168.**.**git.wl.com本地git账号配置(xxx在gitlab个人profile中)打开gitbashgitconfig--globaluser.namexxxxgitconfig--globaluser

使用springcloud-seata解决分布式事务问题-2PC模式

目录一、建立undo_log表二、安装事务协调器:seata-server三、整合可以查看官网:快速启动|Seata一、建立undo_log表--注意此处0.3.0+增加唯一索引ux_undo_logCREATETABLE`undo_log`(`id`bigint(20)NOTNULLAUTO_INCREMENT,`b

华为OD机试 - 滑动窗口最大和 - 滑动窗口(Java 2023 B卷 100分)

目录专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明华为OD机试2023B卷题库疯狂收录中,刷题点这里专栏导读本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题

【技术分享】NetLogon于域内提权漏洞(CVE-2020-1472)

一、漏洞介绍CVE-2020-1472是一个Windows域控中严重的远程权限提升漏洞。攻击者在通过NetLogon(MS-NRPC)协议与AD域控建立安全通道时,可利用该漏洞将AD域控的计算机账号密码置为空,从而控制域控服务器。该漏洞适用于Win2008及后的所有版本。二、漏洞原理Netlogon使用的AES认证算法

区块链(3):区块链去中心化

1点对点同步区块链的流程流程图如下:流程讲解:(1)连接节点(2)向该节点请求最新区块(3)请求到区块以后,根据返回的最新区块前置hash是否和我本身的区块hash相等,分为两种情况:第一种情况:最新区块前置hash和我本身的区块hash相等并合法有效,则最新区块是新区块,同时添加到我的链中。然后广播到我这个节点连接的

期权交易保证金比例一般是多少?

期权交易是一种非常受欢迎的投资方式之一,它为期权市场带来了更为多样化和灵活化的交易形式。而其中的期权卖方保证金比例是期权交易中的一个重要指标,直接关系到投资者的风险与收益,下文介绍期权交易保证金比例一般是多少?本文来自:期权酱一、期权的交易保证金如何计算?期权交易保证金分为开仓保证金和维持保证金。采用非线性保证金的方式

Spring Authorization Server入门 (十七) Vue项目使用授权码模式对接认证服务

Vue单页面项目使用授权码模式对接流程说明以下流程摘抄自官网在本例中为授权代码流程。授权码流程的步骤如下:客户端通过重定向到授权端点来发起OAuth2请求。如果用户未通过身份验证,授权服务器将重定向到登录页面。身份验证后,用户将再次重定向回授权端点。如果用户未同意所请求的范围并且需要同意,则会显示同意页面。一旦用户同意

Spring中@Component和@Bean的区别

前言Spring是一个流行的Java开发框架,它提供了一种简化应用程序开发的方式。在Spring中,@Component和@Bean是两个常用的注解,用于定义和管理对象的创建和依赖注入。虽然它们都用于创建和管理对象,但有一些关键区别。@Component注解@Component是Spring框架的核心注解之一,它用于标

DevOps:从历史到实践的全面解析

在当今的软件开发领域,DevOps已经成为了一个耳熟能详的词汇。从历史发展的角度来看,DevOps源自敏捷开发和云计算的兴起,是软件开发和运维的必然趋势。本文将详细介绍DevOps的历史发展、相关技术以及实践案例,最后对DevOps的意义和未来发展趋势进行总结。一、DevOps的历史发展DevOps作为一项运动,起源于

Json-Jackson和FastJson

狂神:测试Jackson纯Java解决日期格式化设置ObjectMapperFastJson:知乎:Jackson使用指南1、常见配置方式一:yml配置spring.jackson.date-format指定日期格式,比如yyyy-MM-ddHH:mm:ss,或者具体的格式化类的全限定名spring.jackson.t

热文推荐