2013年8月10日 星期六

Data mining with Rattle – ROC curve (SVM and NN)

# 範例說明 R圖形化使用者介面 rattle 套件 執行 ROC curve 比較


步驟 1
安裝並執行 rattle 套件-資料探勘使用者介面
install.packages(“rattle”)
library(rattle)
rattle()

步驟 2
匯入kernlab套件的資料集spam, 一般採用 spam {kernlab} 表示, 步驟如下:

Data \ Source: 選取 Library \ Data Name: 選取 spam:kernlab:Spam E-mail Database \ 執行.

匯入 spam 資料結果, 此為垃圾郵件資料集, 其中第58個變數是目標變數且為類別型資料, R中屬於因子(factor)資料物件, 在最下列訊息區顯示全部有 4601筆觀測值, 58個輸入變數, 可使用分類模型.

步驟 3
Rattle Support Vector Machines 方法, 採用 kernlab 套件的ksvm方法, R console 視窗中輸入以下指令可查詢其使用說明.
library(kernlab)
?ksvm

Model \ Type 選取 SVM \ Kernel 採用預設值 Radial Basis (rbfdot) \ 執行.

步驟 4
使用 Neural Network 方法, Rattle 採用 nnet 套件的nnet 方法, 該方法採用Feed-forward neural networks 且為一個隱藏層 (hidden layer), 預設節點數是十個.
Model \ Type 選取 Neural Net \ 執行.

步驟 5
模式比較主要採用 ROC curve 方法.

Rattle 會針對之前已完成的模型進行效益評估.

Evaluate \ Type: 選取 ROC \ Model: SVM , Neural Net 打勾 \ 按 執行.

步驟 6
考慮實際結果有二種情形(Yes, No), ROC curve視窗中x軸表示 False Positive (FP) rate (實際為N, 但預模型分類為Y, 此時FP愈小愈好), y軸表示 TP rate (實際為Y, 且預模型分類為Y, 此時FP愈大愈好), 因此, ROC曲線愈偏向左上角愈好,即曲線以下面積較大者較佳. 由圖形可知 ksvm 較偏向於左上角位置, 因此採用 svm 較佳。

下載說明: r-rattle-ROCcurve.pdf
# end

沒有留言:

張貼留言