大模型中常见算法解析

一、深度神经网络(DNN)

基本概念

深度神经网络是一种包含多个神经元的人工神经网络,具有多个隐藏层,能够自动学习数据中的复杂模式和特征表示。它通过层层堆叠神经元,利用前向传播计算输出,并依据反向传播算法来调整各层神经元之间的连接权重,不断优化模型以拟合输入数据与目标输出之间的关系。

适用场景
  • 计算机视觉领域:例如图像识别,可准确识别图片中的物体类别,像区分猫、狗等不同动物;在物体检测中能定位出图像里多个物体的位置并进行分类;图像分割任务里则可将图像划分成不同的语义区域,如在医学影像中区分出不同的组织器官。
  • 自然语言处理领域:涵盖机器翻译,将一种语言文本精准地翻译成另一种语言;文本摘要任务能提炼出长文本的关键信息;还可用于情感分析,判断一段文字所表达的情感是积极、消极还是中性等。
  • 其他领域:在医疗影像分析中辅助疾病诊断,金融领域进行信用评分、市场预测以及自动驾驶汽车的感知和决策等诸多方面都有出色表现。
特征处理
  • 图像数据:首先会进行归一化操作,把像素值按一定比例缩放,比如将像素值范围从 0 - 255 归一化到 0 - 1 或 -1 - 1,加快模型收敛速度。同时,常采用裁剪、缩放、旋转、镜像等数据增强手段,丰富数据样本,增强模型对不同图像形态的适应性。
  • 文本数据:需进行分词,把文本按词语或字等单位进行划分,再通过词向量技术(如 Word2vec、GloVe 等)将词转化为向量形式,构建词嵌入矩阵,使文本能以向量序列的形式输入网络。
  • 数值型数据:为消除不同特征间量纲差异,通常采用标准化(使数据均值为 0,方差为 1)或归一化(映射到特定区间)等方法,确保数据在同一尺度上参与模型训练。

二、卷积神经网络(CNN)

基本概念

卷积神经网络主要由卷积层、池化层和全连接层构成。卷积层利用卷积核在输入数据(如图像、音频等)上滑动进行卷积操作,自动提取局部特征;池化层通过下采样(如最大池化、平均池化)减少数据维度,同时保留关键特征;全连接层则用于整合特征并输出最终的分类或预测结果。

适用场景
  • 图像相关任务:人脸识别中精准识别不同人的面部特征;图像搜索可根据用户输入的图像特征查找相似图像;目标检测能在复杂场景中定位并识别出各类目标物体;医学图像检测里对 X 光、CT 等影像进行病症分析,以及物体识别与分割等任务。
  • 语音识别领域:将音频信号转换为文本内容,通过对音频特征的卷积提取来捕捉语音中的关键声学特征。
  • 自然语言处理中的部分任务:例如情感分析和文本分类等,可将文本看作一种特殊的序列数据,利用卷积操作提取文本中的局部语义特征。
特征处理
  • 图像数据:先将图像调整为统一的尺寸大小,便于后续批量处理;进行灰度化处理(针对彩色图像转换为灰度图像)可降低计算量;归一化像素值(如除以 255)让其处于合适范围;同时,会大量运用数据增强技术,像随机裁剪图像的部分区域、按一定角度旋转图像、沿水平或垂直方向翻转图像以及添加少量噪声等,增加数据的多样性,提升模型的泛化能力。
  • 音频数据:需进行分帧、加窗操作,把连续的音频信号分割成一个个短的帧(每帧时长一般在 20 - 40 毫秒),接着对每一帧进行傅里叶变换,将时域信号转换为频域信号,获取音频的频谱特征,最后对频谱特征进行归一化等预处理,使其符合模型输入要求。

三、残差网络(ResNet)

基本概念

残差网络是一种深度卷积神经网络架构,旨在解决深度神经网络在训练过程中出现的梯度消失和模型退化问题。它引入了残差块(Residual Block)的概念,通过跨层的快捷连接(Shortcut Connection),使得网络能够更容易地学习到恒等映射,即使网络很深也能保证信息的有效传递和梯度的稳定更新,从而训练出性能更优的深层网络模型。

适用场景

在图像识别、计算机视觉等领域表现卓越,尤其适用于构建非常深的网络结构。无论是大规模的图像分类任务,例如区分不同场景下的复杂物体类别;还是目标检测任务中精准定位多个目标物体并分类,以及图像分割任务里对图像进行细致的语义分割等,都能发挥出很好的效果。

