机器学习算法—KNN算法原理及阿里云PAI平台算法模块参数说明

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 阿里云PAI平台提供了大量已经封装完成可以直接使用的机器学习算法模块,本文说明KNN算法的原理并在原理的基础上说明PAI平台KNN模块中参数设置的意义,根据原理介绍算法的优点和缺点

概述:

KNN算法一般也会经常被称为K邻近算法,其核心思想是根据训练集中的样本分类计算测试集中样本与训练集中所有样本的距离,根据所设定的K值选取前K个测试样本与训练样本最近的结果,结果中大多数训练样本所处在的类别即是本测试样本的类别。因训练样本的分类结果为已知因此KNN算法属于有监督学习算法。

算法原理:

1、以下图样本散点图展示训练集的整体分布情况
image.png
从散点图中可以发现训练集的数据分类数量为3个类别,分别为蓝色类别、红色类别和黄色类别,训练样本总数为15个。
2、导入第一个测试样本
image.png
3、需要根据已知的训练样本分类结果判断测试样本的类别,因此计算测试样本与所有训练样本的距离
image.png
因训练样本数量为15,所以计算完成的距离参数为15个。
4、K值是KNN算法中唯一需要设定的参数,假定K值为3则在15个距离参数中选择最近的3个
image.png
统计3个距离中大部分训练样本所处的分类即为本测试样本的分类,本次分类中距离最近的3个训练样本有2个属于红色类别,因此本测试样本被分类为红色
image.png
5、对下一个测试样本以相同方式进行距离计算和分类
image.png

注意事项:

1、K的取值尽量为奇数以确保距离计算结果必定会有一个K个距离中包括较多的类别,比如例子中取3,则3个中有2个训练样本为红色类别以此判断测试样本属于红色类别。如K取4产生下图中的情况
image.png
4个距离参数中,2个训练样本为红色类别,2个训练样本为蓝色类别,会对预测产生不利效果
2、K取值过小时,较容易受噪声影响而导致误分类
image.png
如图中黄色类别中有一个异常数据,如果K取值为1,则测试样本因与此异常数据距离最近,而被分类为黄色类别,从散点图中可以看到,如K为3以上,则应被分类为红色类别,因此K取值过小容易导致由过拟合而引起的误分类。
3、K取值过大时,较容易受距离较远训练样本影响而导致由欠拟合产生的误分类,极端情况下,本文的例子中如果K取值为15,则代表蓝、黄、红,哪个类别的点多测试样本就被分类为哪个样本,因此K不能等于N。

算法的使用场景:

1、适合用于类别间差异较大,同类别间数据差异较小的场景
2、对于类别间的界限不清晰的场景,效果好于基于线性分类的逻辑回归
3、单个测试样本计算都需要计算与训练集中所有训练样本的距离,在数据量较大时会占用非常多的计算力并增加计算时间
4、对于各个类别中数据数量差异较大的场景效果较差,特别在K取值又较大时,占数量优势的类别对于结果的影响非常明显

阿里云PAI平台算法模块及参数设置说明:

