算法葫芦书(笔试面试)

一、特征工程

1.特征归一化:所有特征统一到一个区间内

线性函数归一化(0到1区间)、零均值归一化(均值0,标准差1)

2.类比型特征->数值性特征

序号编码、独热编码、二进制编码(010,110)

3.高维数组组合特征处理:为了提高拟合能力

降维:用k维向量表示,再运算

4.组合特征:找到哪些特征应该组合,决策树

5.文本数据表示:词袋模型(只记录出现频率、TF-IDF、n-gram)、主题词、词嵌入

6.Word2Vec(两种网络结构:CBOW-上下文预测当前、skip-gram当前预测上下文)、LDA(隐狄利克雷-主题变概率分布)

7.图像数据不足处理方法:随机旋转、平移、缩放等、添加噪声、颜色变化、改变清晰度

二、模型评估

1.混淆矩阵:T对不对、P是不是

1.分类问题:准确率(TP/总样本)、精确率(查准率-TP/TP+FP)、召回率(查全率TP/TP+FN)、F1、PR曲线(精确率和召回率-两难全,平衡点即F1)、ROC(越陡越好-遍历所有阈值如>0.9,0.8来绘制-FP率和TP率)、AUC(曲线下的面积-越高越好)

2.回归问题:MAE(L1损失函数,绝对值)、MSE(L2损失函数,平方,对异常更敏感,但丢失部分正常)

3.余弦相似度(方向上的一致性)、欧氏距离(具体数值的一致性)

4.过拟合(更多数据、降低模型复杂度、正则化约束-对模型参数进行约束L1L2、drop)和欠拟合(添加新特征、加模型参数、多训练轮数)

三、经典算法

1.支持向量机:一种二类分类模型,在特征空间中寻找间隔最大的分离超平面,泛化性更好。

感知机是找到一个平面使误差点最小。

核函数:当样本在原始空间线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分

对偶问题:最小化一个包含正则化项的损失函数--->为一个无约束的求最大值的凸二次优化。

k分类:1-训k个,取最高。2-训Ck2个。

2.逻辑回归(输出概率值、预测二分类是否患病)、线性回归(输出实数值、预测房价、温度等)

3.决策树:ID3、C4.5、CART等算信息增益和选择

四、降维

1.PCA(主成分分析、无监督):投影新坐标系、最大程度保留方差。根据特征值大小选前k个

2.LDA(线性判别分析、有监督):投到一条直线上,同类的尽可能近。最大化类间最小化类内。

五、无监督学习

1.k均值。调优:数据归一化和离群点处理,合理选择k值(手肘法),欧氏距离变核函数

kmeans++:越远的点越可能成为下一个聚类中心

自底向上层次聚类:指每次找质心之间距离最小的类。最后是多个{}

2.高斯混合模型:比kemans可以给出样本属于类的概率,一个复杂的事务分为几个高斯函数模型,均值、方差和权重来合成总的

3.自组织映射神经网络,二维网格,将输入数据样本聚类到不同的网格单元。

和kmeans区别:不用定义k值,k只更新本类,网格更新相邻的

4.聚类算法评估:聚类的数量、紧凑情况等、模型复杂度

六、概率图模型

1.贝叶斯公式

P(A|B)=P(AB)|P(B)

先验概率:直接的概率。后验概率:观察到某些数据后更新

2.生成式模型(如何生成)和判别式模型(如何区分)

生成式:朴素贝叶斯、贝叶斯网络、pLSA、LDA、隐马尔可夫

判别式:最大熵模型、条件随机场(CRF)

3.模型详解:

朴素贝叶斯(特征独立):先验概率、后验概率来预测

贝叶斯网络(有向无环图):推断算法查询

pLSA(概率潜在语义分析):主题词和文档概率分布、EM算法迭代(E期望,M最大似然函数。计算在当前参数下隐变量的期望值,最大化参数的似然函数)

LDA(每个文档多个主题词):pLSA扩展

隐马尔可夫(观测序列来推测):隐层状态转移,寻找最可能的状态序列

最大熵模型(最大化熵来避免过拟合):通过梯度上升法

条件随机场(CRF-直接建模条件概率预测)

七、优化算法

1.损失函数

适用回归:适用输出连续,最后一层无sigmoid

均方误差:对大误差敏感

绝对误差:更加稳健

适用分类:

交叉熵损失:计算预测概率分布与实际标签分布之间的差异,对错误分类的惩罚较大

对数似然损失:常用于概率模型

KL散度:衡量两个概率分布之间的差异

2.梯度下降

通过计算损失函数相对于参数的梯度,调整参数使损失函数最小

随机梯度下降:每次只使用一个样本来计算梯度

mini-batch梯度下降:每次使用小批量样本计算梯度

动量方法:纸球下落和铁球下落不一样

自适应调整(Adam):结合动量和加权平均更新学习率

八、采样

1.MCMC(马尔可夫链蒙特卡洛采样法)

