最近一直觉得,其实机器学习的门槛并不高,以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机器学习进行员工离职预测系列(一)相关推荐

  1. r语言svr模型_使用R语言建立一个决策树回归模型

    决策树是一种简单但使用广泛的分类算法,根据目标变量的类型,决策树分为分类决策树(目标变量为因子型)与回归决策树(目标变量为连续数值型).在这里,我们使用R建议一个回归决策树模型. 决策树简单介绍 对于 ...

  2. r语言 bsda包_使用R语言creditmodel包进行Vintage分析或留存率分析

    1 什么是vintage分析? Vintage分析(账龄分析法)被广泛应用于信用卡及信贷行业,这个概念起源于葡萄酒,即不同年份出产的葡萄酒的品质有差异,那么不同时期开户或者放款的资产质量也有差异,其核 ...

  3. r语言siggenes包_初探R语言可视化交互式包plotly——旭日图(Sunburst Chart)

    ploylt原来是一款用来做数据分析和可视化的在线平台,后来有人开发了一些语言(Python.R.Matlab等)的API,在R里就是plotly包了.plotly已经发布在CRAN上了,要想安装,仅 ...

  4. r语言 线性回归 相关系数_基于R语言的lmer混合线性回归模型

    原文 基于R语言的lmer混合线性回归模型​tecdat.cn 混合模型适合需求吗? 混合模型在很多方面与线性模型相似.它估计一个或多个解释变量对响应变量的影响.混合模型的输出将给出一个解释值列表,其 ...

  5. r语言lm函数_如果R语言自带函数不能用,那我就自己写一个

    一个很大的矩阵, 320127 行, 8189列,假如用一个全为0的普通矩阵来存储,需要用到9.8Gb cols 8189 rows 320127 mat matrix(data = 0, nrow= ...

  6. r语言 悲观剪枝_《R语言编程—基于tidyverse》新书信息汇总

    我之前预告过的 R 语言新书,起名为<R语言编程-基于tidyverse>,本书的目的是为了在国内推广 R 语言和 R 语言最新技术,电子版将始终跟踪最新并免费分享.本书非常适合新手 R ...

  7. r语言 悲观剪枝_【R语言新书】前言Ⅲ—R语言编程思想

    张敬信:我的R语言新书信息汇总​zhuanlan.zhihu.com 0.3 R 语言编程思想 0.3.1 面向对象 R 是一种基于对象的编程语言,即在定义类的基础上,创建与操作对象:数值向量.函数. ...

  8. r语言pls分析_基于R语言的PLS算法的实现解读.pptx

    基于R语言的PLS算法的实现及研究 目录 使用的开发工具 偏最小二乘的设计思想 基于R语言.MATLAB的偏最小二乘的实现 通径分析 测定系数 实验分析 使用的开发工具 R 语言(R是用于统计分析.绘 ...

  9. r语言 断轴 画图_基于R语言绘制坐标轴截断图

    画图时经常遇到不同组的数据大小相差很大,大数据就会掩盖小数据的变化规律,这时候可以对Y轴进行截断,从而可以在不同层面(大数据和小数据层面)全面反映数据变化情况,如下图所示. 搜索截断图绘制的方法,有根 ...

  10. r语言平均值显著性检验_最全的R语言统计检验方法_数据挖掘中R语言的运用

    最全的R语言统计检验方法_数据挖掘中R语言的运用 统计检验是将抽样结果和抽样分布相对照而作出判断的工作.主要分5个步骤:建立假设 求抽样分布 选择显著性水平和否定域 计算检验统计量 判定 假设检验(h ...

最新文章

  1. 威纶通宏开机后使用初始化宏指令_【操作系统】我们按下电脑开机键的背后发生了什么?...
  2. 一种可以穿透还原卡和还原软件的代码
  3. 反思相信谁的评价:一直的坚定的不移的相信自己对自己的评价 相信自己是多么的重要
  4. python openstack rabbitmq_OpenStack--Rabbitmq组件消息队列
  5. E95-DTU(4G01-485)数传电台的特点及其应用详解
  6. Android 自定义字体,设置字体
  7. 科幻照进现实!2020年这个最新编程技术,将完全颠覆软件开发习惯
  8. [轉]如何使用 MySQL Administrator 管理/备份/还原 My SQL 数据库
  9. 著名音频库多角度对比(多平台可用)
  10. 在MySQL中,一条查询语句是如何执行的
  11. hashcode和equals方法详细解析, hashmap对于hashcode方法的使用
  12. 东北大学材料成型机械设备课后作业答案汇总
  13. jsoup抓取网页+具体解说
  14. stm32f030移植到stm32f072
  15. 设计原则之依赖倒置原则详解
  16. python招聘-的python招聘
  17. 面试官:讲讲互斥锁、自旋锁吧
  18. excel表格添加文字太长了,需要换行?
  19. 听框架师——李云谈如何成为一个技术“牛人”
  20. 马斯克坚信的“矩阵模拟”,是一种怎样“烧脑”的存在?

热门文章

  1. python语言 表白程序_python编写的GUI表白小程序
  2. b站如何一次性把up主全部取消关注,让自己去学习
  3. action中获取jsp页面的参数的方法
  4. 反射创建实例时出现异常 class *** cannot access a member of class *** with modifiers
  5. 麦肯锡三部曲_《学会提问:麦肯锡工作法》—读书笔记导图分享
  6. 我喜欢出发(汪国真)
  7. 网络栈主要结构介绍(socket、sock、sk_buff,etc)
  8. 单边指数信号的特点_单边带通信的特点
  9. 计算机怎么打开隐藏的项目,展示win10系统怎么打开隐藏文件夹
  10. python工资有多少-Python工程师工资多少