特征处理

和传统 CNN 类似,对于图像数据,会进行常规的预处理操作,如调整图像大小至合适规格(常见的有 224×224 等),进行灰度化、归一化处理,以减少数据的复杂性、统一数据尺度。同时,也会积极采用数据增强手段,像随机裁剪、旋转、翻转等,增加训练数据的多样性,帮助模型更好地学习到不同情况下的图像特征,提升其泛化能力,以适应残差网络深层结构对数据特征丰富度的要求。

四、长短时记忆网络(LSTM)

基本概念

长短时记忆网络是一种特殊的循环神经网络(RNN)变体,为解决传统 RNN 中容易出现的梯度消失和梯度爆炸问题而设计。它通过引入门控机制(输入门、遗忘门、输出门),能够选择性地记住或遗忘之前时刻的信息,从而更有效地处理序列数据中的长期依赖关系,可对不同时间步输入的信息进行灵活的记忆和传递,适合处理具有时间先后顺序的复杂数据。

适用场景
  • 自然语言处理领域:在文本生成任务中,可以根据给定的前文生成合理连贯的后续文本,例如创作诗歌、故事等;机器翻译时能依据源语言句子的先后顺序准确翻译出目标语言句子;情感分析任务里,基于一段文字从头到尾的顺序信息,分析出其表达的情感倾向;语音识别中对连续的语音序列进行有效处理,转化为相应的文本内容。
  • 时间序列分析领域:例如根据历史股票价格走势预测未来股价变化;依据以往的气象数据预测未来天气情况;分析医疗数据中病人各项指标随时间的变化趋势等。
  • 图像序列分析领域:处理视频中连续的图像帧序列,挖掘帧与帧之间的关联信息,实现视频内容理解、行为识别等任务。
特征处理
  • 文本数据:首先进行分词,把文本按合理的单位划分开,然后通过词向量化或词嵌入方法将词语转化为向量表示,形成向量序列。对于长文本,由于模型输入长度通常有限制,往往需要进行截断或填充操作,使所有输入文本的向量序列长度保持一致。同时,会对文本进行清洗,去除停用词、标点符号等无关紧要的信息,减少数据噪声,提升模型效率。
  • 时间序列数据:一般要进行归一化或标准化处理,消除数据在量纲、数值范围等方面的差异,便于模型更好地捕捉数据的变化趋势。对于缺失值情况,可根据具体情况采用合适的填充(如均值填充、插值填充等)或删除处理方式。还可以对时间序列进行差分运算,使原本不平稳的数据变得更加平稳,利于模型学习数据中的规律。

五、Word2vec

基本概念

Word2vec 是一种用于将词语表示为向量形式的词嵌入模型,它基于神经网络的语言模型原理,通过学习语料库中词语的上下文信息,将每个词语映射到一个低维的向量空间中,使得语义相近的词语在向量空间中的距离更近,从而实现用向量来表示词语的语义特征,为后续自然语言处理任务提供了有效的词语特征表示方式。

适用场景

在自然语言处理各个环节都有重要应用,比如文本分类任务中,将文本中的词向量组合作为模型输入,帮助判断文本所属类别;情感分析时,利用词向量捕捉文本中情感相关词语的语义,进而分析整体情感倾向;机器翻译工作里,作为基础的词向量表示,辅助翻译模型更好地理解源语言和目标语言的语义;信息检索方面,通过词向量的相似性来查找与查询词相关的文档内容等。

特征处理

对于原始文本,首先要进行清洗,去除特殊字符、标点符号、数字等可能干扰模型学习的无关信息,使文本内容更加纯净。然后进行分词操作,将文本按合理的语言单位(如单词、词组等)分割开,之后可以去除停用词,减少数据维度,降低数据噪声,提升模型训练效率。同时,选择合适的语料库至关重要,要确保语料具有充分性、准确性以及多样性,这样才能让模型学习到丰富准确的词语语义关系,生成高质量的词向量。

六、Transformer

基本概念

Transformer 摒弃了传统循环神经网络中基于顺序的计算方式,完全依靠注意力机制(Attention Mechanism)来捕捉输入序列中的长距离依赖关系。它由多个编码器(Encoder)和解码器(Decoder)组成,编码器用于对输入序列进行特征编码,解码器则在编码信息基础上生成目标序列。注意力机制能够动态地聚焦于输入序列的不同部分,根据上下文重要性分配不同权重,从而更高效地处理序列信息。

