r语言员工离职_使用R机器学习进行员工离职预测系列(一)

本文介绍如何使用R语言基于kaggle的员工离职数据集建立逻辑回归模型,探讨模型预测准确性和初步优化的重要性。
摘要由CSDN通过智能技术生成

最近一直觉得,其实机器学习的门槛并不高,以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人,占所有总离职人数的大部分,从这点上来说,模型并不让人满意。

优化模型有多种方法,一是仍然使用逻辑回归,但是进行特征和参数优化,二是选择其他模型和算法,我们以后再讲。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值