4.資料集群 Clustering 集群範例一:鳶尾花各種集群模型 集群範例二:動物園的動物分群 集群範例三:電信公司的客戶分群

Slides:



Advertisements
Similar presentations
1. 房产宏观资讯 2. 上海土地市场 3. 上海商业市场 4. 上海办公市场 5. 竞品项目情况 注:本周报所有数据出自于佑威.
Advertisements

從〈音樂家與職籃巨星〉談 我的人生書寫 王溢嘉 《蟲洞書簡》的寫作因緣 〈音樂家與職籃巨星〉出處:《蟲洞書簡》 1994 看到青春期的兒女 心有所感 寓意 穿越蟲洞旅行 遇到過去的自己 收信人M是我( me ) 寄信人W也是我( Wang ) 寫給兒女 年輕學子 過去的自己.
Hu Junfeng 向量空间模型及 k-means 聚类算法 胡俊峰 2016/04/19. Hu Junfeng 在 Trie 树上合并同词干的词集 — 问题分析 词干 + 后缀 词干 - 词尾变形 + 后缀 后缀表生成 结果评价? 2.
1 第十章 利润分配管理 主讲人:贾震奇 2 诱人的蛋糕,犹 豫的餐刀,如何分配, 能使效用最大,能把 蛋糕做得更大?
天文数据分析 国家天文台 赵永恒 2015年4月.
实验十十一 聚类算法.
智慧電網相關標準計畫公聽會 智慧電網相關標準制定計畫 台灣智慧型電網產業協會 中原大學 電機系 許世哲 2013 年 6 月 24 日.
多元统计分析 何晓群 中国人民大学出版社 2017/3/4 中国人民大学六西格玛质量管理研究中心.
与自然共生.
Measures of location and dispersion
自 然 探 索 圓周美語 My name is.
無線感測網路監控應用  無線感測器網路覆蓋問題  無線感測器網路資料傳輸協定  無線感測器網路中路由機制之安全與防禦
样条回归 Ruppert, D., Wand, M.P., and Carroll, R.J. (2003), Semiparametric
收益分配篇(10.2) 财务管理 退出 学习目标 新课内容 课堂练习 课后作业 经典案例 网上资讯.
第4章 聚类分析 4.1 概述 4.2 基于划分的聚类算法 4.3 层次聚类算法 4.4 基于密度的聚类算法 4.5 基于图的聚类算法
公司簡介 / 公司歷程 誠 精神 勤 創新 樸 慎 捐資興建花博流行館 2000 創辦人辭世 1991 奉准發行第一次海外公司債 1967 股票奉准上課 創立遠東針織股份有限公司 公司簡介 / 公司歷程 2011 捐資興建花博流行館 創辦人辭世 1991 奉准發行第一次海外公司債.
第十九章 聯合分析、多元尺度方法 和集群分析
第6章 字符串、数组、簇和矩阵.
第6章 字符串、数组、簇和矩阵.
Relation Detection And Recognition
商業概論 第八章 財務管理 第四節 融資.
勤學的榜樣 編寫: 張文麗老師.
九十八學年度水土保持學系 碩士在職專班 專題討論(四) 9375
数据仓库与数据挖掘 复习.
Intro. to Data Mining Chapter 3.2 clustering.
What is this animal?.
K-modes(补充) K-模,对k-平均方法的改进,k-原型的简化 处理分类属性
與國際機構建立服務學習夥伴關係 實務經驗分享
Analysis of microarray data
代谢组学(metabolomics) 中英联合实验室.
SPSS Modeler資料探勘實務基礎 資料探勘與Modeler使用介紹 資料分類-C5.0和CR&T 模型
國立政治大學 資訊科學研究所 知識系統實驗室 研究生: 鄭雍瑋 指導教授: 劉吉軒 博士 中華民國九十五年六月三十日
第十六章 集群分析.
郑贤玲 (010) 工程机械:立足内需 放眼全球.
Unsupervised Learning
第十三章 網路行銷重要議題 網際網路行銷 Web 2.0.
神经信息学 自组织网络 ——自组织映射 史忠植 中科院计算所 2019/2/2.
Chameleon: Hierarchical Clustering Using Dynamic Modeling
关注资源优势与规模优势 造纸印刷行业2006年中期投资策略
第五章 聚类方法 内容提要 聚类方法概述 划分聚类方法 层次聚类方法 密度聚类方法 其它聚类方法 2019年2月17日星期日
永豐金證券公司最高顧問 證券商公會名譽理事長
量化研究與統計分析 集群分析 Cluster analysis 謝寶煖 2006年5月27日.
第17章 集群分析 本章的學習主題  1. 集群分析的概念 2. 相似性及最近距離的衡量 3. 階層分析法 4. 非階層分析法.
聚类分析 电子工业出版社.
Cross-Selling Strategies in e-Marketing
課程七 假設檢定.
庄文忠 副教授 世新大学行政管理学系 相关分析与简单回归分析 庄文忠 副教授 世新大学行政管理学系 SPSS之应用(庄文忠副教授) 2019/4/7.
谈模式识别方法在林业管理问题中的应用 报告人:管理工程系 马宁 报告地点:学研B107
台灣鋼聯股份有限公司 法人說明會 總經理 方彥斌 博士 中華民國 108年1月23日.
本投影片修改自Introduction to Information Retrieval一書之投影片 Ch 16 & 17
期末報告 Clustering DBSCAN
第17章 集群分析 本章的學習主題  1. 集群分析的概念 2. 相似性及最近距離的衡量 3. 階層分析法 4. 非階層分析法
主講人:陳鴻文 副教授 銘傳大學資訊傳播工程系所 日期:3/13/2010
Simple Regression (簡單迴歸分析)
聚类分析法预测(Cluster Analysis)
Applied Human Computer Interaction Lecture 10 Yan Ke
第三 节 真核细胞与原核细胞 Eukaryotic cell and Prokaryotic cell 山东省实验中学
您的公司摺頁冊 這是放置公司宗旨的絕佳位置 您可以直接使用這份新穎且專 業的摺頁冊,或是輕鬆進行自 訂。
WHAT‘S FPC? 何謂軟板?.
全渠道营销产品体验流程 数字营销产品管理部 2016年10月.
Cross-Selling Strategies in e-Marketing
簡單線性迴歸 在研讀完本章之後,您應當能夠了解與熟悉: CHAPTER 11 目標 1.繪製散佈圖(Scatter Diagram)。
Chapter 10 集群分析. Chapter 10 集群分析 概念及應用 集群分析(cluster analysis)是一種用來將屬量的觀測點分群或分類的分析方法 經過集群分析分群之後,在同一群內的觀測點針對某些特性而言,會具有一致性;而分屬不同群的觀測點,針對同樣的特性則會有顯著的不同.
參考書籍:林惠玲與陳正倉(2002),應用統計學(第二版)。台北:雙葉書廊有限公司。
群聚分析操作介紹 -以SOM和K-means為例
第6章 字符串、数组、簇和矩阵.
北京师范大学珠海分校 国际特许经营学院与不动产学院 学年第二学期 欧阳顺湘
以碎形正交基底和時間情境圖為基礎進行之視訊檢索 Video retrieval based on fractal orthogonal bases and temporal graph 阿凡達 研究生:張敏倫 指導教授:蔣依吾博士 國立中山大學資訊工程學系.
多元统计分析及R语言建模 第7章 聚类分析及R使用 王斌会 教授.
資料庫應用與實作 一到六章重點、習題.
Presentation transcript:

4.資料集群 Clustering 集群範例一:鳶尾花各種集群模型 集群範例二:動物園的動物分群 集群範例三:電信公司的客戶分群 集群範例四:蛋白質攝取集群分析 4 2 3 1 集群範例三:電信公司的客戶分群

函數【kmeans】 【pamk】 【hclust】 【dbscan】檔案iris 150 records 5 fields 資料集群範例 一 函數【kmeans】 【pamk】 【hclust】 【dbscan】檔案iris 150 records 5 fields

集群分析 集群分析就是將異質的群體區隔,分成一些同質性較高的子群組或集群,不需要事先定義好該如何分類,也不需要訓練組資料,而是靠資料自身的相似性集群在一起,最常使用在市場區隔的應用上 分為分割式(Partitional)集群:K-Means和K-Medoids clustering 和非分割式(Non-Partitional)集群: Hierarchical和Density-based clustering

K-平均數(K-Means)集群 K平均法(K-means)是最受使用者歡迎以及最佳的集群分析法之一, K-Means演算法是麥昆(J. B. MacQueen)於1967年正式發表,由於原理簡單、計算快速,屬於前設式的集群演算法,也就是必須先設定集群的數量,然後根據該設定找出最佳的集群結構 分割式分群法,主要目標是在大量的資料點中找出代表性的資料點(cluster center),以少數代表點來代表大量的資料

分群注意事項 各個Cluster的大小: 要確保Cluster具代表性,原則上5-10% 為最低門檻

kmeans程式碼(iris) #kmeans iris: 150 records #iris2=iris[,sapply(iris,is.numeric)] 取所有數值資料的指令 iris2=iris[,-5] set.seed(1234) kmeans.result=kmeans(iris2,3) kmeans.result table(iris$Species,kmeans.result$cluster) plot(iris2,col=kmeans.result$cluster)

