r语言员工离职_使用R机器学习进行员工离职预测系列(一)
最近一直觉得,其实机器学习的门槛并不高,以R语言的角度,甚至稍微学过一点,就可以针对相关数据进行各种算法模型的建立和测试。
而真正有难度的地方一是算法优化部分,二是和对于模型评价的部分,这两个部分往往涉及更多的知识点。
本文用的数据集是kaggle上的员工离职数据集,大家可以自行下载,下面是用R选择逻辑回归算法建模预测的过程。
首先加载数据
hrdata
看数据结构,预测变量是left,就是员工是否离职
str(hrdata)
'data.frame':14999 obs. of 10 variables:
$ satisfaction_level : num 0.38 0.8 0.11 0.72 0.37 0.41 0.1 0.92 0.89 0.42 ...
$ last_evaluation : num 0.53 0.86 0.88 0.87 0.52 0.5 0.77 0.85 1 0.53 ...
$ number_project : int 2 5 7 5 2 2 6 5 5 2 ...
$ average_montly_hours : int 157 262 272 223 159 153 247 259 224 142 ...
$ time_spend_company : int 3 6 4 5 3 3 4 5 5 3 ...
$ Work_accident : int 0 0 0 0 0 0 0 0 0 0 ...
$ left : int 1 1 1 1 1 1 1 1 1 1 ...
$ promotion_last_5years: int 0 0 0 0 0 0 0 0 0 0 ...
$ Department : Factor w/ 10 levels "accounting","hr",..: 8 8 8 8 8 8 8 8 8 8 ...
$ salary : Factor w/ 3 levels "high","low","medium": 2 3 3 2 2 2 2 2 2 2 ..ka
把数据分为训练数据和测试数据:
set.seed(123)
ind
train
test
看看两个数据集是否均衡
table(train$left)
0 1
8029 2511
table(test$left)
0 1
3399 1060
当下不做任何探索和优化,直接建模,把除了离职left数据之外的所有数据列作为特征进行预测。
hrdata_glm
summary(hrdata_glm)
上面一句话就完成了逻辑回归模型的建立和训练,然后看看我们的模型对于训练数据集的准确性度,使用混淆矩阵进行查看
train.result =0.5,1,0)
confusionMatrix(factor(train.result),factor(train$left))
Confusion Matrix and Statistics
Reference
Prediction 0 1
0 7474 1590
1 555 921
Accuracy : 0.7965
95% CI : (0.7887, 0.8041)
No Information Rate : 0.7618
P-Value [Acc > NIR] : < 2.2e-16
可以看到,在没有任何特征选择和优化的情况下,训练已经能够得到0.8的准确率,也就是解释了80%的结果。但是这里有个误区,混淆矩阵里对于预测没有离职但是实际离职的人数达到1590人,占所有总离职人数的大部分,从这点上来说,模型并不让人满意。
优化模型有多种方法,一是仍然使用逻辑回归,但是进行特征和参数优化,二是选择其他模型和算法,我们以后再讲。
r语言员工离职_使用R机器学习进行员工离职预测系列(一)相关推荐
- r语言svr模型_使用R语言建立一个决策树回归模型
决策树是一种简单但使用广泛的分类算法,根据目标变量的类型,决策树分为分类决策树(目标变量为因子型)与回归决策树(目标变量为连续数值型).在这里,我们使用R建议一个回归决策树模型. 决策树简单介绍 对于 ...
- r语言 bsda包_使用R语言creditmodel包进行Vintage分析或留存率分析
1 什么是vintage分析? Vintage分析(账龄分析法)被广泛应用于信用卡及信贷行业,这个概念起源于葡萄酒,即不同年份出产的葡萄酒的品质有差异,那么不同时期开户或者放款的资产质量也有差异,其核 ...
- r语言siggenes包_初探R语言可视化交互式包plotly——旭日图(Sunburst Chart)
ploylt原来是一款用来做数据分析和可视化的在线平台,后来有人开发了一些语言(Python.R.Matlab等)的API,在R里就是plotly包了.plotly已经发布在CRAN上了,要想安装,仅 ...
- r语言 线性回归 相关系数_基于R语言的lmer混合线性回归模型
原文 基于R语言的lmer混合线性回归模型tecdat.cn 混合模型适合需求吗? 混合模型在很多方面与线性模型相似.它估计一个或多个解释变量对响应变量的影响.混合模型的输出将给出一个解释值列表,其 ...
- r语言lm函数_如果R语言自带函数不能用,那我就自己写一个
一个很大的矩阵, 320127 行, 8189列,假如用一个全为0的普通矩阵来存储,需要用到9.8Gb cols 8189 rows 320127 mat matrix(data = 0, nrow= ...
- r语言 悲观剪枝_《R语言编程—基于tidyverse》新书信息汇总
我之前预告过的 R 语言新书,起名为<R语言编程-基于tidyverse>,本书的目的是为了在国内推广 R 语言和 R 语言最新技术,电子版将始终跟踪最新并免费分享.本书非常适合新手 R ...
- r语言 悲观剪枝_【R语言新书】前言Ⅲ—R语言编程思想
张敬信:我的R语言新书信息汇总zhuanlan.zhihu.com 0.3 R 语言编程思想 0.3.1 面向对象 R 是一种基于对象的编程语言,即在定义类的基础上,创建与操作对象:数值向量.函数. ...
- r语言pls分析_基于R语言的PLS算法的实现解读.pptx
基于R语言的PLS算法的实现及研究 目录 使用的开发工具 偏最小二乘的设计思想 基于R语言.MATLAB的偏最小二乘的实现 通径分析 测定系数 实验分析 使用的开发工具 R 语言(R是用于统计分析.绘 ...
- r语言 断轴 画图_基于R语言绘制坐标轴截断图
画图时经常遇到不同组的数据大小相差很大,大数据就会掩盖小数据的变化规律,这时候可以对Y轴进行截断,从而可以在不同层面(大数据和小数据层面)全面反映数据变化情况,如下图所示. 搜索截断图绘制的方法,有根 ...
- r语言平均值显著性检验_最全的R语言统计检验方法_数据挖掘中R语言的运用
最全的R语言统计检验方法_数据挖掘中R语言的运用 统计检验是将抽样结果和抽样分布相对照而作出判断的工作.主要分5个步骤:建立假设 求抽样分布 选择显著性水平和否定域 计算检验统计量 判定 假设检验(h ...
最新文章
- 威纶通宏开机后使用初始化宏指令_【操作系统】我们按下电脑开机键的背后发生了什么?...
- 一种可以穿透还原卡和还原软件的代码
- 反思相信谁的评价:一直的坚定的不移的相信自己对自己的评价 相信自己是多么的重要
- python openstack rabbitmq_OpenStack--Rabbitmq组件消息队列
- E95-DTU(4G01-485)数传电台的特点及其应用详解
- Android 自定义字体,设置字体
- 科幻照进现实!2020年这个最新编程技术,将完全颠覆软件开发习惯
- [轉]如何使用 MySQL Administrator 管理/备份/还原 My SQL 数据库
- 著名音频库多角度对比(多平台可用)
- 在MySQL中,一条查询语句是如何执行的
- hashcode和equals方法详细解析, hashmap对于hashcode方法的使用
- 东北大学材料成型机械设备课后作业答案汇总
- jsoup抓取网页+具体解说
- stm32f030移植到stm32f072
- 设计原则之依赖倒置原则详解
- python招聘-的python招聘
- 面试官:讲讲互斥锁、自旋锁吧
- excel表格添加文字太长了,需要换行?
- 听框架师——李云谈如何成为一个技术“牛人”
- 马斯克坚信的“矩阵模拟”,是一种怎样“烧脑”的存在?
热门文章
- python语言 表白程序_python编写的GUI表白小程序
- b站如何一次性把up主全部取消关注,让自己去学习
- action中获取jsp页面的参数的方法
- 反射创建实例时出现异常 class *** cannot access a member of class *** with modifiers
- 麦肯锡三部曲_《学会提问:麦肯锡工作法》—读书笔记导图分享
- 我喜欢出发(汪国真)
- 网络栈主要结构介绍(socket、sock、sk_buff,etc)
- 单边指数信号的特点_单边带通信的特点
- 计算机怎么打开隐藏的项目,展示win10系统怎么打开隐藏文件夹
- python工资有多少-Python工程师工资多少