SlideShare a Scribd company logo
布丁布丁吃布丁
2019年8月9日
WEKA簡介與實作
Chapter 2.
探索性與比較性分析
課程大綱 (1/2)
1. 認識Weka
2. Weka的資料來源
3. 準備Weka:
下載、安裝與設定
4. 認識Weka架構
2
Chapter 1.
認識Weka
5. 探索性分析:分群
6. 探索性分析:異常偵測
7. 比較性分析:
關聯規則探勘
Chapter 2.
探索性與比較性分析
課程大綱 (2/2)
3
10.Weka的進階應用
11.結語
Chapter 4.
進階應用與結語
8. 預測性分析:分類
9. 預測性分析:迴歸
Chapter 3.
預測性分析
4
探索性分析 分群
Part 5.
如何探索資料
的共同模式?
分群
5
上級交代的任務
「你能簡單地描述一下這群學生嗎?」
6
如何描述所有學生的
性別屬性?
7
如何描述所有學生的
性別與年齡屬性?
Age
人數
8
如何描述所有學生的
性別、年齡、住處等30種屬性?
Age
人數Gender
Address
ChoSchReason
等等,太複雜了!
9
Cascade Simple K Means
層疊式K平均法
(T. Caliński & J. Harabasz, 1974)
群集分析演算法
10
K平均法
演算法目標
距離短 距離長
將資料點分成k個分群
各分群的群集中心與其資料點距離最短、群集之間距離最長
群集中心即是每個分群的平均數
11
群集中心
中心
12
K平均法
演算法流程 (1/2)
輸入:資料集合、使用者定義之群集數量k
輸出:k個互不交集的群集
1. 隨機從資料集合中選擇任k個資料點當作起始k群的群集中心
2. 利用相似度計算公式,將資料點分別歸屬到距其最近之群集中心
所屬的群集,形成k個群集。
3. 利用各群集中所含的資料點,重新計算各群集之群集中心點
4. 條件判斷:
a. 假如由步驟3所得到各群之群集中心與之前所計算之群集中
心相同,則表示分群結果已穩定,並結束此處理程序並輸出
各群結果
b. 否則回到步驟2繼續執行
13
K平均法
演算法流程 (2/2)
不斷迭代
14
如何選擇分群數量K?
15
評估分群品質
CH指標 (Calinski-Harabasz)
CH指標
trace B:各群之間的距離 (越大越好)
16
群集中心
的中心
17
CH指標
trace W:群內各點的距離 (越小越好)
18
分群數量k與CH指標的變化
k=7
CH=388.69
1. 下載與開啟檔案
2. 資料前處理:
a. 關閉目標屬性
b. NominalToBoolean
3. 執行分群:AddCluster →
CascadeSimpleKMeans
4. 檢視探勘結果:
Weka分群結果分析器
19
探索性分析:分群
實作步驟
STEP 1. 下載與開啟檔案 (1/4)
20
stu-sch-
1 - train.ods
STEP 1. 下載與開啟檔案 (2/4)
1. Open file…
開啟檔案
21
1
STEP 1. 下載與開啟檔案 (3/4)
2. Look in:
移動到下載資料夾
3. Files of Type:
ODF Spreadsheets
(*.ods)
開啟ODF檔案類型
※ 需安裝套件WekaODF
4. 選擇檔案
stu-sch-1 - train.ods
5. Open 開啟檔案
22
2
3
4
5
STEP 1. 下載與開啟檔案 (4/4)
23
stu-sch-
1 - train.ods
探索器介面說明
前處理 (Preprocess) (1/2)
A. Filter 過濾器
B. Current relation
資料整體狀況
C. Attributes
屬性列表
24
A
B
C
探索器介面說明
前處理 (Preprocess) (2/2)
D. Selected atttribute
所選屬性的資料分佈
E. Class 目標屬性
F. 所選屬性的視覺化圖
表
25
D
E
F
STEP 2a. 資料前處理
關閉目標屬性
● 將目標屬性Class
改選為No class
※ 探索性分析不使用目標屬性
26
!
27
STEP 2b. 資料前處理
類別轉虛擬變項 (1/5)
1. 按Filter 底下的 Choose
選擇篩選器
2. 找到篩選器
weka.filters.unsupervised
.attribute.NominalToBinary
1
2
28
STEP 2b. 資料前處理
類別轉虛擬變項 (1/5)
1. 按Filter 底下的 Choose
選擇篩選器
2. 找到篩選器
weka.filters.unsupervised
.attribute.NominalToBinary
用錄影示範操作吧!
29
STEP 2b. 資料前處理
類別轉虛擬變項 (2/5)
3. 按下粗體字的篩選器名稱
NominalToBinary
開啟進階設定
3
30
STEP 2b. 資料前處理
類別轉虛擬變項 (3/5)
4. 將
transformAllValues
設為True
執行虛擬變項轉換
5. OK 離開進階設定4
5
想知道進階設定每個欄位的意思?
Information有說明
31
32
STEP 2b. 資料前處理
類別轉虛擬變項 (4/5)
6. 按下Apply
套用篩選器
6
33
STEP 2b. 資料前處理
類別轉虛擬變項 (5/5)
7. Attributes: 56
屬性數量增加
從30變成56個
8. 類別型屬性Gender
被轉換成兩個數值
型屬性
a. Gender=female
b. Gender=male
8
7
34
STEP 3. 執行分群 (1/7)
1. Filter ⇨ Choose
選擇篩選器
weka.filters.unsupervised
.attribute.AddCluster
1
STEP 3. 執行分群 (2/7)
2. 按下粗體字的篩選器
名稱
AddCluster
開啟進階設定
35
2
STEP 3. 執行分群 (3/7)
3. 將
clusterer
分群演算法選擇
weka.clusterers
.CascadeSimpleKMeans
4. OK 離開進階設定
※ 需安裝套件cascadeKMeans
36
4
3
STEP 3. 執行分群 (4/7)
5. 按粗體字
CascadeSimpleKMeans
開啟進階設定
37
STEP 3. 執行分群 (5/7)
在maxNumClusters跟
minNumClusters裡面可以
設定最多和最少的分群數量。
預設值會讓分群數量介於2至
10之間。
如果沒有特別要修改的話,
6. OK 離開進階設定
38
6
!
STEP 3. 執行分群 (6/7)
7. 按下Apply
套用篩選器
39
7
STEP 3. 執行分群 (7/7)
8. Attributes: 57
屬性數量增加
從56變成57個
9. 新增了cluster類別型
屬性
10.所有資料被分成兩群
cluster1: 共252筆
cluster2: 共333筆
40
7
8
6
41
STEP 4. 檢視探勘結果 (1/6)
1. Save 儲存檔案
1
STEP 4. 檢視探勘結果 (2/6)
2. Look in:
移動到下載資料夾
3. File Name 檔案命名
stu-sch-1 - train -cluster.csv
2. Files of Type:
CSV file: comma
separated files (*.csv)
以CSV檔案類型儲存
3. Save 儲存檔案
此資料夾就會產生
CSV檔案
42
2
4
5
stu-sch-1
- train - cluster.csv
3
STEP 4. 檢視探勘結果 (3/6)
5. 開啟Weka分群結果分析器
43
Weka
分群結果分析器
5
STEP 4. 檢視探勘結果 (4/6)
6. 選擇檔案
選擇剛剛儲存的
CSV檔案
44
6
stu-sch-1
- train - cluster.csv
STEP 4. 檢視探勘結果 (6/6)
7. 分群比較表
查看各分群大於
和小於全部資料
均值的屬性
8. 舉例:
● 第2群的Age大於
平均值
● 表示第2群的年齡
較大
45
7
8
STEP 4. 檢視探勘結果 (6/6)
9. 分群結果
查看各屬性在
各群中的平均
值和標準差
10.舉例:
● 第2群的Age大
於平均值為16.8
● 比第1群的16.6
還要大一點
46
9
10
47
我們可以把相似的學生分成兩群
第1群
● 大多為男性
● 更多是住市區
● 家庭成員偏3人以下
● 雙親大多同住
● 母親教育程度相對較高
…...
第2群
● 大多為女性
● 年齡較大
● 更多是住鄉村
● 家庭成員偏大於3人
● 雙親大多分居
● 較多母親在家工作
…...
48https://www.kapwing.com/explore/drake-reaction-meme-maker
Age
人數
第1群 第2群
49
能否調整為容易詮釋的分群數量?
在前面 STEP 3.
CascadeSimpleKMeans
進階設定中
● maxNumClusters:
分群數量��限
● minNumClusters:
分群數量下線
建議設定為7~3比較好解釋
!
50
探索性分析:異常偵測
Part 6.
如何找出資料裡
的異常個案?
異常偵測
51
裡面是不是有人怪怪的?
https://srdatw.blogspot.com/2002/12/normal-0-0-2-false-false-false-en-us-zh.html
你是如何做問卷調查的邏輯檢查?
52
你確定螢幕後面的是人嗎?
https://www.daskeyboard.com/blog/cats-and-keyboards-a-guide-to-protecting-your-keyboard-from-feline-companions/
53
Local Outlier Factor
區域異數因素
(Breunig, et al., 2000)
異常偵測演算法
54
局部異數因素
演算法目標
https://medium.com/@arunm8489/local-outlier-factor-13784dc1992a
LOF = 相較於它周圍的鄰居,它異常的程度
異常案例?
異常案例
55
LOF計算公式
https://www.wikiwand.com/en/Local_outlier_factor
計算A的異常程度 (LOF) =
比較 A所在的的密度
和 A的鄰居所在的密度
56
不同資料分佈的LOF
https://www.slideshare.net/DaeJinKim22/outlier-detection-method-introduction-129968281
LOF 高
表示它的密度
低於它的鄰居
LOF 低
表示它的密度
接近它的鄰居
LOF 低
表示它的密度
接近它的鄰居
57
LOF與次數分配圖
https://www.wikiwand.com/en/Local_outlier_factor
LOF > 1
表示它的密度
低於它的鄰居
LOF
案例
數量
LOF ~ 1
表示它的密度
接近它的鄰居
LOF < 1
表示它的密度
高於它的鄰居
1. 下載與開啟檔案
2. 資料前處理:關閉目標屬性
3. 執行異常偵測:LOF
4. 檢視探勘結果:LibreOffice
Calc → AutoFilter
58
探索性分析:異常偵測
實作步驟
※ 跟前面是同一個檔案
STEP 1. 下載與開啟檔案 (1/2)
59
stu-sch-
1 - train.odsl.pulipuli.info/19/nckm
STEP 1. 下載與開啟檔案 (2/2)
60
stu-sch-
1 - train.ods
STEP 2. 資料前處理
關閉目標屬性
● 將目標屬性Class
改選為No class
※ 探索性分析不使用目標屬性
61
!
62
STEP 3. 執行異常偵測 (1/3)
1. Filter ⇨ Choose
選擇篩選器
weka.filters.unsupervised
.attribute.LOF
※ 需安裝套件localOutlierFactor
1
2. 按下Apply
套用篩選器
63
STEP 3. 執行異常偵測 (2/3)
2
64
STEP 3. 執行異常偵測 (3/3)
4
53
3. Attributes: 31
屬性數量增加
從30變成31個
4. 新增了LOF數值型屬
性
5. 查看LOF資料分佈
○ 最小值 0.983
○ 最大值 1.25
65
STEP 4. 檢視探勘結果 (1/7)
1. Save 儲存檔案
1
66
STEP 4. 檢視探勘結果 (2/7)
2. Look in:
移動到下載資料夾
3. File Name: 檔案命名
stu-sch-2 - train - lof.ods
2. Files of Type:
ODF Spreadsheets (*.ods)
以ODS檔案類型儲存
3. Save 儲存檔案
此資料夾就會產生ODS
檔案
2
5
3
4
stu-sch-1
- train - lof.ods
67
STEP 4. 檢視探勘結果 (3/7)
6. 用LibreOffice開啟
ODS類型檔案
stu-sch-1
- train - lof.ods
6
68
STEP 4. 檢視探勘結果 (4/7)
7. Open Copy
以副本模式開啟
(因為Weka程式
鎖定了原本的ODS檔案)
7
LibreOffice Calc介面說明
69
A. 功能群組頁籤
B. 功能按鈕
C. 資料表
A
B
C
STEP 4. 檢視探勘結果 (5/7)
8. Data
開啟資料的功能群組頁籤
9. AutoFilter
啟動自動篩選功能
70
8
9
STEP 4. 檢視探勘結果 (6/7)
10.找到最後一個直欄
LOF
點下右邊的下拉選單
按鈕
11.選擇排序
○ Sort Ascending
由小到大排序
○ Sort Descending
由大到小排序
71
10 11
STEP 4. 檢視探勘結果 (7/7)
72
LOF由大到小排序結果
LOF由小到大排序結果
73https://www.roblox.com/library/1664931194/THINKING-EMOJI-IS-A-MEME-thinking
LOF
家庭關係
Fami
Relation
(1-5)
自由程度
Freetime
(1-5)
出外程度
GoOut
(1-5)
平日飲酒
程度
Alc
Workday
(1-5)
週末飲酒
程度
Alc
Weeken
(1-5)
健康狀況
Health
Status
(1-5)
1.25 5 4 4 5 5 1
1.22 5 5 5 5 5 5
0.99 4 2 2 1 1 5
0.99 4 2 3 1 1 5
LOF分數大於1:表示異常
LOF分數接近1:表示普通
74https://page1recruitment.co.uk/stand-out-from-the-crowd
Gotcha!
LOF
1.25
75
比較性分析
Part 7.
關聯規則探勘
如何找出跟特定類別
最相關的屬性規則?
76
兩間葡萄牙的學校
MS: Mousinho da Silveira
GP: Gabriel Pereira
77
兩間學校的學生有什麼不同?
MSGP
78
HotSpot (Patient Rule Induction Method, PRIM)
熱點分析
(Friedman & Fisher, 1999)
關聯規則探勘演算法
● 根據使用者所感興趣的目標屬性與項目,找出最能代表
該屬性與項目的關聯規則
● 關聯規則的組成:
79
熱點分析
演算法目標
購買尿布 = Yes
Left-Hand-Side
LHS 前提規則
購買啤酒 = Yes
Right-Hand-Side
RHS 結果規則
信賴度= 0.77, 增益度 = 1.18
Metric Type
評估指標
𝑝 維度空間超立方範圍 𝑩𝑖 = 𝑺
這是資料中所有可能的組成範圍,要如何找到最適合的超立方範圍B呢?
80
熱點分析
演算法流程 (1/6)
(Trainor, 2014)
🔴 目標屬性=目標值
⬛ 目標屬性≠目標值
列舉所有候選的子超立方範圍
1. 對每個數值型的目標屬性來說
產生子範圍
以及
而
𝛳則是去除極端值的百分位數
2. 對每個類別型的目標屬性中 𝑚 值來說
產生子範圍
而
81
熱點分析
演算法流程A (2/6)
(Trainor, 2014)
3. 產生子範圍集合為
4. 定義
而
82
熱點分析
演算法流程B (3/6)
(Trainor, 2014)
列舉所有候選的子超立方範圍
83
熱點分析
演算法流程 (4/6)
(Trainor, 2014)
⬤ 目標屬性=目標值
⯀目標屬性≠目標值
θ = 0.10
評估每個候選子範圍符合 目標屬性=目標值 的程度
84
熱點分析
演算法流程 (5/6)
(Trainor, 2014)
找出最適合的子範圍
85
熱點分析
演算法流程 (6/6)
(Trainor, 2014)
⬤ 目標屬性=目標值
⯀ 目標屬性≠目標值
86
[FatEdu > 2] → [School=GP]
(底下共30條)
● 測量了前提項目集LHS發生時,結果項目集RHS也出現
的條件機率
● 信賴度最高為1,此時表示LHS出現的時候,肯定會出現
RHS
87
熱點分析的評估指標
信賴度(Confidence, conf) (1/2)
http://blog.pulipuli.info/2017/08/wekahotspot-association-rule-mining.html
因病退伍 = Yes 心理疾病 = Yes
信賴度= 0.8
Metric Type
評估指標
88
熱點分析的評估指標
信賴度(2/2)
http://www.ntdtv.com.tw/b5/20160511/video/171381.html?ptt
● 信賴度並未考慮到RHS發生機率
● 增益度比較信賴度與結果項目集RHS單獨發生時機率的
大小
● Lift值若大於1,表示LHS導致出現RHS的機率,比RHS
單獨出現的機率還要高
89
熱點分析的評估指標
增益度(Lift)
http://blog.pulipuli.info/2017/08/wekahotspot-association-rule-mining.html
90
最佳關聯規則
<conf: (0.77)> lift:(1.18)
91
1. 下載與開啟檔案
2. 執行關聯規則探勘:HotSpot
a. 分析School=GP的關聯規則
b. 分析School=MS的關聯規則
比較性分析:關聯規則探勘
實作步驟
STEP 1. 下載與開啟檔案 (1/2)
92
※ 跟前面是同一個檔案
stu-sch-
1 - train.ods
STEP 1. 下載與開啟檔案 (2/2)
93
stu-sch-
1 - train.ods
Class
目標屬性
● 將資料分組後,要進
行比較、分類、迴歸
預測所使用的屬性
● 探索性分析不設目標
屬性(沒有預設立場)
● 比較性分析和預測性
分析都必須要有目標
屬性 (已知正確答案)
94
!
95
STEP 2. 執行關聯規則探勘 (1/6)
1. Attributes: 30
先記得屬性數
量,共30個
2. Associate
切換到
關聯規則探勘
面板
2
1
探索器介面說明
關聯規則探勘 (Associate)
A. Associator ⇨
Choose
選擇關聯規則探勘
演算法
B. 演算法進階設定
C. Start 開始執行
D. Result list
探勘結果列表
E. Associator output
探勘結果
96
A B
C
D
E
STEP 2. 執行關聯規則探勘 (2/6)
3. Associator ⇨ Choose
選擇關聯規則探勘演算法
weka.associations
.HotSpot
※ 需安裝套件hotSpot
97
3
STEP 2. 執行關聯規則探勘 (3/6)
4. 按下粗體字的
演算法名稱
HosSpot
開啟進階設定
98
4
STEP 2. 執行關聯規則探勘 (4/6)
5. 請設定以下參數:
maxBranchingFactor: 30
屬性分支最大值,請輸入屬性數量
maxRuleLength: 1
規則長度最大值
outputRules: True
顯示關聯規則
target: last
目標屬性最後一項(School)
targetIndex: first
目標值的索引 (第一個=GP)
5. OK 離開進階設定
99
6
5
STEP 2. 執行關聯規則探勘 (5/6)
7. Start 開始執行
8. Result list
增加新的探勘結果
9. Associator output
探勘結果細節
100
7
8
9
關聯規則探勘結果
101
LHS
前提規則
RHS
結果規則
conf
信賴度
lift
增益度
FatEdu > 2
(父親教育程度大於2)
School=GP
(學校為GP)
0.77 1.18
102
STEP 2a. 分析School=GPGP
● target: last (School)
● targetIndex: first (GP)
103
STEP 2b. 分析School=MSMS
● target: last (School)
● targetIndex: 2 (MS)
104
兩間學校的學生各自的關聯規則
● 雙親的教育程
度較高
● 不太旅遊
● 大多住在市區
……
GP
● 雙親的教育程
度較低
● 大多住在郊區
● 大多不上網
……
MS
105http://www.shujuren.org/article/827.html
我到底看了什麼?
歡迎發問