适用场景
  • 自然语言处理领域:在文本生成任务中,能生成高质量、逻辑连贯的文本内容,像自动写作新闻稿件、故事创作等;机器翻译上可实现更准确流畅的跨语言转换;问答系统里,依据问题准确地从文本中找到对应答案;文本摘要任务中,提炼出符合要求的关键信息等。
  • 计算机视觉领域:视觉 Transformer(ViT)将图像分割成多个 patches,并将其看作序列数据,利用 Transformer 的架构进行图像分类等任务,打破了传统 CNN 在图像领域的主导地位,展现出了良好的应用潜力。
特征处理
  • 文本数据:先进行分词,将文本划分成合适的单词或子词单位,接着对分词后的文本进行词向量化或词嵌入,把每个词映射到低维向量空间,最后添加位置编码,为每个词赋予表示其位置信息的向量,以此弥补 Transformer 缺乏对文本顺序天然感知的不足,让模型能够捕捉到文本中的顺序信息。
  • 图像数据:将图像分割成固定大小的 patches,对每个 patch 进行线性映射,将其转换为向量,同样要为这些 patches 添加位置编码,以保留图像的空间位置信息,使模型能够利用这些信息进行后续的特征学习和分类等任务。

七、BERT 系列(以 BERT 为例)

基本概念

BERT(Bidirectional Encoder Representations from Transformers)是一种基于 Transformer 架构的预训练语言模型,其核心特点是采用了双向的语言模型训练目标,能够同时捕捉文本中单词的左右上下文信息,通过在大规模无监督语料上进行预训练,学习到丰富的语言语义和语法知识,然后可以在各种下游自然语言处理任务上进行微调,快速适应不同的具体任务需求,极大地提升了自然语言处理任务的性能。

适用场景

在文本分类任务中,如判断新闻文章的类别(体育、娱乐、科技等);问答系统里,根据给定的问题准确地从文本段落中找到答案;情感分析中,精准判断文本表达的情感是积极、消极还是中性;命名实体识别方面,识别出文本中的人名、地名、组织机构名等实体信息,都展现出了卓越的性能。

特征处理

对输入文本进行分词操作,使用专门的 BERT 分词器将文本分割成单词或子词,在文本开头添加特殊标记 [CLS],用于汇总整个文本的语义信息,在文本结尾添加 [SEP] 标记表示文本结束。之后对分词后的文本进行词向量化或词嵌入,把每个词映射到低维向量空间,使其能够作为合适的输入送入 BERT 模型进行后续的预训练和微调操作。

八、T5

基本概念

T5(Text-to-Text Transfer Transformer)将所有自然语言处理任务统一转化为文本到文本的形式,基于 Transformer 架构进行预训练,在预训练过程中学习到通用的语言知识和文本转换能力,然后通过微调可以应用于多种不同的自然语言处理任务,如翻译、问答、文本总结、文本生成等,实现了一种通用的自然语言处理任务框架。

适用场景

在智能客服领域,根据用户的提问生成准确的回复;智能写作方面,辅助创作各种类型的文章;翻译任务中实现不同语言之间高质量的转换;教育领域用于辅助批改作业、生成学习资料等;情感分析中判断文本情感;语音识别与合成中处理文本相关环节;内容审核与推荐中判断内容是否合规并推荐合适的内容;社交媒体分析中理解用户发布内容的含义;智能家居里实现语音交互相关的文本处理;医疗健康领域辅助解读病历、生成健康建议等众多场景都有广泛应用。

特征处理

与 Transformer 类似,对输入文本进行分词、词向量化、位置编码等处理,将文本转化为模型可接受的输入形式。在具体不同任务场景下,可能需要根据任务特点对输入输出文本进行相应的格式化、标注等额外处理,以确保模型能够准确理解任务要求并输出符合期望的结果。

九、XLNet

基本概念

XLNet 也是一种基于自回归语言模型的预训练模型,它采用了一种新颖的 “排列编码” 机制,与 BERT 不同的是,它在预训练阶段直接捕捉双向上下文信息,通过对输入文本的所有排列组合进行建模,学习到更加丰富全面的语言语义和语法知识,从而在多项自然语言理解任务上展现出超越传统模型的性能优势。

适用场景

