Data Mining 工具介紹 (Weka/R + ODBC) Supplement 1 Data Mining 工具介紹 (Weka/R + ODBC) 楊立偉教授 台灣大學工管系 2017 1
Data Mining 工具 The R Project for Statistical Computing http://www.r-project.org/ Weka : Data Mining Software in Java http://www.cs.waikato.ac.nz/ml/weka/ scikit-learn: machine learning in Python http://scikit-learn.org/stable/ SAS Enterprise Miner (EM) Business Analytics and Business Intelligence Software IBM SPSS Predictive analytics software and solutions and others
使用WEKA及ODBC連接資料庫 3
Using Weka (1) 獨立下載安裝Java 7 (支援ODBC) 後再下載Weka,安裝或解壓縮後點weka.jar執行 http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html http://www.cs.waikato.ac.nz/ml/weka/downloading.html
Using Weka (2) 下載Access資料庫tennis.accdb,在ODBC新增來源名稱為tennis,供待會連接使用 啟動Weka後,點選Explorer
點選Open DB…URL輸入jdbc:odbc:tennis,點選連接符號;之後輸入SQL指令執行,若有資料表示成功 1 2 點選Open DB…URL輸入jdbc:odbc:tennis,點選連接符號;之後輸入SQL指令執行,若有資料表示成功 3 4 5
Using Weka (3) 可參考手冊 WekaManual.pdf 啟動Weka後,點選KnowledgeFlow
Using Weka (3) 選擇DataSources→DatabaseLoader 置放在工作區,選取後按右鍵選Configure…
輸入 jdbc:odbc:tennis SELECT outlook, temperature, humidity, windy, play FROM playtennis
Using Weka (4) 放置Evaluation→ClassAssigner,以及TrainingSetMaker 放置Classifiers→trees→J48 (即C4.5演算法之實作) 放置Visualization→TextViewer
Using Weka (5) 在DatabaseLoader按右鍵選dataSet到ClassAssigner 在ClassAssigner按右鍵選dataSet到TrainingSetMaker 在TrainingSetMaker按右鍵選trainingSet到J48 在J48按右鍵選text到TextViewer
Using Weka (6) 在ClassAssigner按右鍵選configure確認目標欄位是play 在DatabaseLoader按右鍵選Start loading 執行完畢,在TextViewer按右鍵選Show results看結果
Using Weka (7) Clustering 使用Simple Kmeans演算法,用TextViewer看結果 以k=3為例
Using Weka (8) Association 使用Apriori演算法,用TextViewer看結果 只能處理nominal value
Using Weka (9) Association 使用Apriori演算法結果如下 * 決策樹的每條path可能就是一條rule;可能會找到更多的rules
使用R及ODBC連接資料庫 16
Using R with Database (1) 挑選CRAN(Comprehensive R Archive Network)中之站點,下載R安裝後執行 http://cran.csie.ntu.edu.tw/ 台大資工站點 選擇base版本下載,點擊安裝 之後執行R
Using R with Database (2) 安裝RODBC套件 選程式套件>安裝程式套件>挑選CRAN站點: 0-Cloud 選RODBC後即可 執行指令 library(RODBC) 載入該套件 c=odbcConnect("tennis") 開啟連線, 取名為c x=sqlFetch(c, "playtennis") 從該來源取出某張表 或sqlQuery(c, "SELECT outlook, temperature, humidity, windy, play FROM playtennis")
執行結果
Using R with Database (3) 安裝C50套件 選程式套件>安裝程式套件>挑選CRAN站點: 0-Cloud 選C50後即可 執行指令 library(C50) 載入該套件 m=C5.0(x[,2:5],x$play) 以第2~5欄做訓練,目標欄位為play summary(m)
執行結果
Using R with Database (4) 安裝arules套件 選程式套件>安裝程式套件>挑選CRAN站點: 0-Cloud 選arules後即可 執行指令 library(arules) 載入該套件 r=apriori(x[,2:6]) 以第2~6欄分析 rs=sort(r,by="confidence") 將結果排序 inspect(rs) 顯示結果
執行結果
執行結果