通过构建一个马尔科夫链来逼近目标概率分布(p(x)),并从中生成样本。

马尔科夫链-蒙特卡洛抽样-接收拒绝采样(Metropolis-Hastings-根据正态分布生成一个新的候选状态,并计算接受概率是否大于某个数进而是否接收)

马尔科夫链是一个随机过程,其中每个状态仅依赖于前一个状态,即具有无记忆性。

九、前向神经网络

1.多层感知机(MLP)

输入层,隐藏层,输出层

每个神经元接收前一层的输出,进行加权和和激活函数运算

2.激活函数

常用:sigmoid(0,1)、Tanh-sigmoid的平移,减轻偏向,在两头会梯度消失(-1,1)、ReLu(在正区间内输出等于输入,负区间内输出为零,神经元可能死亡)、Leaky ReLU(负区间有较小输出,防止死亡)、softmax-通过对原始分数进行指数化和归一化处理,确保所有类别的概率之和为1

1-引入非线性变换,否则退化成简单线性模型

2-缓解梯度消失,如ReLu在正区间上导数为常数1

3-正规化输出信号,将神经元的输出信号映射到特定的范围内,如sigmoid(0,1)

4-激活神经元,通过比较神经元的输入和阈值,来确定要激活哪个神经元

3.梯度消失和梯度爆炸

1-梯度消失解决

使用合适的激活函数ReLu等

批归一化,对每一层输入进行归一化处理,使分布稳定

残差连接:直接跳过连接,梯度能更快反向传播

学习率调整

2-梯度爆炸解决

梯度裁剪:梯度的模大到一定阈值时,裁剪到较小范围

权重衰减:L1或L2范数的正则化项来限制参数的取值范围

使用自适应学习率调整能力的优化器

4.CNN(深度卷积神经网络)

稀疏交互(卷积核尺度远小于输入维度,优化时间复杂度和过拟合,只提取重要特征)和参数共享(同模型不同模块卷积核参数相同,只需要学习一组参数,降低存储需求)

池化:均值池化mean pooling、最大池化max pooling等,区域内选最大的,降低参数量

cnn用于文本分类:类似于一个滑动窗口来卷积

5.RNN(循环神经网络)

循环结构,不是前馈,能够捕捉序列信息。参数共享(隐藏层在不同时间步的参数是相同的)

有梯度消失和梯度爆炸,LSTM和GRU通过加入门控机制可以解决

6.LSTM(一种特殊的RNN)

输入门、输出门、遗忘门和记忆细胞(是LSTM的核心,用于保存长期记忆)组成

门控机制选择性记忆和遗忘,具有处理长序列数据的能力,并能够有效记住长期依赖关系

7.Seq2Seq

解决问题:传统方法编码时基于规则,泛化性很差。于是出现seq2seq

向量长度知道时补零,不知道时可以用这个

历史信息-->大纲-->考试时作答

从一个输入序列到另一个输出序列的映射任务。编码器和解码器,两个RNN

改进:

注意力机制:允许解码器在生成每个输出元素时动态地关注输入序列的不同位置,并根据这些位置的重要性分配权重。

Transformer模型:放弃了循环结构,实现了并行化训练和更高效的序列建模。

Copy机制:用于解决生成文本时的OOV(Out-of-Vocabulary)问题。Copy机制允许模型在生成单词时从原文本中直接拷贝单词而非仅从预定义的词汇表中生成单词。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/435807.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数学建模--什么是数学建模?数学建模应该怎么准备?

前言 这是去年底学数学建模老哥的建模课程笔记;未来本人将陆陆续续的更新数学建模相关的一些基础算法,大家可以持续关注一下;提示:数学建模只有实战才能提升,光学算法没有啥意义,也很难学的很懂。 文章目录…

基于ESP8266—AT指令连接阿里云+MQTT透传数据(2)

MQTT_TX设备为发送数据的Topic,使用MQTT-fx软件实现 MQTT_RX设备为接收(订阅)数据的Topic,使用ESP8266通过AT指令实现 一、使用MQTT-fx实现发送数据 首先进入控制台,获取发送设备 “ MQTT_TX ” 的MQTT连接参数,具体具体操作如…

【Redis入门到精通五】Java如何像使用MySQL一样使用Redis(jedis安装及使用)

目录 Jedis 1.jedis是什么 2.jedis的安装配置 3.jedis的基础命令操作展示 1.set和get操作: 2.exists和del操作: 3.keys和type操作: 4. expire和ttl: Jedis Java 操作 redis 的客⼾端有很多,其中最知名的是 jedi…

Mysql 存储过程

1.需求: users表中的数据 如果在users_copy1表中存在(2各表id相等),则根据users表的数据更新users_copy1表的数据,这两个表id相等。 例子: users表数据: users_copy1表数据: 当执…

docker运行arm64架构的镜像、不同平台镜像构建

