大數據 資料探勘 的資料分析課程 weka 快速上手篇

10 XP

大家好 我是江博士 歡迎各位來修 大數據 資料探勘 的資料分析課程 這堂課先用小數據教各位資料探勘的技術、軟體、概念及分析時需要注意的地方, 後面幾堂課會教各位 處理海量資料時怎麼克服記憶體及平行運算等問題. 這堂課的範例中 我們假設有個實驗室, 有很多台機器, 很多使用者, 不同的實驗流程, 產生出不同的數據, 而我們負責用 data mining 的技術 從一堆數據中找出實驗時影響成功或失敗的原因, 讓實驗室在未來可以趨吉避凶每次實驗都成功! 首先 我們先安裝 weka 這套軟體 (google weka, 這次demo用的是3.6版, 之後的版本的algorithm會不太一樣, 但概念及要注意的地方大同小異) 然後我們準備好我們要分析的數據, 我用excel先準備好了一堆資料, 存成csv格式. 左半邊是實驗的參數, 右半邊是實驗的結果 step1 濃度 user 使用者 step2 分鐘 machine 機器 step3 peak (某曲線分布的起點終點) temperature 溫度 measure 上機前的測量值 step3_2-1 曲線的寬度 result1 上機後的實際值 result2 quality result3 偵測到的基因數 result4 人工判讀的結果 覺得這次實驗成功與否 user B 手殘 peak range 大於 200 導致 incorrect demo 找 correct incorrect 的原因: load data.csv (C:\Users\Mark\Dropbox\NTU\教學課程\weka\data.csv) BFTree 10 fold cross-validation: user B 手殘 ADTree 10 fold cross-validation: user B 手殘 remove user column BFTree 10 fold cross-validation: peak range 大於 225 導致 incorrect (80% accuracy) Use training set: 100% Visualize PlotSize:100, PointSize:5, Jitter:3 看 左邊result_4 上面 step3_2-1, 可直接切成左右邊. result_1, result_3 也可切. remove peak range BFTree Use training set: result_1 (100%) remove result_1 BFTree Use training set: result_3 (100%) remove result_3 BFTree 偵測不出原因 ADTree Use training set: (100%) Tree Visualizer NNge Use training set: 100% 小心, rule太多 可能是用死背的! (可觀察到 10 fold cross-validation 小於 100%) 這怎麼辦呢? 我們來試試看另一個功能 load data.csv Select attribute, GainRatioAttributeEval+Ranker, Use full training set, result_4 依序為 result_1, step3_2-1, result_3, user, ... Classify, NNge, 10 fold Cross-validation Rules generated : class incorrect IF : 5800000.0<=result_1<=6100000.0 (4) class correct IF : 4000000.0<=result_1<=5500000.0 (6) 可觀察到, 經由 Select attribute 幫我們選出比較有影響的 column 後, 不須死背也可100%答對. 接下來 我介紹另一個功能, 相信大家都聽過, 超市分析發現, 買尿布的人也會買牛奶, 所以把這兩樣東西放在一起, 就是用這種功能分析出來的. load data.csv 保留 user, machine, result_4 這三個 Type 為 Nominal 的 columns. Associate, FilteredAssociator 1. user=A 4 ==> result_4=correct 4 conf:(1) 發現當user是A的時候, 結果都correct 2. result_4=incorrect 4 ==> user=B 4 conf:(1) 發現當結果不正確, user都是B 3. user=B 4 ==> result_4=incorrect 4 conf:(1) 發現當user是B的時候, 結果都不正確 4. user=C 2 ==> result_4=correct 2 conf:(1) 發現當user是C的時候, 結果都correct 開始扯 5. user=A machine=A 2 ==> result_4=correct 2 conf:(1) 發現當userA, machineA的時候, 結果都正確. 開始扯 6. user=A machine=B 2 ==> result_4=correct 2 conf:(1) 開始扯 7. machine=A result_4=incorrect 2 ==> user=B 2 conf:(1) 開始扯 8. user=B machine=A 2 ==> result_4=incorrect 2 conf:(1) 開始扯 9. machine=B result_4=incorrect 2 ==> user=B 2 conf:(1) 開始扯 10. user=B machine=B 2 ==> result_4=incorrect 2 conf:(1) 這堂課示範了怎麼從這些資料中 找出userB手殘, peak range 保持在 200 以內實驗就會成功, 不同的 algorithm 可以給你不同種類的 rule. 電腦很聰明, 要小心電腦作弊 電腦可能用背的, 我教你怎麼用 10 fold validation 預防作弊. 也要小心電腦像政治人物一樣跟你扯些沒什麼內容的東西.

瀏覽數
1 總瀏覽數
1 成員瀏覽數
0 公眾瀏覽
動作
0 喜愛
0 不喜歡
0 備註
分享到社交網路
分享連結
通過信件分享

登入 分享這個 video 通過電子信件。

嵌入您的網頁