适用于需要深入理解文本语义和上下文信息的自然语言处理任务,比如在文本分类任务中,更精准地判断文本的类别归属;在问答系统里,更有效地从复杂文本中检索出准确的答案;自然语言推理方面,准确判断文本之间的逻辑关系等,尤其对于那些对文本理解深度要求较高的应用场景有很好的表现。

特征处理

进行与 BERT 类似的文本预处理操作,包括分词、添加特殊标记等。不过,由于其独特的排列编码机制,在处理文本时更注重对文本顺序和上下文关系的构建,要确保文本数据在输入模型前能够以合适的方式体现不同排列组合下的语义特征,以便模型能充分学习到双向的上下文信息,更好地发挥其性能优势。

十、ALBERT

基本概念

ALBERT(A Lite BERT)是一种轻量级的 BERT 模型,通过对词嵌入矩阵进行因式分解、跨层参数共享等技术手段,在大幅降低模型参数量的同时,尽量保持与 BERT 相当的性能水平,使得模型在对计算资源、存储资源有一定限制的场景下(如移动端、嵌入式设备等)依然能够部署应用,实现自然语言处理任务的高效运行。

适用场景

主要适用于那些对模型参数数量和计算资源有要求的自然语言处理任务部署场景,例如在移动端的智能语音助手应用中,利用有限的设备资源完成语音识别后的文本处理任务,如情感分析、简单的问答互动等;或者在嵌入式设备控制的智能家电系统中,实现对用户指令的自然语言理解,进行相应的设备操作控制等。

特征处理

与 BERT 类似,对输入文本进行分词、添加特殊标记等预处理,然后利用大规模的预训练语料进行无监督学习。在整个过程中,重点关注如何在保证性能的前提下,通过合理的参数优化和结构调整,使模型能够适应资源受限的运行环境,更好地处理输入文本的特征,实现高效的自然语言处理功能。

十一、ERNIE

基本概念

ERNIE(Enhanced Representation through Knowledge Integration)在预训练阶段融入了来自结构化知识库的信息,除了学习文本本身的语义和语法知识外,还能捕捉丰富的语义和实体关系信息,使得模型在理解文本和进行推理时能够结合更多的知识背景,从而提升在自然语言处理任务中的性能,尤其适用于那些需要利用知识增强的任务场景。

适用场景

在知识图谱构建任务中,能够更准确地挖掘文本中的实体和关系信息,完善知识图谱结构;智能问答系统里,借助知识库知识更好地回答用户的复杂问题;文本生成任务中,生成内容更符合知识逻辑,更具合理性等,特别适合需要利用知识进行辅助理解和推理的自然语言处理应用场景。

特征处理

在对文本进行常规的预处理(如分词、词向量化等)基础上,还需要对结构化知识库中的数据进行提取、转换和融合等操作。例如,将知识库中的实体、关系等信息转化为向量表示,通过合适的方式(如拼接、融合等)与文本特征相结合,使模型在训练过程中能够充分利用这些知识信息,提升对文本语义和关系的学习能力,进而在具体任务中发挥出知识增强的优势。

十二、HUBERT

基本概念

HUBERT 是一种大型多语言预训练语言模型,通过在大量不同语种的文本数据上进行预训练,学习到不同语言之间的共享特征和映射关系,能够在不同语种之间共享参数,实现跨语言知识的迁移,为多语言处理任务提供了一种有效的解决方案,旨在打破语言壁垒,提升多语言自然语言处理任务的整体性能。

适用场景
  • 机器翻译方面:实现不同语言对之间更加高效、准确的转换,借助跨语言知识迁移,提升翻译的质量和效率,尤其是对于一些低资源语言的翻译帮助更为明显;在多语言问答系统中,能够理解不同语言表述的问题,并依据跨语言学习到的知识从相应语言的文本资源里找到准确答案;还可应用于多语言文本摘要任务,对不同语种的长文本提炼出关键内容等,有效助力多语言信息处理和交流场景。
特征处理

需要对多种语言的文本进行收集、清洗、分词等预处理操作。收集时要涵盖丰富的语种以及各语种不同领域的文本内容,确保语料的全面性。清洗过程去除文本中的特殊字符、错误格式、无关符号等,使文本内容规整。分词则依据各语种的语言特点采用合适的分词工具或方法,将文本划分成合理的单元。并且要确保不同语言的数据在格式和语义上的一致性,比如统一采用相同的编码方式、词向量维度等,以便进行跨语言的模型训练,让模型能准确捕捉到不同语言之间的共性与差异,实现跨语言知识的有效迁移和共享。

