查看原文
其他

Rattle:数据挖掘的界面化操作

2017-02-22 刘顺祥 R语言中文社区

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这个界面化操作的数据分析和挖掘工具,更多探索和玩法还需要大家进一步研究。欢迎各位交流与探讨有关数据分析的问题。




刘顺祥,天善智能社区专家。公众号:每天进步一点点2015

Blog:https://ask.hellobi.com/blog/lsxxx2011


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存