More Related Content

2. clustering and association rule mining

Editor's Notes

  1. 課程編輯網頁 https://docs.google.com/document/d/1XiSkOSbaqEzFC7X_-Q1FewS-9Hhw2a_pjGfKv9uGvMI/edit# W14 分類與預測:貝氏網路 https://docs.google.com/presentation/d/1fXzH2xWUigsy8bD8usxrO4V9fPW8xjAdtEHU6_Jui3A/edit?usp=sharing 文本探勘 http://l.pulipuli.info/19/ncku-tm 活動說明網頁 https://docs.google.com/document/d/1QuApzboOkpHZjEBe0Q7uruOqh6xlDB4sHNIXVZ9oQdk/edit 90分鐘+90分鐘 13:00 - 14:30 WEKA簡介與實作-1 陳勇汀 老師/ 洪麗娟 督導長 開放(內含儲備資訊護理師6名) 14:30 - 14:40 休息 14:40 - 16:20 WEKA簡介與實作-2 陳勇汀 老師/ 洪麗娟 督導長 開放(內含儲備資訊護理師6名)
  2. 如何探索資料 的共同模式?
  3. https://docs.google.com/presentation/d/1_8_AqCxImQZ1-3pOXqLcMMwPVZXPzFC6gu47U0MTLrg/edit#slide=id.g1d4436ec24_1_2338
  4. https://docs.google.com/presentation/d/1HYPmm0dWobeKUx1j0EEtsrEtuicFHRh4oMWvZHCafL4/edit#slide=id.g5b2b5e5bb9_15_536 https://www.wikiwand.com/en/Local_outlier_factor LOF = 相較於它周圍的鄰居, 它異常的程度
  5. https://docs.google.com/presentation/d/1HYPmm0dWobeKUx1j0EEtsrEtuicFHRh4oMWvZHCafL4/edit#slide=id.g5b2b5e5bb9_15_536 https://www.wikiwand.com/en/Local_outlier_factor
  6. https://gfycat.com/gentlequestionableflyingsquirrel
  7. :關聯規則探勘
  8. school - student's school (binary: 'GP' - Gabriel Pereira https://www.pinterest.com/pin/566327721862405642/?lp=true or 'MS' - Mousinho da Silveira https://www.parque-escolar.pt/en/school/027
  9. http://clipart-library.com/clipart/teacher-clip-art-13.htm
  10. http://blog.pulipuli.info/2017/08/wekahotspot-association-rule-mining.html https://www.vectorstock.com/royalty-free-vector/baby-diaper-icon-flat-style-vector-7902069 https://www.vectorstock.com/royalty-free-vector/beer-bottle-template-in-modern-flat-style-icon-on-vector-14974267
  11. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4718587/ Patient Rule Induction Method (PRIM)
  12. theta
  13. theta
  14. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4718587/ Patient Rule Induction Method (PRIM)
  15. http://blog.pulipuli.info/2017/08/wekahotspot-association-rule-mining.html
  16. http://blog.pulipuli.info/2017/08/wekahotspot-association-rule-mining.html
  17. https://docs.google.com/document/d/1-89iOSo4okqoKnuzPZSx8uAcxFqBlFgY7fY5kvr6Azg/edit#heading=h.rr8om137luf
  18. http://www.shujuren.org/article/827.html