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

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 阿里云PAI平台提供了大量已经封装完成可以直接使用的机器学习算法模块,本文说明KMEANS算法的原理并在原理的基础上说明PAI平台KMEANS模块中参数设置的意义,根据原理介绍算法的优点和缺点

概述:

KMEANS算法又被成为K均值算法,是一种常用的聚类算法,由于不需要根据给定的训练集训练模型因此是一种无监督学习算法。其本质是根据选定的参数K将数据分类成K类,在聚类过程中从单一样本开始通过不断计算聚类数据的均值来作为整个类的中心进而再将距离此类别中心最近的数据纳入同一类。

算法原理:

1、以下图样本散点图展示数据集的整体分布情况
KM001.png
2、K值是KMEANS最重要的选择参数,直接决定着数据聚类的类别数量,在选择K值后,会在数据中随机选择K个数据样本最为初始中心点,如K=3,则结果如下图所示
KM002.png
3、计算和中心点距离最近的点,将其归入同类
KM003.png
4、每个类别当有了两个以上的数据时,类的中心就会发生变化,因此类中一旦有新的数据被划入时就需要重新计算整个类的中心点,这一步的计算也是整个算法的核心,所以称为K均值算法
KM004.png
5、通过几步计算之后的结果,能够更直观的展示出类的聚合情况和中心点的位置情况
KM005.png
6、判断聚类过程结束的标准有两个,一是中心点的位置不再发生变化,即结果收敛;二是执行了最够多次的迭代次数(通俗可以理解为计算了几次中心点位置)
KM006.png

注意事项:

1、K值是整个算法中最重要的参数,但是也是最不好确定的参数,如果需要比较好的确定K值,需要采用其他验证算法,如计算样本离最近聚类中心的总和,总和越小,则聚类的效果越好;轮廓系数,轮廓系数的范围为-1至1之间,数字越大则聚类效果越好;兰德指数,范围为-1至1之间,数字越大则聚类效果越好;同质化得分,如果所有的聚类都只包含属于单个类的成员的数据点则聚类结果将满足同质性,其取值范围为0至1之间,值越大意味着聚类结果与真实情况越吻合。
2、以上验证方法虽然对于确定K值有效,但是验证过程需要额外的计算力资源,并且占用的计算力接近于聚类过程所需要的计算力资源,数据集如果较大,则计算力的消耗会产生叠加效应。
3、较为简易的方法为,从数据集中随机抽取部分小规模数据,以散点图等可视化手段来观察数据的可能聚类数量,以此来判断K的取值。这种方法可以认为是经验法的一种表现形式,相比经验法的完全定性分析,随机抽取数据观察能够在经验的基础上增加定量的分析部分,虽然随机抽取的数据也可能有误差,但是抽取的数据量越多,则准确度越高。
4、因为初始的中心点选择是根据K的值随机选择K个点,所以选择的随机性加上迭代过程造成算法的结果只是局部最优解,毕竟反复的计算最短距离的点和类的中心都是在局部已经聚合的类的基础上进行的,而不是从全局的范围进行。

算法使用场景:

1、隐含类别的数据较为平衡的情况,如隐含类别的数据量差别较大,则聚类的效果就较差。
2、数据最好是凸数据,即隐含类别间的差异越大,则聚类效果越好,因为中心点不再变化所需要的迭代次数较少,比较容易收敛。
3、一般作为数据预处理,或者用于辅助分类贴标签使用,因为在已经经过分类的数据上再进行聚类,准确度会非常高。

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