十三、集成学习算法(以随机森林为例)

基本概念

集成学习算法是将多个基学习器(通常是弱学习器)组合在一起,通过特定的集成策略来提升整体模型的性能。以随机森林为例,它是基于决策树的集成学习方法,通过对训练数据进行有放回抽样(Bootstrap 抽样)构建多棵决策树,并且在构建每棵树时,随机选择部分特征来确定划分节点,最后综合多棵树的结果(分类任务通常采用投票机制,回归任务采用平均机制)来得出最终的预测结果,能有效减少个体模型的偏差和方差,提升模型的泛化能力和稳定性。

适用场景
  • 数据挖掘领域:在分析大量复杂的结构化数据时,比如挖掘电商用户的购买行为模式,通过众多特征(如用户年龄、购买历史、浏览记录等)预测用户是否会购买某商品(分类任务),或者预估商品未来的销量(回归任务)等场景下表现出色。
  • 数据分析场景:处理各种行业的数据,如金融领域分析客户信用风险(分类任务),根据客户的收入、资产、负债等诸多特征判断其信用等级;在医疗领域,依据患者的各项身体检查指标、症状等数据预测疾病的发展情况(回归任务)等,都能利用随机森林进行有效的数据分析和预测。
特征处理
  • 数值型数据:通常需要进行标准化或归一化处理,使得不同特征之间具有可比性,避免因特征数值尺度差异过大影响模型训练效果。同时,要进行特征选择,去除不相关或冗余的特征,例如通过相关性分析、特征重要性评估等方法筛选出对目标变量有显著影响的特征,提高模型的效率和泛化能力。对于缺失值,可以采用填充(如均值填充、中位数填充等)、删除含缺失值的样本等方式进行处理。
  • 分类数据:进行编码转换,常用的有独热编码(将类别变量转换为多个二进制变量)、标签编码(将类别按顺序赋予数值)等方式,把分类变量转换为数值型变量,以便模型能够正常处理和分析,更好地挖掘分类特征与目标之间的关系。

十四、线性回归

基本概念

线性回归是一种简单且基础的统计学习模型,用于建立自变量(输入特征)与因变量(目标变量)之间的线性关系。它假设目标变量与自变量之间存在线性函数关系,通过最小二乘法等优化方法,找到一条最佳拟合直线(在多维空间中则是超平面),使得所有数据点到这条直线(超平面)的距离之和最小,直线(超平面)的系数就是模型学习到的特征权重,从而根据输入特征预测目标值,主要用于解决回归问题,即预测连续型的数值变量。

适用场景
  • 经济金融领域:例如预测股票价格走势,依据股票的历史价格、成交量、公司财务指标等特征构建线性回归模型,尝试预估未来的股价;在房价预测方面,根据房屋面积、房间数量、房龄、周边配套设施情况等因素来推测房屋的价格;还可用于销售预测,通过分析产品的历史销售数据、市场推广投入、季节因素等特征来预估未来的销售量等。
  • 医疗健康领域:基于病人的一些基本身体指标(如年龄、血压、血糖等)预测疾病的发展程度、康复时间等连续型的结果;或者依据医院的运营数据(如门诊量、病床使用率、医护人员数量等)来预估医疗成本等情况。
  • 交通领域:根据历史交通流量数据、时间段、天气情况等特征预测特定路段未来某个时段的车流量等,为交通管理和规划提供参考依据。
特征处理
  • 数值型数据:对于连续型的数值特征,通常进行标准化(使数据均值为 0,方差为 1)或归一化(如将数据映射到 0 - 1 区间)处理,以消除不同特征之间的量纲差异,确保各特征在模型训练过程中具有同等的影响力,避免因数值尺度问题导致模型训练不稳定或效果不佳。对于存在异常值的特征,可以进行异常值检测和处理,比如通过箱线图等方法识别出异常值后,采用删除异常值、进行 Winsorize 处理(将异常值替换为特定分位数的值)等方式,使数据分布更加合理,利于模型学习。
  • 分类数据:对于名义型分类变量(如颜色有红、绿、蓝等类别),需要进行编码,常见的编码方式有独热编码(将每个类别转换为一个二进制向量,只有对应类别位置为 1,其余为 0)、虚拟编码(将类别变量转化为多个 0/1 变量,选择一个参照类别,其余类别与之对比)等;对于有序型分类变量(如产品质量等级分为优、良、中、差),可以根据其顺序进行数值编码(如分别赋值为 4、3、2、1),以便将分类数据转化为数值形式参与到线性回归模型的构建中。

