R 資料探勘 (1)

基本介紹

教學目標

R 語言的資料探勘之應用。

重點概念

R 主要相較於其它統計軟體最大的不同在於要很清楚的了解輸入的資料,並且有許多實用的資料探勘的開源碼套件可以免費使用,此外軟體除了有單機版本 RStudio,更有伺服器版本 RStudio Server ,目前僅能安裝至 Linux 作業系統中。一般使用者主要會透過網頁以帳號和密碼登入至 RStudio Server,每個帳號同時只能有一個人進行登入,並且所有處理狀態和步驟皆會與帳號同步,可是缺點是一般使用者無法隨意安裝任何資料探勘的開源碼套件,我們可以透過 $ .libPaths() 指令查看函式庫目錄,主要會有三個不同類型的目錄,分別為個人目錄 “/home/dva45901/R/x86_64-redhat-linux-gnu-library/3.2” 、系統目錄 “/usr/lib64/R/library”、”/usr/share/R/library”,其中系統目錄一般使用者沒有權限進行處理,也因此無法隨意安裝資料探勘的開源碼套件。

R 主要資料探勘的應用有分群、分類、預測、推薦和文字探勘,從龎大數量的資料中發現有趣的知識,資料探勘處理流程可以拆解為六個階段,分別為:

  1. 業務了解
  2. 資料探索
  3. 資料準備
  4. 建立模型
  5. 評估
  6. 部署

在上述六個階段中業務了解和資料探索非常重要,在進行任何分析之前一定要先有目的,而非以演算法為主,必須從數據驅動和業務驅動開始進行資料分析,並且要找出最關鍵可能影響的因素。最常被應用於建立模型的機器學習演算法主要可以分為監督式和非監督式,主要差別在於是否已經知道資料所對應的標籤。監督式主要會從訓練資料集中學習標記,嘗試透過分類演算法識別和預測目標,非監督式主要是輸出沒有任何知識,必須透過了解資料和決定模式,也就是不同客群的定義。此外依照資料的類型又可以分為連續型和類別型的資料,因此我們可以根據監督式、非監督式、連續型資料和類別型的資料進行機器學習演算法的分類。

最基本的機器學習演算法函式有,其中僅有 hclust 和 kmeans 是進行分群,其它則為分類:

  • Hierarchical cluster analysis: hclust (stats)
  • Kmeans clustering: kmeans (stats)
  • Logistic Regression: glm (stats)
  • Recursive partitioning and regression trees rprat (rpart)
  • Support vector machine: ksvm (kernlab)
  • Rule based classification: apriori (arules)
  • Stochastic boosting: ada (ada)
  • Random forests classification and regression: randomForest (randomForest)

接著在業界中最常使用的分群方式為 Kmeans clustering ,其做法主要為計算距離找出中心點進行分群,接著會重覆計算每群的中心點用平均描述特色。會在重新檢視所有點沒有進行變化後完成。在是面臨最大的問題主要有兩個,首先要如何知道分幾群比較好,一般會根據業務經驗和階層式方式找出最適合的分群數,接著要先從哪兩個點開始,因為從不同兩點開始分群結果可能會不同。此外 Kmeans clustering 的限制在於數值,可以計算平均,儘量避免異常值,並且在針對多維資料最好先進行降維,可透過 plot(numdata[1:5],col=kmeas(x=numdata,centers=10)$cluster) 觀察影響分群結果的最關鍵維度,接著再以相對距離進行推論,也就是說 k-means 主要是針對數值資料進行分群,接著根據不同群體了解其資料,再進行客群定義為標籤分類。

再來在業界中最常使用的分類方式為 Recursive partitioning and regression trees ,首先會將資料進行切割之後產生訓練資料和測試資料,接著透過相關演算法進行分類,接著再進行迴歸分析,更進一步進行離散化細分,主要常見有 Entropy 和 Gini 兩種方式。然而當產生結果之後,我們會透過 Confusion Matrix 進行評估,最常比較 recall 值,也就是已知分類結果中有多少比例分類正確。

最後在業界中最常使用的關聯分析方式為推薦,主要有兩個步驟,第一步先找出最相似的項目,主要可以透過關聯規則,最早由 Walmart 進行購物籃分析應用,也就是會買尿布也會買碑酒,第二步為透過權重進行加總進行計算,主要可以透過協同過濾,最早由 Amazon 進推薦應用,當我們透過 Rule Based Classification 進行規則分類產生結果之後,一般會考量支持度值和信賴度值,分別了解一次交易中包含 A 與 B 的聯合機率和包含 A 的交易中也包含 B 的條件機率,再來透增益值了解一條規則在預測結果時能比隨機發生的機率好多少,當值大於 1 時,則代表預期結果比隨機發生更好。當關聯規則完成之後會再透過協同過濾的方式進行推薦應用,一般來說以物為基礎會比以人為基礎的方式推薦結果更佳。至於 R 初學者是否有圖形介面可以學習資料探勘呢?此時就可以透過 Rattle 工具協助我們更有效率的學習 R 語言的資料探勘。

相關資源