Rattle:數據挖掘的界面化操作
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結果3)數據挖掘
判斷客戶是否流失,是一種分類問題,下面綜合考慮使用Logistic回歸、決策樹、隨機森林三種分類演算法。
簡單看一下這三種演算法的結果:
Logistic回歸的結果:
決策樹的結果:隨機森林的結果:
4)模型評估
這裡我們使用混淆矩陣和ROC曲線兩種評估模型的方法,具體結果見下圖的展示:
結果顯示,三個模型的優劣順序為:隨機森林、決策樹和Logistic回歸本文只是帶大家進入rattle這個界面化操作的數據分析和挖掘工具,更多探索和玩法還需要大家進一步研究。歡迎各位交流與探討有關數據分析的問題。
----------------------------------------------
作者:劉順祥
出處:劉順祥博客
公眾號:每天進步一點點2015
大家也可以加小編微信:tswenqu,進R語言中文社區 交流群,可以跟各位老師互相交流
推薦閱讀:
※對,你沒看錯,真的有這種操作~
※用R-Shiny打造一個美美的在線App
※Tidy data----從零開始學會大數據分析課程第4課-課後作業1-part2
※MySQL |OR運算符