背景 Docker 允许开发者将应用及其依赖打包成一个轻量级、可移植的容器,实现“一次构建,到处运行”的目标。然而,不同的操作系统和硬件架构对容器镜像有不同的要求。例如,Linux 和 Windows 系统有不同的文件系统和系统调用&#…

单臂路由详解

目录 单臂路由概念 单臂路由实验 路由器配置 交换机配置 实验验证 基于Eth-Trunk的单臂路由 路由器配置 交换机配置 实验验证 单臂路由概念 单臂路由技术能让路由器的一个物理接口对应不同VLAN数据的实质是把物理接口分成若干个子接口,这些子接口通过封装…

需求5:增加一个按钮

在之前的几个需求中,我们逐步从修改字段到新增字段,按部就班地完成了相关工作。通过最近的文章,不难看出我目前正在处理前端的“未完成”和“已完成”按钮。借此机会,我决定趁热打铁,重新梳理一下之前关于按钮实现的需…

【CSS in Depth 2 精译_040】6.3 CSS 定位技术之:相对定位(下)—— 用纯 CSS 绘制一个三角形

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结)第二章 相对单位(已完结)第三章 文档流与盒模型(已完结)第四章 Flexbox 布局(已…

ECCV 2024 | 融合跨模态先验与扩散模型,快手处理大模型让视频画面更清晰!

计算机视觉领域顶级会议 European Conference on Computer Vision(ECCV 2024)将于9月29日至10月4日在意大利米兰召开,快手音视频技术部联合清华大学所发表的题为《XPSR: Cross-modal Priors for Diffusion-based Image Super-Resolution》——…

Visual Studio Code下载安装及汉化

官网:https://code.visualstudio.com/ 按照指示一步步操作即可: 汉化:

②EtherCAT转Modbus485RTU网关多路同步高速采集无需编程串口服务器

EtherCAT转Modbus485RTU网关多路同步高速采集无需编程串口服务器https://item.taobao.com/item.htm?ftt&id798036415719 EtherCAT 串口网关 EtherCAT 转 RS485 (接上一章) 自由协议通信步骤 (以MS-A2-1041为例) 接收与…

C++ 3 个有序点的方向(Orientation of 3 ordered points)

给定三个点 p1、p2 和 p3,任务是确定这三个点的方向。 平面中有序三重点的方向可以是 逆时针 顺时针 共线 下图显示了 (a,b,c) 的不同可能方向 如果 (p1, p2, p3) 的方向共线,则 (p3, p2, p1) 的方向也共线。 如果 (p1, p2, p3) 的方向是顺时针&a…

鸿蒙HarmonyOS开发生态

1、官网 华为开发者联盟-HarmonyOS开发者官网,共建鸿蒙生态 2、开发工具IDE下载及使用 https://developer.huawei.com/consumer/cn/ 3、使用帮助文档 4、发布到华为应用商店 文档中心

迈威通信闪耀工博会,以创新科技赋能工业自动化

昨日,在圆满落幕的第24届中国国际工业博览会上,迈威通信作为工业自动化与智慧化领域的先行者,以“创新打造新质通信,赋能工业数字化”为主题精彩亮相,向全球业界展示了我们在工业自动化领域的最新成果与创新技术。此次…

Qt的互斥量用法

目的 互斥量的概念 互斥量是一个可以处于两态之一的变量:解锁和加锁。这样,只需要一个二进制位表示它,不过实际上,常常使用一个整型量,0表示解锁,而其他所有的值则表示加锁。互斥量使用两个过程。当一个线程(或进程)…

给自己的项目(vue3)中添加 下雪/樱花飘落的背景

查看更佳效果前往我的博客, 可切换 snows_ls BLOGhttp://124.223.41.220/ 0、效果图 樱花飘落 雪花飘落 1、安装 yarn add jparticles / npm i jparticles 2、引入 import { Snow } from jparticles; // 引入粒子效果库 引入雪花效果库 3、使用 在项目中的app.…

Pygame中Sprite实现逃亡游戏4

在《Pygame中Sprite实现逃亡游戏3》中实现了玩家跳跃飞火的效果,接下来通过精灵类的碰撞检测来判断飞火是否击中玩家、飞火是否击中飞龙以及飞龙是否抓住玩家。 1 飞火是否击中玩家的判断 判断飞火是否击中玩家的代码如图1所示。 图1 判断飞火是否击中玩家的代码 …

C++入门基础知识91(实例)——实例16【求两数最小公倍数】

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于求两数最小公倍数的相关内容&#xff01…

慢病中医药膳养生食疗管理微信小程序、基于微信小程序的慢病中医药膳养生食疗管理系统设计与实现、中医药膳养生食疗管理微信小程序的开发与应用(源码+文档+定制)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

智融-SW6003 双向移动电源IC

描述 ETA6003 是一款具有动态电源路径控制和输入电流限制功能的开关锂离子电池充电器。连接电池后,根据电池电压,DC-DC 开关稳压器会对电池进行预处理、快速充电,或者仅将系统电压 (VSYS) 调节到预设电压。它不需要外…