《算法工程师带你去》读书笔记 什么是稀疏向量(向量的稀疏表示)

这篇具有很好参考价值的文章主要介绍了《算法工程师带你去》读书笔记 什么是稀疏向量(向量的稀疏表示)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

什么是稀疏向量(向量的稀疏表示)

对数据进行预处理时,一般需要对类别型特征进行编码:

序号编码
独热编码
二进制编码
其中独热编码用的是最多的。但是当类别数十分巨大时,独热编码是一个非常稀疏的向量,只有一个值不为0,其他值均为0。可以使用向量的稀疏表示来大大的节省空间,并且目前大多数的算法都接受稀疏向量形式的输入。

举个例子:
v = [ 0 , 0 , 0 , 0 , 1 , 0 , 3 , 0 , 0 , 0 ] 

对于向量 v ,其稀疏表示为
( 10 , [ 4 , 6 ] , [ 1 , 3 ] ) 

10代表v 的长度,[ 4 , 6 ] 表示非零元素的下标,[ 1 , 3 ] 表示非零元素的值

准确率和召回率

准确度:正例和负例中预测正确数量占总数量的比例,用公式表示:

《算法工程师带你去》读书笔记
什么是稀疏向量(向量的稀疏表示)

《算法工程师带你去》读书笔记
什么是稀疏向量(向量的稀疏表示)


《算法工程师带你去》读书笔记
什么是稀疏向量(向量的稀疏表示)
召回率 Recall:以实际样本为判断依据,实际为正例的样本中,被预测正确的正例占总实际正例样本的比例。

召回率的另一个名字,叫做“查全率”,评估所有实际正例是否被预测出来的覆盖率占比多少,我们实际黑球个数是3个,被准确预测出来的个数是2个,所有召回率r=2/3。

1、什么情况下精确率很高但是召回率很低?

一个极端的例子,比如我们黑球实际上有3个,分别是1号、2号、3号球,如果我们只预测1号球是黑色,此时预测为正例的样本都是正确的,精确率p=1,但是召回率r=1/3。

2、什么情况下召回率很高但是精确率很低?

如果我们10个球都预测为黑球,此时所有实际为黑球都被预测正确了,召回率r=1,精确率p=3/10。

Precision值和Recall值是既矛盾又统一的两个指标,为了提高Precision值,分类器尽量在更有把握时才把样本预测为正样本,但此时往往会过于保守而漏掉很多没有把握的正样本,导致Recall值降低。

F1 score综合地反映,F1是精准率和召回率的调和平均值。

ROC曲线的横坐标为假阳性率,纵坐标真阳性率。

AUC是ROC曲线下面积的大小,AUC一般在0.5-1之间,越大说明分类器越可能把真正的正样本排在前面,分类性能越好。

训练数据不足

让模型采用特定的内在结构、条件假设或添加一些约束条件;去调整、变换或拓展训练数据,让其展现出更多的更有用的信息。如在图像分类任务中,可对训练集中的每幅图像进行以下变换。《算法工程师带你去》读书笔记
什么是稀疏向量(向量的稀疏表示)

余弦距离 

        在机器学习问题中,通常将特征表示为向量的形式,所以在分析两个特征向量之间的相似性时,常使用余弦相似度来表示。余弦相似度的取值范围是[-1,1],相同的两个向量之间的相似度为1。如果希望得到类似于距离的表示,将1减去余弦相似度即 余弦距离。因此,余弦距离的取值范围为[0,2],相同的两个向量余弦距离为0。

余弦相似度为两个向量夹角的余弦,余弦相似度在高维情况下保持“相同时为1,正交为0,相反为-1” 。余弦距离会认为(1,10)和(10,100)两个距离很近,但显然有很大差异,此时我们更关注数值绝对差异,应当使用欧式距离。

A/B测试

在互联网公司中,A/B测试是验证新模块、新功能、新产品是否有效,新算法、新模型的效果是否有提升,新设计是否受到用户欢迎,新更改是否影响用户体验的主要测试方法。在机器学习领域中,A/B测试是验证模型最终效果的主要手段。

在对模型进行过充分的离线评估之后,为什么还要进行在线A/B测试?

(1)离线评估无法完全消除模型过拟合的影响,因此,得出的离线评估结果无法完全替代线上评估结果。

(2)离线评估无法完全还原线上的工程环境。一般来讲,离线评估往往不会考虑线上环境的延迟、数据丢失、标签数据缺失等情况。因此,离线评估的结果是理想工程环境下的结果。

(3)线上系统的某些商业指标在离线评估中无法计算。离线评估一般是针对模型本身进行评估,而与模型相关的其他指标,特别是商业指标,往往无法直接获得。比如,上线了新的推荐算法,离线评估往往关注的是ROC曲线、P-R曲线等的改进,而线上评估可以全面了解该推荐算法带来的用户点击率、留存时长、PV访问量等的变化。这些都要由A/B测试来进行全面的评估。

超参数调优

一般会采用网格搜索、随机搜索、贝叶斯优化等算法。

超参数搜索算法一般包括:

一是目标函数,即算法需要最大化/最小化的目标