inputTableName :输入表表名
selectedColNames:输入表中用于训练的列名,默认选择所有列
inputTablePartitions:输入表中指定哪些分区参与训练,默认选择所有分区
centerCount:聚类数K,是算法中最重要的参数,决定数据的聚类数量
loop:最大迭代次数,算法中非常重要的参数,当最大迭代次数到达但是仍然无法收敛时,则停止计算
accuracy:中心点计算终止条件,如果两次迭代之间变化低于该值,算法终止,默认值0.0,值过大则会出现欠拟合情况,值较小则中心点容易在小范围间变化造成计算结果无法收敛
distanceType:距离度量方式,euclidean(欧式距离),cosine(夹角余弦),cityblock(曼哈顿距离),默认为欧式距离
initCenterMethod:质心初始化方法,random(随机采样),topk(输入表前k行),uniform(均匀分布),external(指定初始质心表),默认值为随机采样
initCenterTableName:初始质心表名,当质心初始化方法采用指定初始质心表方式时采用
seed:初始随机种子数,正整数,默认值为当前时间,seed设置为固定值则每次聚类结果是稳定的
enableSparse:输入表数据是否为稀疏格式, 默认值为非稀疏格式
itemDelimiter:当输入表数据为稀疏格式时,kv间的分割符,默认值为空格
kvDelimiter:当输入表数据为稀疏格式时,key和value的分割符,默认值冒号
modelName:输出模型的模型名
idxTableName:输出聚类结果表,和输入表对应,并指明聚类后每条记录所属的类号
idxTablePartition:输出聚类结果表的分区表名
clusterCountTableName :输出聚类统计表,统计各个聚类包含的点的数目
centerTableName:输出聚类中心表
coreNum:节点个数,与参数memSizePerCore配对使用,正整数,默认自动计算
memSizePerCore :单个节点内存大小,单位M,正整数,默认自动计算
lifecycle:指定输出表的生命周期,默认没有生命周期

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
相关文章
|
1天前
|
机器学习/深度学习 自然语言处理 算法
机器学习算法原理与应用:深入探索与实战
【5月更文挑战第2天】本文深入探讨机器学习算法原理,包括监督学习(如线性回归、SVM、神经网络)、非监督学习(聚类、PCA)和强化学习。通过案例展示了机器学习在图像识别(CNN)、自然语言处理(RNN/LSTM)和推荐系统(协同过滤)的应用。随着技术发展,机器学习正广泛影响各领域,但也带来隐私和算法偏见问题,需关注解决。
|
3天前
|
机器学习/深度学习 运维 算法
【Python机器学习专栏】异常检测算法在Python中的实践
【4月更文挑战第30天】本文介绍了异常检测的重要性和在不同领域的应用,如欺诈检测和网络安全。文章概述了四种常见异常检测算法:基于统计、距离、密度和模型的方法。在Python实践中,使用scikit-learn库展示了如何实现这些算法,包括正态分布拟合、K-means聚类、局部异常因子(LOF)和孤立森林(Isolation Forest)。通过计算概率密度、距离、LOF值和数据点的平均路径长度来识别异常值。
|
3天前
|
机器学习/深度学习 数据可视化 算法
【Python机器学习专栏】t-SNE算法在数据可视化中的应用
【4月更文挑战第30天】t-SNE算法是用于高维数据可视化的非线性降维技术,通过最小化Kullback-Leibler散度在低维空间保持数据点间关系。其特点包括:高维到二维/三维映射、保留局部结构、无需预定义簇数量,但计算成本高。Python中可使用`scikit-learn`的`TSNE`类实现,结合`matplotlib`进行可视化。尽管计算昂贵,t-SNE在揭示复杂数据集结构上极具价值。
|
3天前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习专栏】关联规则学习:Apriori算法详解
【4月更文挑战第30天】Apriori算法是一种用于关联规则学习的经典算法,尤其适用于购物篮分析,以发现商品间的购买关联。该算法基于支持度和置信度指标,通过迭代生成频繁项集并提取满足阈值的规则。Python中可借助mlxtend库实现Apriori,例如处理购物篮数据,设置支持度和置信度阈值,找出相关规则。
|
3天前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习专栏】层次聚类算法的原理与应用
【4月更文挑战第30天】层次聚类是数据挖掘中的聚类技术,无需预设簇数量,能生成数据的层次结构。分为凝聚(自下而上)和分裂(自上而下)两类,常用凝聚层次聚类有最短/最长距离、群集平均和Ward方法。优点是自动确定簇数、提供层次结构,适合小到中型数据集;缺点是计算成本高、过程不可逆且对异常值敏感。在Python中可使用`scipy.cluster.hierarchy`进行实现。尽管有局限,层次聚类仍是各领域强大的分析工具。
|
3天前
|
机器学习/深度学习 算法 数据挖掘
【Python 机器学习专栏】K-means 聚类算法在 Python 中的实现
【4月更文挑战第30天】K-means 是一种常见的聚类算法,用于将数据集划分为 K 个簇。其基本流程包括初始化簇中心、分配数据点、更新簇中心并重复此过程直到收敛。在 Python 中实现 K-means 包括数据准备、定义距离函数、初始化、迭代和输出结果。虽然算法简单高效,但它需要预先设定 K 值,且对初始点选择敏感,可能陷入局部最优。广泛应用在市场分析、图像分割等场景。理解原理与实现对应用聚类分析至关重要。
|
3天前
|
机器学习/深度学习 算法 前端开发
【Python机器学习专栏】集成学习算法的原理与应用
【4月更文挑战第30天】集成学习通过组合多个基学习器提升预测准确性,广泛应用于分类、回归等问题。主要步骤包括生成基学习器、训练和结合预测结果。算法类型有Bagging(如随机森林)、Boosting(如AdaBoost)和Stacking。Python中可使用scikit-learn实现,如示例代码展示的随机森林分类。集成学习能降低模型方差,缓解过拟合,提高预测性能。
|
3天前
|
机器学习/深度学习 算法 Python
【Python 机器学习专栏】随机森林算法的性能与调优
【4月更文挑战第30天】随机森林是一种集成学习方法,通过构建多棵决策树并投票或平均预测结果,具有高准确性、抗过拟合、处理高维数据的能力。关键性能因素包括树的数量、深度、特征选择和样本大小。调优方法包括调整树的数量、深度,选择关键特征和参数优化。Python 示例展示了使用 GridSearchCV 进行调优。随机森林广泛应用于分类、回归和特征选择问题,是机器学习中的重要工具。
|
3天前
|
机器学习/深度学习 算法 数据可视化
【Python机器学习专栏】决策树算法的实现与解释
【4月更文挑战第30天】本文探讨了决策树算法,一种流行的监督学习方法,用于分类和回归。文章阐述了决策树的基本原理,其中内部节点代表特征判断,分支表示判断结果,叶节点代表类别。信息增益等标准用于衡量特征重要性。通过Python的scikit-learn库展示了构建鸢尾花数据集分类器的示例,包括训练、预测、评估和可视化决策树。最后,讨论了模型解释和特征重要性评估在优化中的作用。
|
4天前
|
机器学习/深度学习 自然语言处理 算法
机器学习--K-近邻算法常见的几种距离算法详解
机器学习--K-近邻算法常见的几种距离算法详解