R語言是一個自由、免費、源代碼開放的軟件,它是一個用於統計計算和統計制圖的優秀工具。這里的統計計算可以是數據分析、建模或是數據挖掘等,通過無數大牛提供的軟件包,可以幫我們輕松實現算法的實施。
一些讀者覺得R語言零碎的東西太多了,無法記住那么多函數和功能,於是就問R語言有沒有一種類似於SAS之EM或SPSS之Modeler的界面化操作。很幸運,Graham等人特地為“偷懶”的分析師寫了rattle包,通過該包就可以實現界面化操作的數據分析、數據挖掘流程。下面就跟大家詳細介紹一些這款免費的工具:
上圖紅色區域就是數據分析與挖掘的流程,包括:數據源(Data)-->數據探索與檢驗(Explore、Test)-->數據變換(Transform)-->數據挖掘(Cluster、Associate、Model)-->模型評估(Evaluate)。
首先,你會經歷“一勞永逸”的過程:安裝rattle包
不瞞您說,我首次在自己的64位Win7系統中安裝rattle包時花費了不少功夫。當你install.packages('rattle')時,覺得非常輕松就下載好了,但是進入library(rattle)並輸入rattle()時它會報告各種.dll文件不存在。如果您決定要試試,就下載缺失的dll文件到您的電腦里。
其次,我們來介紹一下rattle數據挖掘操作界面都有哪些東西:
1)數據源(Data)
一切數據分析與挖掘都起源於數據,故第一步就是往rattle中導入數據源,數據源可以是外部數據源,如txt文件、csv文件、Excel文件等;也可以是數據庫數據,通過ODBC連接諸如SQL Server、MySQL等數據庫;也可以是當前R空間下的數據集;也可以是外部R數據集文件、還可以是R包自帶的數據集。
2)數據探索與檢驗(Explore、Test)
有了數據后,需要進行數據探索,如匯總(Summary)、分布(Distributions)、相關性分析(Correlation)、主成分分析(Principal Components)、t檢驗、F檢驗、K-S正態性檢驗、Wilcoxon檢驗等
3)數據變換(Transform)
當數據存在缺失或需要從新編碼、標准化時,就需要這里的數據變換了
4)數據挖掘(Cluster、Associate、Model)
當數據清洗干凈或對數據有了基本了解后,就要進入數據挖掘過程,rattle工具提供了常用的數據挖掘算法,如:K-means聚類、層次聚類、關聯規則、決策樹、隨機森林、支持向量機、線性回歸、Logistic回歸、神經網絡等
5)模型評估(Evaluate)
當模型選定,並進入模型運算后,需要對模型進行評估,選擇比較理想的模型用着后期數據的部署。有關模型評估,rattle提供了混淆矩陣、風險矩陣、成本曲線、Lift曲線、ROC曲線等方法。
最后,我們就用這個rattle做一個實戰,數據集就使用C50包中的churnTrain,該數據集是德國某電信公司客戶是否流失的數據集。
1)讀取數據集
選擇好數據集后,點擊“執行”,默認數據集將分為三個子集,即訓練集占70%、訓練集和檢驗集各占15%,最后將指定哪些變量為解釋變量和被解釋變量,如有不需要的變量,則選為“Ignore”
2)數據探索
選擇Summary單選、並選擇Summary、Describe、Basic、Kurtosis等復選框后,看看都有哪些返回結果:
Summary結果
Discribe結果
Basic基本統計量結果
還有很多數據探索的內容,這里就不一一說明了,希望讀者能自行執行,並了解數據的大致情況。
3)數據挖掘
判斷客戶是否流失,是一種分類問題,下面綜合考慮使用Logistic回歸、決策樹、隨機森林三種分類算法。
簡單看一下這三種算法的結果:
Logistic回歸的結果:
決策樹的結果:
隨機森林的結果:
4)模型評估
這里我們使用混淆矩陣和ROC曲線兩種評估模型的方法,具體結果見下圖的展示:
結果顯示,三個模型的優劣順序為:隨機森林、決策樹和Logistic回歸
本文只是帶大家進入rattle這個界面化操作的數據分析和挖掘工具,更多探索和玩法還需要大家進一步研究。歡迎各位交流與探討有關數據分析的問題。