二是搜索范围,一般通过上限和下限来确定;

三是算法的其他参数,如搜索步长。

网格搜索:先使用较广的搜锁范围和较大的步长,来寻找全局最优值可能的位置,然后逐渐缩小搜索范围和步长,但由于目标函数一般是非凸的,所以很可能错过全局最优值。

随机搜索:理论依据是如果样本点集足够大,那么随机采样也能大概率找到全局最优值或其近似值。一般笔网格搜锁快。

贝叶斯优化算法:容易陷入局部最优值。文章来源地址https://www.toymoban.com/news/detail-439200.html

降低过拟合风险的方法

  • 使用更多的训练数据。
  • 降低模型的复杂度。
  • 正则化方法。
  • 集成学习方法。将多个模型集成在一起,降低单一模型的过拟合风险,如Bagging

到了这里,关于《算法工程师带你去》读书笔记 什么是稀疏向量(向量的稀疏表示)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 加入云原生实战营(星球),带你进阶 Go + 云原生高级开发工程师

    过去 1 年,趁着闲暇时间,我创建了一个 Go + 云原生技术学习社群,旨在帮助你快速进阶为 Go + 云原生高级开发工程师,提高你的职场竞争力、扩展职业宽度,最终谋得一份好差事(进入大厂、升职加薪)。 本篇文章,我来详细介绍下云原生实战营知识星球,让你对本知识星

    2024年04月08日
    浏览(74)
  • 黑客和网络安全工程师有什么区别?如何成为一名网络安全工程师?

    经常有小伙伴把 黑客 和 网络安全工程师 弄混, 黑客 和 网络安全工程师 是两种不同的职业,尽管它们都与计算机安全有关。本篇文章将告诉你 黑客 和 网络安全工程师 的区别并且教你如何成为一名 网络安全工程师 。 黑客 通常是指那些 能够入侵计算机系统或网络的人 。

    2024年02月08日
    浏览(59)
  • Devin内测注册全攻略:一文带你快速体验最新AI软件工程师技术 ️

    博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接 : 🔗 精选专栏 : 《面试题大全》 — 面试准备的宝典! 《IDEA开发秘籍》 — 提升你的IDEA技能! 《100天精通鸿蒙》 — 从Web/安卓到鸿蒙大师! 《100天精通Golang(基础入门篇)》 — 踏入

    2024年03月16日
    浏览(124)
  • 网络工程师能做什么?

    最近很多新手或入行的人问道网络工程师能做什么? ​ 我这就浅显的讲讲。 工作岗位划分来说,有运维、系统集成、厂家工程师。 从职位的区分来说,有售前、售后岗位。(我们这主要讲讲售后岗位,售前做的比较少) 运维岗位的几个等级,网络管理员、信息技术员、运

    2024年02月03日
    浏览(39)
  • 什么是python全栈工程师?

    一、啥是全栈? 在谈Python全栈工程师之前,我们首先要弄清楚全栈。 全栈(Full Stack)通常指的是全栈工程师(Full Stack Developer),是指在软件开发过程中,具备同时从前端到后端各个层面进行开发的能力和技术知识的人员。 传统上,软件开发中的角色分为前端开发、后端开

    2024年02月08日
    浏览(57)
  • 算法工程师

    目录 算法工程师 基础语言:python,c,java 算法思想:贪心,动态

    2024年02月16日
    浏览(44)
  • 软件工程师,为什么不喜欢关电脑

    概述         你是否注意到,软件工程师们似乎从不关电脑,也不喜欢关电脑?别以为他们是电脑“上瘾”,或是沉迷于电脑,这一现象背后蕴含着多种实际原因。         1、代码保存与恢复。         在编写代码过程中,遇到问题时可能会暂时离开去查阅资料或

    2024年02月19日
    浏览(56)
  • 自动化测试工程师需要具备什么技能?

    如果是初入门的学习者,不建议拿一本书从头学,很可能会被里边一些专业术语和不常用的技术带偏,不论在公司还是在其他岗位上自学测试,都可以用自己搭建好的项目来练手(如果在公司有现成的项目更好),从一开始就学习搭建环境,测试框架,选择小型项目,然后在

    2023年04月20日
    浏览(62)
  • 数字IC设计工程师一般都干什么

    简单来说,数字IC设计工程师一般就是负责写verilog代码(当然,不是仅仅写个代码)。本文主要对数字IC设计的工作流程进行简单的介绍,也算是对我从业一年来的总结。 一般来说,数字IC设计的工作流程如下: 算法文档学习(搞清楚你负责的功能):先由算法的同事给出详

    2024年02月05日
    浏览(52)
  • 工程师成长到最后,最重要的到底是什么?

    🍉 CSDN 叶庭云 : https://yetingyun.blog.csdn.net/ 工程师成长到最后最重要的到底是什么? 原文来源:https://chinese.catchen.me/2023/02/engineer-career-growth-endgame.html。这篇文章讨论了一个关于工程师成长的问题,即工程师成长到最后最重要的是什么。对于新人来说,他们往往认为自己需要

    2024年02月05日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包