十五、逻辑回归

基本概念

逻辑回归是一种用于分类问题的广义线性模型,它在线性回归的基础上,引入了 Sigmoid 函数(用于二分类情况)或 softmax 函数(多分类情况),将线性回归得到的连续值映射到概率区间(0, 1)或多个类别对应的概率分布上,通过设定阈值来判断类别归属。其训练过程也是基于优化损失函数(如对数似然损失)来调整模型参数,常用于二分类和多分类问题的建模和预测。

适用场景
  • 金融风控领域:例如预测客户是否会违约或逾期还款,根据客户的信用评分、收入情况、负债水平、过往借贷记录等特征构建逻辑回归模型,判断客户的还款风险类别(违约 / 不违约);在信用卡诈骗检测中,依据交易金额、交易时间、交易地点、持卡人消费习惯等信息来甄别交易是否存在诈骗风险(正常 / 诈骗)。
  • 电商推荐领域:判断用户是否会购买某产品(购买 / 不购买),通过分析用户的浏览历史、购买记录、收藏夹内容、用户画像(年龄、性别、地域等)等特征,运用逻辑回归进行分类预测,进而为用户提供个性化的推荐服务。
  • 医疗诊断领域:预测疾病的发生和治愈情况,比如依据患者的症状表现、身体检查指标、家族病史等因素,判断患者是否患有某种疾病(患病 / 未患病),或者预估某种治疗方案下疾病的治愈率等情况。
特征处理
  • 数值型数据:首先进行清洗,去除重复数据、缺失值(可采用填充、删除等合适的处理方式)和异常值等,保证数据的质量和完整性。然后进行特征选择,通过相关性分析、特征重要性评估等方法挑选出与目标变量相关性较高的特征,避免引入过多无关特征增加模型复杂度和降低性能。此外,还可以进行特征工程,如对数值型特征进行变换(如对数变换、幂次变换等)、组合(如创建新的特征,将两个相关特征相乘或相加等)等操作,以提高模型的性能,使模型能够更好地捕捉到数据中的分类关系。
  • 分类数据:进行编码,如独热编码、标签编码等,将分类变量转换为数值型变量,使其能被逻辑回归模型所处理。对于多分类问题,可能需要进行 One-vs-Rest(将多分类问题转化为多个二分类问题,每次将一个类别作为正类,其余类别作为负类)或 One-vs-One(在多个类别中两两组合构建二分类问题)等编码方式的转换,以适应逻辑回归模型对分类任务的处理机制,确保模型能够准确地根据输入特征进行类别判断。

十六、k 近邻算法(k-NN)

基本概念

k 近邻算法是一种基于实例的学习算法,属于非参数监督学习方法。它的基本思想是给定一个训练数据集,对于一个新的输入样本,在训练数据集中找到与它距离最近的 k 个邻居(距离度量方式通常有欧几里得距离、曼哈顿距离等),然后根据这 k 个邻居的类别(分类任务)或数值(回归任务),通过投票(分类任务)或平均(回归任务)等方式来确定新样本的类别或预测值。该算法简单直观,不需要对数据进行复杂的建模假设,但对数据的特征表示和距离计算较为敏感。

适用场景
  • 图像分类领域:例如识别人脸、车牌等,通过计算图像特征之间的距离,找到与待分类图像最相似的 k 张已标注图像,依据它们的类别来判断待分类图像所属类别;在垃圾邮件过滤中,将邮件文本转化为特征向量后,根据与已知垃圾邮件和正常邮件的特征向量距离,判断新邮件是否为垃圾邮件(分类任务)。
  • 推荐系统领域:根据用户的历史行为特征(如购买过的商品、浏览过的页面等),找到与之行为特征最相似的 k 个其他用户,参考这些用户购买或感兴趣的商品来为该用户推荐商品(分类或回归任务,取决于推荐的具体形式,如推荐具体商品类别或预估用户对某商品的评分等)。
  • 数据挖掘领域:寻找异常值,当某个样本的 k 个近邻与它的距离都相对较远时,可判断该样本为异常值;在生物信息学中进行基因分类,依据基因的特征向量找到相似的基因类别;还可用于财务分析,比如根据公司的财务指标特征向量,结合相似公司的情况预测本公司的财务状况等(分类或回归任务)。
