Data Mining 工具介紹 (Weka/R to MySQL) Supplement Data Mining 工具介紹 (Weka/R to MySQL) 楊立偉教授 台灣大學工管系 2018 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連接資料庫 3
Using Weka (1) 下載安裝Java 下載Weka 下載MySQL Connector/J https://www.java.com/zh_TW/download/ 下載Weka https://www.cs.waikato.ac.nz/ml/weka/downloading.html 選擇Other platforms版本,解壓縮後取得weka.jar 下載MySQL Connector/J https://dev.mysql.com/downloads/connector/j/8.0.html 選擇Platform Independent版本,解壓縮後取得mysql-connector-java-8.0.13.jar
unzip WEKA 下載跨平台版本並解壓縮至特定目錄,例如/weka https://www.cs.waikato.ac.nz/ml/weka/downloading.html V
unzip MySQL Connector/J 下載跨平台版本,並解壓縮至同一目錄,例如/weka V
Using Weka (2) 找到mysql-connector-java-8.0.13.jar 並複製到與weka.jar同一目錄下,如右圖
Windows請搜尋cmd後執行,開啟命令提示字元 開啟命令提示字元 (或終端機) Windows請搜尋cmd後執行,開啟命令提示字元 Mac請開啟工具程式下的終端機 輸入 java,若有出現版本訊息,代表java環境已備妥 利用cd指令切換至weka所在目錄 (範例是在Downloads下的weka-3-8-3) 輸入下列指令,如下圖 java -cp weka.jar;mysql-connector-java-8.0.13.jar weka.gui.GUIChooser (Mac用戶請將上述指令的分號 ; 換成冒號 :,其餘不變) 切換至該目錄
Using Weka (3) 啟動Weka後選KnowledgeFlow,在DataSources選DatabaseLoader,在右邊工作畫布上放置一個,選取後按右鍵選Configure…
Using Weka (4) Database URL輸入 輸入使用者名稱及密碼 輸入Query指令 選擇DB config file jdbc:mysql://sqldb.demo.tornado.com.tw:3306/sample?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC 輸入使用者名稱及密碼 輸入Query指令 SELECT outlook, temperature, humidity, windy, play FROM tennis 選擇DB config file 下載課程網頁上mysql.props檔 選擇該檔案
Using Weka (5) 在Visualization選TextViewer,在右邊工作畫布上放置一個,選取DatabaseLoader後按右鍵選dataSet,產生一條線連至TextViewer
Using Weka (6) 在左上角按下執行按鈕,下方訊息若出現Finished表示完成 (若有錯誤訊息請檢查設定) 選取TextViewer後按右鍵選Show results,若出現查詢結果表示成功
使用WEKA進行Data Mining 13
Using Weka – Tree (1) 放置Evaluation→ClassAssigner,以及TrainingSetMaker 放置Classifiers→trees→J48 (即C4.5演算法之實作) 放置Visualization→TextViewer
Using Weka – Tree (2) 在DatabaseLoader按右鍵選dataSet到ClassAssigner 在ClassAssigner按右鍵選dataSet到TrainingSetMaker 在TrainingSetMaker按右鍵選trainingSet到J48 在J48按右鍵選text到TextViewer
Using Weka – Tree (3) 在ClassAssigner按右鍵選configure確認目標欄位是play 在DatabaseLoader按右鍵選Start loading 執行完畢,在TextViewer按右鍵選Show results看結果
Using Weka – Clustering 使用Simple Kmeans演算法,用TextViewer看結果 以k=3為例
Using Weka – Association (1) 使用Apriori演算法,用TextViewer看結果 只能處理nominal value
Using Weka – Association (2) 使用Apriori演算法結果如下 * 決策樹的每條path可能就是一條rule;可能會找到更多的rules
可儲存畫布上的流程圖,重新再設計 其他可參考手冊 WekaManual.pdf http://software.ucv.ro/~eganea/AIR/KnowledgeFlowTutorial-3-5-8.pdf 推薦閱讀 tutorial 的p7~p9 如何做cross-validation,以及如何化ROC curve
使用R連接資料庫 (Windows / Mac通用) 21
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套件 透過ODBC介面及對應驅動程式driver 使用RJDBC套件 透過JDBC介面及對應驅動程式driver 使用RMySQL套件 透過網路協定直接連接
如果選擇RMySQL套件 選程式套件>設定CRAN鏡像>挑選站點: 0-Cloud 執行指令 install.packages("RMySQL") 安裝套件 library(RMySQL) 載入套件 library(DBI) 載入相關套件 c = dbConnect(MySQL(), host='主機名稱', user='帳戶', password='密碼', dbname='資料庫名稱') 開啟連線, 取名為c dbListTables(c) 列出有哪些表格 x = dbGetQuery(c, 'select outlook, temperature, humidity, windy, play from tennis') 執行SQL x 顯示結果
如果選擇RODBC套件 選程式套件>設定CRAN鏡像>挑選站點: 0-Cloud 執行指令 install.packages("RODBC") 安裝套件 library(RODBC) 載入套件 c <- odbcConnect('ODBC DSN名稱') 開啟連線, 取名為c x = sqlFetch(c, 'tennis') 從該來源取出某張表 x = sqlQuery(c, 'SELECT outlook, temperature, humidity, windy, play FROM tennis') 或執行SQL
執行結果
Using R with Database (3) 安裝C50套件 選程式套件>設定CRAN鏡像>挑選站點: 0-Cloud 執行指令 install.packages("C50") 安裝套件 library(C50) 載入套件 m=C5.0(x[,1:4], as.factor(x$play)) 以第1~4欄做訓練,目標欄位為play (轉換為factor型態) summary(m)
執行結果
Using R with Database (4) 安裝arules套件 選程式套件>設定CRAN鏡像>挑選站點: 0-Cloud 執行指令 install.packages("arules") 安裝套件 library(arules) 載入套件 r=apriori(x[,1:5]) 以第1~5欄分析 rs=sort(r,by='confidence') 將結果排序 inspect(rs) 顯示結果
執行結果
Good LUCK !