iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
AI & Data

一同來挖掘 0 程式的Orange!系列 第 20

〔Day20〕在Orange中玩玩K-means帶來的效果

  • 分享至 

  • xImage
  •  

來到了鐵人賽的2/3天數了!再撐十天就可以完賽啦~好興奮壓>□< 我們要堅持下去壓,我相信若有看完的你們,一定會感到很充實der!
準備好,我們就繼續開始拉~~/images/emoticon/emoticon35.gif

手動繪製數據圖

不知道大家還記不記得第18篇講述PCA時,我們有用到「Paint Data」這個組件繪圖,那今天一樣我們會先用它來初步感受K-means的分群畫面。
首先,我自己畫出了,以人眼看為三個很明顯的群集。

https://ithelp.ithome.com.tw/upload/images/20221005/20151063tU2TyVfp4e.png

查看K-means演算法於Scatter Plot呈現

再來,我將它連接至「K-means」,以及再用「Scatter Plot」視覺化呈現對照看。
https://ithelp.ithome.com.tw/upload/images/20221005/20151063ZMzLCh2NWF.png

若是我手動更改群集數,那們是在呈現上K-means將會如何分群。
那在我們調整過程中,會發現在我們調整為三個群集時,它可以如我們所期待很好地將它們分類好。

https://i.imgur.com/nzAs61s.gif

由電腦判讀最佳群集數

在前面,我們皆是以自己分配的方式來去看群集最佳的數目,那在Orange中,我們可以運用群集的評分機制,來去更改群集數,進而找到其最良好地群集數。
那我們評分機制,則是用Silhouette analysis(輪廓係數法),會顯示每個數據點擬合群集的評分,依照評分得到最佳分群。

補充說明 Silhouette analysis
其概念為 (找出同群資料點內最近)/(不同群越分散) 的值,而它滿足群集的定義,我們可以用以下公式來了解一下。

  • a: 同群間的距離

  • b: 不同點間的點平均距離

  • S:越大越好,代表著分的也越清楚

    https://ithelp.ithome.com.tw/upload/images/20221005/20151063ZYsjKr5cM5.png

於K-Means組件中,點擊下方「From」,就會看到它自動幫你判定最佳群集數,右方數字也就是S值。

https://ithelp.ithome.com.tw/upload/images/20221005/20151063BkpGpZgo1E.png

再來,我們可以打開「Paint Data」測試它判斷其準度。(這個步驟我覺得很有趣,邊玩邊學的概念~

https://i.imgur.com/RxtX9sH.gif

Scatter Plot變得很繽紛捏╰(ˊˇˋ)╯

https://ithelp.ithome.com.tw/upload/images/20221005/20151063Ie6BpNIhNp.png

但我上面畫的皆是故意用一群群地,讓它很好辨識,倘若用其它圖案呢?
我畫出一個笑臉來,這裡來說,以人眼判定會是三堆,但K-means卻認定為六個,因為它的演算法,是依據距離較近的族群為一個群集,固然在判斷上K-means比較適用於球形(成堆)的數據點,若為其它形狀,則很容易判斷錯誤

https://i.imgur.com/BfIZYCw.gif

https://ithelp.ithome.com.tw/upload/images/20221005/20151063k1hNmjBM3Y.png

真實數據導入

接下來,我們將運用真實數據進行分群看看。而這次用的數據一樣是從「Datasets」中的「Housing」(沿用第十九篇有用到的數據,那邊也有這個數聚集更詳細屬性的中文資訊)。

https://ithelp.ithome.com.tw/upload/images/20221005/20151063VGFqgGxkLD.png

選好後,我們先設定兩群集,那因為其數據為迴歸型,所以我們用「Box Plot」來看它的效果!
https://ithelp.ithome.com.tw/upload/images/20221005/20151063veekyohX1U.png

從以下GIF可以看出,當中個屬性間的數據集,都蠻分離的,重疊的比沒重疊到的數據少,看來分群效果應該會比較分明些。

https://i.imgur.com/GEGftxO.gif

我們用之前說過的MDS看看吧!
從以下圖示來看,有些資料雖然K-means沒分好,但以大部分的數據可以明顯看出為兩大群。

https://ithelp.ithome.com.tw/upload/images/20221005/20151063gqZafY1bPo.png

好哩~終於完成今天大篇幅的解說,希望大家也可以嘗試看看不同的文件玩玩看,跟我一樣邊學邊玩啦!/images/emoticon/emoticon07.gif

參考資料:
Orange
Kmeans分群演算法 與 Silhouette 輪廓分析


上一篇
〔Day19〕如何找出最佳屬性-Box Plot、Distribution
下一篇
〔Day21〕了解K-means的底層運作-Educational
系列文
一同來挖掘 0 程式的Orange!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言