Lecture 1 Rattle
1.1 裝置
Rattle是R社群裡廣為人知的資料探勘視窗套件,開發者Graham Williams也出了一本書 Data Mining with Rattle and R— The Art of Excavating Data for Knowledge Discovery (Springer-Verlag, 2011)。這個GUI設計的水準相當高,不只是資料探勘,所納入的視覺化功能更是精彩。
R版本4.2有了一個針對MS Windows很大的改變,也就是須要UCRT(Universal C Run-Time)。Win 10以前都必需先透過Update裝好,R的運作才會正常。很不幸的,Rattle有兩個核心元件:RGtk2和cairoDevice,在筆者改版之際,尚不支援UCRT環境。所以,會無法啟動rattle。克服的方法也很簡單,就是R版本選用4.1.3之前即可。RStudio的使用者,只要進入選單最右方的: Tools → Global Options就可以切換版本。
進入主控台,執行由CRAN裝置rattle
之後,進入https://rattle.togaware.com/ (如圖 1.1)看自己的電腦是何種規格,複製RGtk2和cairoDevice的裝置語法,貼到R命令列執行就可以。
如果所裝置的套件很多,使用選單上的load會耗一點時間(約10秒);因此,除了這樣啟動,一個更簡易的方法就是在主控台命令列,輸入2行命令,如圖1.2,這樣啟動更快。
1.2 外部資料載入 .csv
rattle可以載入多種外部資料,可參考圖 1.1-3選單下第一列source的按鈕。從常用的試算表,ODBC資料庫,還有文字資料。如果是個人使用,常用的是 .csv 格式的數據。我們用R內的一筆常用的汽車數據,auto.csv,來解說載入資料方法。這筆資料如圖 1.4
這筆資料有14個變數
Model:汽車的廠牌和類型.
Origin:汽車出廠國,三個來源 A, E, J
Price:價格,以美元計
MPG:一加侖能跑的英里數.
Rep78:1978 年維修記錄時的車況,1 (最糟) - 5 (最好).
Rep77:1977 年維修記錄時的車況,1 (最糟) - 5 (最好).
Hroom:頭的空間,以英吋計.
Rseat:後座寬敞程度,以英吋計.
Trunk:後車箱容量,以立方英尺計.
Weight:車身重量,以英磅計.
Length:車身長度,以英吋計
Turn:迴轉所需半徑,以英尺計.
Displa:引擎所佔空間,以立方英尺計.
Gratio:高速檔的比率(gear ratio).
載入資料,有兩個關鍵步驟
步驟 1. 見圖1.5,從Filename進入資料所在資料夾,這類似檔案總管,選定資料後,就會如圖顯示檔名。
步驟 2。按圖1.6上框起來的【Execute】也就是「執行」– 將資料載入rattle。如果要看一看(View)或編輯(Edit)載入的資料,就選圖上面圓圈圈住的兩個按鈕。
載入後,rattle下半部會出現載入檔案數據的特徵,有數個欄位,說明如下:
No.:變數序數。
Variable:變數名稱。
Data Type:資料性質。Categoric是類別; Numeric是數字。
Input:就是解釋變數X。
Target:就是被解釋變數(或反應變數)Y,也就是資料分析的對象。Rattle會判斷某一個,讀者再依自己研究需求自行更改。
Risk~Weight:最後4個按鈕選項,是指變數在模型內的其他角色。有功能性,如 {Weight} - 是加權用的;和選擇性,如
{Ignore},如果按鈕選擇這一項,就是分析時,不納入模型的變數。
Comments:變數數據的性質,如缺值多少等等。
最下方是資料的整體文字說明和設定的簡單結構:74筆觀察值,13個變數,…。瞭解這個之後,也載入資料完畢,就進入rattle的資料分析世界。很快地,你就會變成資料採礦,數據分析的高手了。
1.3 載入R內建資料data (mtcars)
圖 1.6資料載入,第4格式稱為R Dataset指的是R內建的資料。R本身有許多內建資料,提供使用者方便學習。在rattle載入這一型的資料,方法如下:
mtcars這筆資料內建於R系統,載入這種內建資料,要用函數data()。
步驟2。在主控台載入後,rattle介面就會出現數據選項,如圖 1.7,點選後,再按左上角Execute,就可以將mtcars這筆內建資料載入rattle視窗。
當然,rattle的資料載入不僅限於內建資料,所有的外部資料,都可以讀取,再載入rattle。例如,
只要使用read.csv()函數並給定物件名稱Dat,就可以在rattle內,用圖 1.3-1載入數據物件Dat。筆者使用rattle,多半都是用此方式載入資料,這樣安排是希望讀者有了rattle的使用經驗後,學習上會更有感覺。