特征处理
  • 数值型数据:进行标准化或归一化处理,使不同特征之间具有相同的量纲和尺度,这是因为 k 近邻算法基于距离度量,如果特征尺度差异大,会导致距离计算时某些特征权重过大,影响对样本相似性的准确判断,进而影响模型性能。同时,要进行特征选择,去除不相关或冗余的特征,以减少计算量(计算距离的复杂度与特征数量有关)和提高模型的性能;对于存在噪声的数据,可以进行平滑处理,如移动平均、中值滤波等,使数据更加平滑,减少噪声对距离计算和邻居选择的干扰。
  • 分类数据:进行编码,如独热编码、标签编码等,将分类变量转换为数值型变量,以便能够参与距离计算等操作。对于高维分类数据,可以考虑使用降维技术,如主成分分析(PCA)、线性判别分析(LDA)等,将数据映射到低维空间,降低计算复杂度,同时尽量保留数据的关键分类信息,使 k 近邻算法在处理时更加高效且能准确地找到合适的近邻样本进行分类或预测。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

对比学习损失函数 - InfoNCE

InfoNCE Loss :构建高效对比学习模型 引言 对比学习中的InfoNCE损失函数是自监督学习领域的重要进展,它通过最大化正样本对之间的相似度并最小化负样本对的相似度,有效地引导模型学习到数据的本质特征。InfoNCE不仅提高了表示学习的质量&am…

家用万兆网络实践:紧凑型家用服务器静音化改造(二)

大家好,这篇文章我们继续分享家里网络设备的万兆升级和静音改造经验,希望对有类似需求的朋友有所帮助。 写在前面 在上一篇《家用网络升级实践:低成本实现局部万兆(一)》中,我们留下了一些待解决的问题。…

【STC库函数】Compare比较器的使用

如果我们需要比较两个点的电压,当A点高于B点的时候我们做一个操作,当B点高于A点的时候做另一个操作。 我们除了加一个运放或者比较器,还可以直接使用STC内部的一个比较器。 正极输入端可以是P37、P50、P51,或者从ADC的十六个通道…

东京大学联合Adobe提出基于指令的图像编辑模型InstructMove,可通过观察视频中的动作来实现基于指令的图像编辑。

东京大学联合Adobe提出的InstructMove是一种基于指令的图像编辑模型,使用多模态 LLM 生成的指令对视频中的帧对进行训练。该模型擅长非刚性编辑,例如调整主体姿势、表情和改变视点,同时保持内容一致性。此外,该方法通过集成蒙版、…

海思Linux(一)-Hi3516CV610的开发-ubuntu22_04环境创建

目 录 前 言 一、芯片介绍 二、环境搭建 2.1 前提准备 2.2 虚拟机创建 2.3 ubuntu环境安装 2.4 基础ubuntu环境搭建 2.5 使用MobaXterm登陆ubuntu 前 言 芯片选型:HI3516CV610 选择的开发板是:酷电科技馆的Hi3516CV610-MINI开发板 上一篇文章&#xf…

vue elementUI Plus实现拖拽流程图,不引入插件,纯手写实现。

vue elementUI Plus实现拖拽流程图,不引入插件,纯手写实现。 1.设计思路:2.设计细节3.详细代码实现 1.设计思路: 左侧button列表是要拖拽的组件。中间是拖拽后的流程图。右侧是拖拽后的数据列表。 我们拖动左侧组件放入中间的流…

Spring boot 项目 Spring 注入 代理 并支持 代理对象使用 @Autowired 去调用其他服务

文章目录 类定义与依赖注入方法解析createCglibProxy注意事项setApplicationContext 方法createCglibProxy 方法 类定义与依赖注入 Service: 标识这是一个 Spring 管理的服务类。ApplicationContextAware: 实现该接口允许你在类中获取 ApplicationContext 对象,从而…

应用程序越权漏洞安全测试总结体会

应用程序越权漏洞安全测试总结体会 一、 越权漏洞简介 越权漏洞顾名思议超越了自身的权限去访问一些资源,在OWASP TOP10 2021中归类为A01:Broken Access Control,其本质原因为对访问用户的权限未进行校验或者校验不严谨。在一个特定的系统或…