預測分群結果與叢集中心

iris的散佈圖矩陣

利用集群找出離群值 #find 5 largest distances between objects and cluster centers kmeans.result$centers centers=kmeans.result$centers[kmeans.result$cluster,] head(centers) distances=sqrt(rowSums((iris2-centers)^2)) outliers=order(distances,decreasing=T)[1:5] outliers iris2[outliers,] plot(iris2[c("Sepal.Length", "Sepal.Width")], col=kmeans.result$cluster) points(kmeans.result$centers[,c("Sepal.Length", "Sepal.Width")], col=1:3, pch=8, cex=2) points(iris2[outliers,c("Sepal.Length", "Sepal.Width")], col=4, pch='+', cex=2)

找出5個離群值

離群值和集群中心

K-物件(K-Medoids)集群 以集群中最具代表性的點Medoid作為集群中心,亦即利用真正的物件代表集群 K-Medoids最經典演算法是分割環繞物件(PAM,Partitioning Around Medoids),由Kaufman and Rousseeuw於1987年提出 可使用cluster套件的pam函數 或fpc套件的pamk函數,使用此函數時,使用者不必決定分成幾組,但結果不一定理想

pamk的程式碼(自動分2群) iris2=iris[,-5] library(fpc) pamk.result=pamk(iris2) table(iris$Species, pamk.result$pamobject$clustering) layout(matrix(c(1,2),1,2)) plot(pamk.result$pamobject) layout(matrix(1))

pamk執行結果

pamk集群圖0.69=(51*0.81+99*0.62)/150

pam的程式碼(設定成3群) iris2=iris[,-5] library(cluster) pam.result=pam(iris2,3) pam.result table(iris$Species,pam.result$clustering) layout(matrix(c(1,2),1,2)) plot(pam.result) layout(matrix(1))

pam函數執行結果

pam函數集群圖

Silhouette Measure Silhouett係數是用來比較集群模型的準則,計算每筆紀錄(B-A)/max(A,B)的平均值 Silhouett係數範圍在-1 (非常差的模型)和1 (非常好的模型)之間,可丟棄Silhouett係數為負值的模型

NbClust分群指標 亦可使用NbClust 套組的NbClust函數協助使用者決定分群的數目 程式碼如下: library(NbClust) iris2=iris[,-5] result=NbClust(iris2,distance="euclidean",min.nc=2,max.nc=6,method="kmeans", index="all") Result$Best.partition

分群指標執行結果

階層式(Hierarchical)集群 以階層架構的方式反覆進行分裂或聚合 ,以產生最後的樹狀架構,可從樹狀圖取得任何想要的集群數,缺點是只適合小量資料 常見的階層式集群法包括: method=”average“,平均距離的平均連鎖法 method=”simple“,最小距離的單一連鎖法 method=”complete“,最大距離的完全連鎖法 method=”ward.D“或 "ward.D2",Ward的最小變異法

階層式集群程式碼 iris2=iris[,-5] index=sample(1:nrow(iris2),40) #抽取40筆 irissample=iris2[index,] hclust.result=hclust(dist(irissample),method= “ward.D2”) #dist函數 distance matrix compute hclust.result plot(hclust.result,labels=iris$Species[index]) rect.hclust(hclust.result,k=3,border="red") groups=cutree(hclust.result,k=3) table(iris$Species[index],groups)

階層式集群執行結果

階層式集群樹狀圖

密度基礎(Density-based)集群 fpc套件的DBSCAN演算法可提供數值資料的密度基礎集群 DBSCAN的兩個重要參數: eps:可達區域,定義鄰近地區的大小 MinPts:可達區域的最小點數 如果某個點鄰近地區的點數大於minPts ,那麼這個點就是一個密度點,所有從這個點可達的鄰近地區的點就被分成同一個集群

dbscan的程式碼 #dbscan iris: 150 records iris2=iris[,-5] library(fpc) dbscan.result=dbscan(iris2,eps=0.42,MinPts=5) dbscan.result table(iris$Species, dbscan.result$cluster) plot(dbscan.result,iris2) plot(dbscan.result,iris2[c(1,4)]) plotcluster(iris2,dbscan.result$cluster)

dbscan的執行結果 0表示離群值的集群 預測結果有3個離群值歸為集群0

dbscan集群圖

放大的dbscan集群圖

dbscan分成4個集群

