[Excel]k-means聚類算法的應用,以評價現有供應商的水平為例。

2023-10-13 22:59

本文主要是介绍[Excel]k-means聚類算法的應用,以評價現有供應商的水平為例。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

聚類算法系列中,k-means聚類算法是基礎,其屬於非監督式分類算法( Unsupervised Classification)。

所謂"非監督式",即是針對一堆未知標籤的數據集做分類,結果只會告知哪些數據屬於同一群體。換句話說,只有一堆輸入數據,但無定義輸出變量,常應用於對既有數據的內在分類的探討,如對顧客購買行為的分類。

k-means聚類算法的原理,係利用數據與和質心的歐式距離為判斷依據,不斷迭代直到預設收斂值,最終取得分類結果。其中輸入變量如下:

1.預計劃分為多少群體,即k值。

2.給訂初始質心值。

3.預設收斂值,一般可用新質心和舊質心的距離小於多少來定義。

 

在企業營運中,供應商的優劣對公司營運有著舉足輕重的角色,因此各產業的質量體系中,往往有一個章節提及供應商評價的內容,如同IATF16949和ISO9001質量體系。一般會以三項指標QCD來評價供應商的優劣。

  Q:數據來源可以是由不良批次、客訴件數或是產線停線頻次的權重組合轉換而來。

  C:數據來源可以是原物料單價或每年配合降價的幅度的權重組合轉換而來。

  D:數據來源可以是準時卻未達量或是準時按量的頻次的權重組合轉換而來。

前提是各供應商的數據基礎必須一致,分析結果才有參考價值。

 

假設供應商的原始評價數據如表一,其分數定義為,該項指標越有競爭力,分數越高,滿分100分。

表一

 

a.為了避免各項指標可能因絕對數據差異過大而造成結果失真,針對表一的原始數據做歸一化處理。該案例的三項指標滿分均為100分,因此若不做歸一化前處理,也不影響結果。歸一化結果如表二。

表二

 

b.將表二的數據繪製成圖,如圖一所示。其中圓球體積為三項指標的總和(sum),換言之,由圖一可知,D供應商的綜合表最佳。

圖一

 

換個角度,A和C供應商的Quality分數最低,B供應商的Cost分數最低,均屬於單項指標較無競爭力的群體。

圖二

 

c.該案例預計將現有供應商分為三個群體(k=3),同時初始值挑選原則為最大值、中位數和最小值,因此D,E,J分別是三個水平的初始樣本。

表三

 

經過上述初始值與各個數據的距離計算,第一次計算結果,如表四所示。[OS: 數據是我用亂數產生器給的,大部分供應商都屬於Medium,挺接近現實狀態~]

表四

 

以表四的結果,重新計算三個群組的質心,如表五所示。

表五

 

一樣計算新質心和各個數據的距離,有表六結果可知,雖然質心優化後,分類結果沒有變化。[OS: 有興趣的讀者,還可以繼續迭代下去~~]

表六

 

討論:

1.或許眼尖的讀者會發現A和C供應商的Quality均為20,為所有供應商中最低分,但為何 A供應商屬於High level group,而C供應商屬於Low level group? 原因就出在k-means聚類算法是以在三維空間下,各個數據點與質心的距離來判斷歸屬群體,換言之,看的是QCD的綜合結果。

2.上述僅是利用k-means對既有供應商做聚類分析,在實際運作上,針對三項指標(QCD)進一步以層別法分類,將可有助標示出各個供應商的強項。

-----如果文章對您有幫助,打開微信掃一掃,請作者喝杯咖啡。-----

这篇关于[Excel]k-means聚類算法的應用,以評價現有供應商的水平為例。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/206447

相关文章

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Java利用poi实现word表格转excel

《Java利用poi实现word表格转excel》这篇文章主要为大家详细介绍了Java如何利用poi实现word表格转excel,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、每行对象类需要针对不同的表格进行对应的创建。package org.example.wordToEx

利用Python实现添加或读取Excel公式

《利用Python实现添加或读取Excel公式》Excel公式是数据处理的核心工具,从简单的加减运算到复杂的逻辑判断,掌握基础语法是高效工作的起点,下面我们就来看看如何使用Python进行Excel公... 目录python Excel 库安装Python 在 Excel 中添加公式/函数Python 读取

基于Python开发批量提取Excel图片的小工具

《基于Python开发批量提取Excel图片的小工具》这篇文章主要为大家详细介绍了如何使用Python中的openpyxl库开发一个小工具,可以实现批量提取Excel图片,有需要的小伙伴可以参考一下... 目前有一个需求,就是批量读取当前目录下所有文件夹里的Excel文件,去获取出Excel文件中的图片,并

Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)

《Java导入、导出excel用法步骤保姆级教程(附封装好的工具类)》:本文主要介绍Java导入、导出excel的相关资料,讲解了使用Java和ApachePOI库将数据导出为Excel文件,包括... 目录前言一、引入Apache POI依赖二、用法&步骤2.1 创建Excel的元素2.3 样式和字体2.

使用EasyExcel实现简单的Excel表格解析操作

《使用EasyExcel实现简单的Excel表格解析操作》:本文主要介绍如何使用EasyExcel完成简单的表格解析操作,同时实现了大量数据情况下数据的分次批量入库,并记录每条数据入库的状态,感兴... 目录前言固定模板及表数据格式的解析实现Excel模板内容对应的实体类实现AnalysisEventLis

python多种数据类型输出为Excel文件

《python多种数据类型输出为Excel文件》本文主要介绍了将Python中的列表、元组、字典和集合等数据类型输出到Excel文件中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一.列表List二.字典dict三.集合set四.元组tuplepython中的列表、元组、字典