R语言数据分析实例一:离职率分析与建模预测

Python015

R语言数据分析实例一:离职率分析与建模预测,第1张

本文分析利用IBM离职员工数据进行分析。在对离职率的影响因素进行观察的基础至上,建立模型并预测哪些员工更易离职。

一般而言,数据分析分为三个步骤:数据收集与清洗、探索性分析和建模预测。本文的数据集是IBM用于研究员工预测的 模拟数据 ,数据十分完整,无需清洗。因此,本文主要分为三个部分:

通过对IBM离职员工数据实践,本文希望发掘出影响员工流失的因素,并对利用R语言进行数据分析过程进行复习,深化对数据分析工作意义的理解。

IBM离职员工数据集共有35个变量,1470个观测个案。部分需要重点关注的变量如下:

上述变量可以分为三个部分:

载入分析包和数据集

通过描述性统计可以初步观测到:

分析结果:

基于对数据的探索性分析,员工离职有多方面因素的影响,主要有:

1.工作与生活的不平衡——加班、离家远和出差等;

2.工作投入如果不能获得相匹配的回报,员工更倾向离职;

3.优先股认购等福利是员工较为关注的回报形式;

4.年龄、任职过的公司数量的因素也会影响员工离职率;

删除需要的变量:EmployeeCount, EmployeeNumber, Over18, StandardHours

变量重新编码:JobRole, EducationFiled

分析结果表明:

随机森林所得的AUC值为0.5612,小于决策树模型。

GBM模型得到的AUC值为0.5915

对于对于随机森林和GBM的方法,AUC值小于单一决策树模型的AUC值的情况较少见,这显然说明单一的树拟合得更好或者更稳定的情况。(一般需要得到AUC值大于0.75的模型)

当结果分类变量之间的比列是1:10或者更高的时候,通常需要考虑优化模型。本例中,离职变量的比列是1:5左右,但仍然可能是合理的,因为在决策树中看到的主要问题是预测那些实际离开的人(敏感度)。

加权旨在降低少数群体中的错误,这里是离职群体。

向上采样(up-sampling)指从多数类中随机删除实例。

向下采样(down-sampling)指从少数类中复制实例。

分析结果表明:

加权调整的模型表现最好,相比较于单纯的随机森林和GBM模型,AUC值从0.5612上升至0.7803,灵敏度也达到了0.7276。据此,后续将采用加权调整后的模型进行预测。

已经训练出一个表现较好的模型。将其应用于实践时,需要注意以下几个方面:

可以观察到影响员工流失的前5个因素是:

因此,在实践中就需要注意:

本例中对工作投入高、收入低的员工进行预测。

本例分析仍有需要足够完善的地方,还可以往更多更有意义的地方探索:

第一方面是数学基础,第二方面是统计学基础,第三方面是计算机基础。要想在数据分析的道路上走得更远,一定要注重数学和统计学的学习。数据分析说到底就是寻找数据背后的规律,而寻找规律就需要具备算法的设计能力,所以数学和统计学对于数据分析是非常重要的。

而想要快速成为数据分析师,则可以从计算机知识开始学起,具体点就是从数据分析工具开始学起,然后在学习工具使用过程中,辅助算法以及行业致死的学习。学习数据分析工具往往从Excel工具开始学起,Excel是目前职场人比较常用的数据分析工具,通常在面对10万条以内的结构化数据时,Excel还是能够胜任的。对于大部分职场人来说,掌握Excel的数据分析功能能够应付大部分常见的数据分析场景。

在掌握Excel之后,接下来就应该进一步学习数据库的相关知识了,可以从关系型数据库开始学起,重点在于Sql语言。掌握数据库之后,数据分析能力会有一个较大幅度的提升,能够分析的数据量也会有明显的提升。如果采用数据库和BI工具进行结合,那么数据分析的结果会更加丰富,同时也会有一个比较直观的呈现界面。

数据分析的最后一步就需要学习编程语言了,目前学习Python语言是个不错的选择,Python语言在大数据分析领域有比较广泛的使用,而且Python语言自身比较简单易学,即使没有编程基础的人也能够学得会。通过Python来采用机器学习的方式实现数据分析是当前比较流行的数据分析方式。

对大数据分析有兴趣的小伙伴们,不妨先从看看大数据分析书籍开始入门!B站上有很多的大数据教学视频,从基础到高级的都有,还挺不错的,知识点讲的很细致,还有完整版的学习路线图。也可以自己去看看,下载学习试试。

【转自网络】

首先,我要说的是我觉得你是一名在校大学生!Data Mining不是你想的那么简单,他不单单和数学有关系,还包括了计算机领域的诸多学科。还有社会工程学、逻辑学等文科和理科的交叉学科!他是一门庞大的体系。你要是真想学我只能给你指条比较快的成才之路,后面的东西自己慢慢学都赶趟!慢慢充实自己!大学四年好好利用!学无止境!