dbscan預測的程式碼 #predict irisnew2.txt 10 records irisnew2=read.table("d:\\stella\\R\\iris_new2.txt",header=T, sep=",") irisnew2=na.exclude(irisnew2) pred=predict(dbscan.result,iris2,irisnew2) pred plot(dbscan.result,iris2[c(1,4)]) points(irisnew2[c(1,4)], pch="*", col=1+pred, cex=3)

預測到3個離群值的集群0(黑色)

函數【kmeans】檔案zoo.txt 101 records 18 fields 資料集群範例二 函數【kmeans】檔案zoo.txt 101 records 18 fields

動物園的動物分群應用 本範例的動物分群資料,取自美國加州大學歐文分校的機械學習資料庫,將動物分為7群http://archive.ics.uci.edu/ml/datasets/Zoo 這個動物園的動物資料集包含了101筆的紀錄,資料當中包含了如下所列的18個欄位: 1. 動物的名字(animal name):唯一值 2. 是否具有毛髮(hair):Boolean值 3. 身體是否有羽毛(feathers):Boolean值 4. 是否會下蛋(eggs):Boolean值 5. 是否會產奶(milk):Boolean值 6. 是否在空中(airborne):Boolean值

7. 是否在水中(aquatic):Boolean值。 8. 是否會獵食(predator):Boolean值。 9 7. 是否在水中(aquatic):Boolean值。 8. 是否會獵食(predator):Boolean值。 9. 是否有牙齒(toothed):Boolean值。 10. 是否有骨幹(backbone):Boolean值。 11. 是否會呼吸(breathes):Boolean值。 12. 是否有毒(venomous):Boolean值。 13. 是否有鰭(fins):Boolean值。 14. 腿的數量(legs):{0,2,4,5,6,8}集合的數字。 15. 是否有尾巴(tail):Boolean值。 16. 是否被馴化(domestic):Boolean值。 17. 是否屬貓科(catsize):Boolean值。 18. 類型(type):在[1,7]範圍內的整數值

kmeans程式碼(zoo) #zoo: 101 records zoo=read.table("d:\\stella\\R\\zoo.txt",header=T,sep=",") zoo=na.exclude(zoo) #kzoo=zoo[,sapply(zoo,is.numeric)] 取所有數值資料 kzoo=zoo[,-c(1,18)] set.seed(777) kresult=kmeans(kzoo,7) kresult table(kresult$cluster) table(zoo$type,kresult$cluster) kresult$size pie(kresult$size)

預測分群結果與叢集中心

矩陣分析結果

函數【kmeans】檔案churn.txt 1477 records 16 fields 資料集群範例三 函數【kmeans】檔案churn.txt 1477 records 16 fields

電信公司的客戶分群 以churn.txt這三個數值欄位當作分群模型的輸入

分群執行程式碼 churnall=read.table("d:\\stella\\R\\churn.txt",header=T, sep=",") churnall=na.exclude(churnall) churn=churnall[,c(2:4)] churn.result=kmeans(churn,5) table(churn.result$cluster) pie(table(churn.result$cluster)) table(churnall$CHURNED,churn.result$cluster) barplot(table(churnall$CHURNED,churn.result$cluster), col=2:4) legend(0,600,c("Current","Invol","Vol"),col=2:4,pch=15) head(churnall[churn.result$cluster==4,]) #Invol都在群集4

分群執行結果

檢視模型叢集大小

CHURNED在叢集中的分配圖

Modeler叢集大小

CHURNED在叢集中的分配圖

離群值與極端值偵測 #Univariate Outlier Detection boxplot.stats(churn[,3])$out outliers=which(churn[,3] %in% boxplot.stats(churn[,3])$out) outliers extremes=subset(churn,churn[,3]>sd(churn[,3]*5)) extremes boxplot(churn[,3])

找出離群值與極端值

函數【pamk】 【kmeans】 檔案protein.txt 25 records 10 fields 資料集群範例四 函數【pamk】 【kmeans】 檔案protein.txt 25 records 10 fields

蛋白質攝取集群分析程式碼 proteinall=read.table("d:\\stella\\R\\protein.txt",header=T) (proteinall=na.exclude(proteinall)) protein=proteinall[,c(2:3)] library(fpc) protein.result=pamk(protein) protein.result$nc protein.result=kmeans(protein,3) #nc table(protein.result$cluster) df=data.frame(protein,Country= proteinall$Country,Cluster=protein.result$cluster) df[order(df$Cluster),] plot(protein,col=df$Cluster)

蛋白質攝取的檔案 *以紅肉白肉進行集群分析

蛋白質攝取集群分析結果 1紅白肉攝取少(北歐 地中海) 2白肉攝取多紅肉攝取少(東歐) 3紅白肉攝取多(西歐)

蛋白質攝取集群分析圖