image.png
trainTableName:训练表的表名
trainFeatureColNames:训练表中的特征列名,即训练表是根据哪些特征来进行分类的
trainLabelColName:训练表中标签列的列名,即训练表中的分类结果
trainTablePartitions:训练表中指定哪些分区
predictTableName:预测表的表名
outputTableName:输出表的表名
predictFeatureColNames:预测表中特征列名 ,默认与trainFeatureColNames相同,如果数据预处理做得较好,训练集和测试集中的特征列名本来就是应该相同的
predictTablePartitions:预测表中指定哪些分区参与预测,默认为所有partitions
appendColNames:输出表中附加预测表的列名,默认与predictFeatureColNames相同
outputTablePartition:输出表分区,默认输出表不分区
K:是整个算法中唯一需要选择的参数,在模块中为可选项因为K的取值模块中默认为100,最适合的K值需要根据预测结果来进行确定
enableSparse:输入表数据是否为稀疏格式
itemDelimiter:当输入表数据为稀疏格式时,kv间的分割符,默认值为空格
kvDelimiter:当输入表数据为稀疏格式时,key和value的分割符,默认值冒号
coreNum:节点个数,与参数memSizePerCore配对使用,默认自动计算
memSizePerCore :单个节点内存大小,单位为MB 正整数,默认自动计算
lifecycle:指定输出表的生命周期

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
相关文章
|
2天前
|
人工智能 调度 芯片
PAI训练服务:云上大模型训练新篇章
本文介绍了通用AI时代下的新训练方法及PAI平台的优化。随着大模型时代的到来,算力需求激增,硬件和网络通信成为瓶颈。PAI平台通过自动容错、3D健康检测等技术确保训练稳定性;通过资源配额、智能调度等提高性价比;并推出PAI-TorchAcc和PAI-ChatLearn两大引擎,分别实现高效训练加速和灵活的对齐训练,显著提升训练性能与效果。这些改进解决了大规模AI训练中的关键问题,提升了效率和稳定性。
|
3天前
|
机器学习/深度学习 人工智能 算法
机器学习算法的优化与改进:提升模型性能的策略与方法
机器学习算法的优化与改进:提升模型性能的策略与方法
39 13
机器学习算法的优化与改进:提升模型性能的策略与方法
|
5天前
|
人工智能 JSON 算法
魔搭支持在阿里云人工智能平台PAI上进行模型训练、部署了!
现在,魔搭上的众多模型支持在阿里云人工智能平台PAI-Model Gallery上使用阿里云算力资源进行模型训练和部署啦!
|
3天前
|
存储 算法 安全
基于哈希表的文件共享平台 C++ 算法实现与分析
在数字化时代,文件共享平台不可或缺。本文探讨哈希表在文件共享中的应用,包括原理、优势及C++实现。哈希表通过键值对快速访问文件元数据(如文件名、大小、位置等),查找时间复杂度为O(1),显著提升查找速度和用户体验。代码示例展示了文件上传和搜索功能,实际应用中需解决哈希冲突、动态扩容和线程安全等问题,以优化性能。
|
1月前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
18天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
60 3
|
19天前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
41 2
|
1月前
|
算法
基于GA遗传算法的PID控制器参数优化matlab建模与仿真
本项目基于遗传算法(GA)优化PID控制器参数,通过空间状态方程构建控制对象,自定义GA的选择、交叉、变异过程,以提高PID控制性能。与使用通用GA工具箱相比,此方法更灵活、针对性强。MATLAB2022A环境下测试,展示了GA优化前后PID控制效果的显著差异。核心代码实现了遗传算法的迭代优化过程,最终通过适应度函数评估并选择了最优PID参数,显著提升了系统响应速度和稳定性。
150 15
|
2天前
|
人工智能 容灾 Serverless
AI推理新纪元,PAI全球化模型推理服务的创新与实践
本次分享主题为“AI推理新纪元,PAI全球化模型推理服务的创新与实践”,由阿里云高级产品经理李林杨主讲。内容涵盖生成式AI时代推理服务的变化与挑战、play IM核心引擎的优势及ES专属网关的应用。通过LM智能路由、多模态异步生成等技术,PAI平台实现了30%以上的成本降低和显著性能提升,确保全球客户的业务稳定运行并支持异地容灾,目前已覆盖16个地域,拥有10万张显卡的推理集群。
|
1月前
|
算法
基于大爆炸优化算法的PID控制器参数寻优matlab仿真
本研究基于大爆炸优化算法对PID控制器参数进行寻优,并通过Matlab仿真对比优化前后PID控制效果。使用MATLAB2022a实现核心程序,展示了算法迭代过程及最优PID参数的求解。大爆炸优化算法通过模拟宇宙大爆炸和大收缩过程,在搜索空间中迭代寻找全局最优解,特别适用于PID参数优化,提升控制系统性能。