既然是数据分析那你的高等数学必须要过硬,别着急这只是你的其他学科的基础课。其次是概率与统计,这才是正科,大学那点玩意就是糊弄人的,你要多看这方面的书。这个一定要学好!线性必须要会要精通。因为数据划分是数据挖掘里最重要的一个环节。这个就是线性范畴里的了。也要精通,学会线性分析你就发现你就学会了很多。数学有这三个底子就可以了。数学分析不要看了。因为那只是高数的延伸!

计算机你一定要懂。数据库你必须得学会。三大数据库ORACLE.SQL.MYSQL原理基本类似触类旁通!

还有就是培养你的思维,尽量缜密敏捷。这样才可以发现数据中的不同!因为有的数据挖掘是计算机处理的。有的则是纸面上的。所以必须学会记录

好了,就先这么多了。你学会了这几个就是你进军下一步的基础,这几个就够你学一阵子的了。

祝你好运哥们!

数据挖掘的起点很高——

1、统计学

2、机器学习

3、数学——图论,最优化理论等。

WEB上的数据结构更加复杂。

python语言————应该学习

抱歉,事情太多,如果不追着就忘了!我认为你作为企业员工对数据挖掘感兴趣,最主要的就是从应用和解决问题开始,所以我想把数据挖掘这个狭义定义的内容改成你应该对数据分析感兴趣,数据挖掘只是数据分析的一个重要工具和解决方法之一!

数量统计知识方面:我认为统计思想是数学在实践中最重要的体现,但对于实际工作者最重要的是掌握统计思想,其实统计理论非常复杂,但实际应用往往是比较简单的!比如,很多人都在大学学了假设检验,但实际应用中假设就是看P值是否小于0.05,但是H0是什么?拒绝还是接受的是什么现实问题;要理解!

掌握软件问题:从软件角度学,是非常好的思路,我基本上就是这样学的。我常说编软件的人最懂理论,否则编不出来,编软件的人最知道应用,否则软件买不出去;现在软件越来越友好,把软件自带案例做一遍,你会自觉不自觉的掌握软件解决问题的思路和能解决的问题类型;

数据仓库问题:OLAP和数据挖掘是数据仓库建立基础上的两个增值应用,从企业整体角度,数据挖掘应该建立在企业数据仓库完备的基础上。所以说数据仓库是针对企业级数据挖掘应用提出的,但我们应该记住,企业从来不是为了数据挖掘建立数据仓库,而是因为有了数据仓库后必然会提出数据挖掘的需求!现在随着数据挖掘软件的工具智能化,以及数据仓库和ETL工具的接口友好,对数据库层面的要求越来越少;

数学不好可能反应了一个人思考问题的方式或深入理解问题的能力,但数学不是工具是脑具,不断解决问题的过程可以让我们思考问题更数学化!

沈浩老师建议:

不急,一步一步来!先把本职工作中的数据分析问题理解了,干好了!

熟练玩好Excel软件工具,这个可以看《Excel高级应用与数据分析》我写的书,当然有很多Excel论坛和网站,从我的博客就可以连接到。

学习好统计分析方法,我不是单指统计原理,而是统计分析方法,比如回归分析,因子分析等,不断进入统计分析解决问题的思考方式;这个可以看看SPSS软件方面的书和数据案例,通过软件学习解决数据分析的统计问题,这方面的书很多,当然你也可以关注我的博客,不断增加统计分析方法解决数据分析问题的思路,自己对照着完成!

在上述问题有了比较好的理解后,也就是你应该算是一个数据分析能手的时候,开始进入数据挖掘领域,你会发现用数据挖掘思想解决问题具有智能化、自动化的优势,接下来,你需要考虑数据建模的过程,通过学习Clementine软件或SAS的挖掘工具,不断理解数据挖掘与原来的数据分析工具有什么不同或优势!

当前面都是了解并且能够得心应手后,你就要有针对性的掌握你工作所在行业的问题,例如:电信行业的解决方案问题:客户流失、客户价值、客户离网、客户保持、客户响应、客户交叉销售等商业模型,同时与数据分析和数据挖掘统一在一起的解决方案!

接下来,你应该掌握数据库的一些原理和操作,特别是SQL语言的方式

你到了这个阶段,就应该有全面解决问题的能力,比如挖掘出来的知识或商业规则如何推送到营销平台上等等

梳理自己的知识结构,不仅会操作,现在你应该成为专家了,要能够宣扬你的知识能力和领导力,当然也要表明你在数据挖掘领域的专业特长

要经常帮助同事和行业朋友,比如帮助解决数据分析问题,帮助咨询,甚至给大家讲课,这对你的知识梳理和能力的提高非常重要,你的自信心会更强!

有兴趣,可以建立一个博客或什么,不断写点东西,经常思考和总结

结交广泛的朋友!

关于入门的教材:

互联网,其实不用买什么书网络基本都有;要有好的搜索能力,当然包括搜各种软件!

SPSS和Clementine软件的说明和案例,都做一遍;

《数据挖掘——客户关系管理的艺术》

《调查研究中的统计分析法》

《Excel高级应用与数据分析》

《数据展现的艺术》