JAVA:Spring Boot 集成 Quartz 实现分布式任务的技术指南

1、简述 Quartz 是一个强大的任务调度框架,允许开发者在应用程序中定义和执行定时任务。在 Spring Boot 中集成 Quartz,可以轻松实现任务的调度、管理、暂停和恢复等功能。在分布式系统中,Quartz 也支持集群化的任务调度,确保任务…

改善 Kibana 中的 ES|QL 编辑器体验

作者:来自 Elastic Marco Liberati 随着新的 ES|QL 语言正式发布,Kibana 中开发了一种新的编辑器体验,以帮助用户编写更快、更好的查询。实时验证、改进的自动完成和快速修复等功能将简化 ES|QL 体验。 我们将介绍改进 Kibana 中 ES|QL 编辑器…

【深度学习入门_基础篇】线性代数本质

开坑本部分主要为基础知识复习,新开坑中,学习记录自用。 学习目标: 熟悉向量、线性组合、线性变换、基变换、矩阵运算、逆函数、秩、列空间、零空间、范式、特征指、特征向量等含义与应用。 强烈推荐此视频: 【官方双语/合集】…

【SpringBoot】当 @PathVariable 遇到 /,如何处理

1. 问题复现 在解析一个 URL 时,我们经常会使用 PathVariable 这个注解。例如我们会经常见到如下风格的代码: RestController Slf4j public class HelloWorldController {RequestMapping(path "/hi1/{name}", method RequestMethod.GET)publ…

VBA(Visual Basic for Applications)编程|excel|一系列网址或文件路径快速转换为可点击的超链接

很多时候,我们需要把导入的数据某一列转换成超链接,比如URL形式的列。 那么,大批量的情况下,无疑一个个手动点击是非常愚蠢的办法,这个时候我们就需要VBA编程来编写宏,通过编写宏来简化这些手动操作并不现…

小程序开发全解析 快速构建高效应用的核心指南

内容概要 小程序开发是当前数字世界中炙手可热的领域,吸引了无数开发者和企业的关注。随着技术的进步,小程序成为了提升用户体验、增强品牌曝光以及增加客户互动的重要工具。了解小程序的基本概念,就像是打开了一扇通往新世界的大门。 在这…

SQL—Group_Concat函数用法详解

SQL—Group_Concat函数用法详解 在LC遇见的一道很有趣的SQL题,有用到这个函数,就借这道题抛砖引玉,在此讲解一下group_concat函数的用法。🤣 GROUP_CONCAT([DISTINCT] expression [ORDER BY expression] [SEPARATOR separator])…

Edge Scdn的应用场景有哪些?

酷盾安全Edge Scdn 具备强大的安全防护能力,通过多层防御机制,如防火墙、DDoS 攻击防护、入侵检测和防御、数据加密等,有效抵御各种网络攻击,包括 DDoS 攻击、CC 攻击、SQL 注入攻击、XSS 跨站脚本攻击等,保障网站和应…

流光效果

1、流光效果是什么 在 Unity Shader 中的流光效果是一种动态的视觉效果,通常用于给材质增加一种闪光或光线移动的效果,使物体表面看起来像是有光在流动。这种效果常用于武器光效、能量护盾、传送门等等,可以让物体看起来更加生动富有科技感 …

滑动窗口——串联所有单词的子串

一.题目描述 30. 串联所有单词的子串 - 力扣(LeetCode) 二.题目解析 题目前提:s是一个字符串,words是一个字符串数组,里面所有的字符串的长度都是相等的。 题目要求:找到s中的一段连续的子串&#xff0…

【微软,模型规模】模型参数规模泄露:理解大型语言模型的参数量级

模型参数规模泄露:理解大型语言模型的参数量级 关键词: #大型语言模型 Large Language Model #参数规模 Parameter Scale #GPT-4o #GPT-4o-mini #Claude 3.5 Sonnet 具体实例与推演 近日,微软在一篇医学相关论文中意外泄露了OpenAI及Claud…

SpringBoot Maven 项目 pom 中的 plugin 插件用法整理

把 SpringBoot Maven 项目打包成 jar 文件时,我们通常用到 spring-boot-maven-plugin 插件。 前面也介绍过,在 spring-boot-starter-parent POM 和 spring-boot-starter POM 中都有插件的管理,现在我们就撸一把构建元素中插件的用法。 一、…