Logisitc Regression 预测员工离职率
Logistic Regression 基础
Logistic Regression 沿用了 Linear Regression 的思路和想法,通过使用线性关系拟合得到真实的函数关系。同样的,如果模型结果表现不好,可能是超参数没调好,或者是训练集的特征没处理好(可以多构造一些特征,将线性特征构造成为非线性特征之类的)。
由于用Linear Regression 求得的解范围是 正无穷 到 负无穷,而最后得到只是某一分类的概率,其取值范围是 [0,1],所以我们需要将最后得到的值经过某个合适的投影,投射到 [0,1] 范围内。
这里就引入了 odds 的概念 和 sigmoid 函数。
引入 odds 的原因是,想要将概率投射到 [0, 正无穷] 这个范围上,所以要引入 odds。
引入 sigmoid 函数的原因是,想要将 [0, 正无穷] 投射到 [负无穷,正无穷] 这个范围上,所以要引入 sigmoid 函数。
Logistic Regression 预测员工离职率
直接调库运算
from sklearn.linear_model import LogisticRegression
from patsy import dmatrices # 作用是将 离散变量变为 哑变量
y,X = dmatrices('left~satisfaction + last_evaluation + number_project
+ C(sales) + C(salary), data, return_type = 'dataframe')# C(sales) 表示 将 sales 变成哑变量
model = LogisticRegression()
model.fit(X,y)
pd.DataFrame(list(zip(X.columns, np.transpose(model.coesf_)))) # 显示系数
pred = model.predict(x) # 进行预测
Logistic Regression 理论上是通过梯度下降法来求解的。
LR 的普通 gradient descend 代码如下所示:
# 这需要事先知道导数是什么,计算机可不会帮你去求导
# 我们需要做的就是不断更新这个导数
# 更新的步长是我们自己设定的,或者是 error 到达某一个比较小的值
np.random.seed(1)
alpha = 1 # learning rate 这个值是比较重要的
beta = np.random.randn(X.shape[1]) # 随机初始化一个梯度
for T in range(500): # 迭代次数prob = np.array(1./ ( 1 + np.exp(-np.matmul(X, beta)))).ravel()prob_y = list(zip(prob, y)) # 为了下面计算 loss 用的, 对 gd 没啥作用loss = -sum([np.log(p) if y == 1 else np.log(1-p) for p, y in prob)y]) / len(y) # 计算 loss, 目的是为了比较用的,对 gd 没啥作用error_rate = 0for i in range(len(y)):if ((prob[i] > 0.5 and y[i] == 0) or (prob[i] <= 0.5 and y[i] == 1)):error_rate += 1error_rate /= len(y)if T % 5 ==0:print('T=' + str(T) + 'loss = ' + str(loss) + 'error = ; + str(error_rate)) # 目的是实时输出一个 loss 和 eoorderiv = np.zeros(X.shape[1])
for i in range(len(y)): # 对每一个 instance 都计算其导数deriv += np.asarray(X[i,:].ravel() * (prob[i] - y[i]) # 把所有 instance 对应的导数加起来deriv /= len(y) # 求一个平均值beta -= alpha * deriv # 更新这个 beta
对于整个更新的过程,最实质的代码是
for i in range(len(y)): # 对每一个 instance 都计算其导数deriv += np.asarray(X[i,:].ravel() * (prob[i] - y[i]) # 把所有 instance 对应的导数加起来deriv /= len(y) # 求一个平均值beta -= alpha * deriv # 更新这个 beta
这里计算 prob[i] 的原因是导数中有这一项,所以要在这里进行计算。
Logistic Regression 中的正则化
关于正则化,首先需要明白的一个结论是:beta (模型中的系数) 越大,则说明模型越复杂。
为了避免overfitting的问题,我们在模型中引入正则化系数。正则化系数设为R。R值越大,则最后训练出来的 beta 值越小。模型越简单。
给正则话系数赋值的操作如下所示:
model = LogisticRegression(C = 1e5)
C 的值是 正则化系数的 倒数。
Logisitc Regression 预测员工离职率相关推荐
- 如何利用大数据分析技术预测员工离职?
为什么我们要对员工离职进行预测,因为它会帮助公司减少员工离职成本的消耗. 本文为美国肯尼索州立大学刘丽媛(Lilian)在HR成长部落2019年6月23日的线下活动分享文字实录,希望对大家在数据分析在 ...
- 团队管理(3)---有效降低企业员工离职率
有效降低企业员工离职率 招人难!居高不下的员工离职率,更使企业招聘难上加难!近年来,楚柳香小编很多HR朋友都在抱怨公司员工离职率过高的问题.过高的员工流失率,使许多企业都处在招聘--流失--再招聘-- ...
- 为什么现在90后员工离职率那么高?
近几年职场上普遍存在一个奇怪的现象,90后的员工离职率特别高,95后就更不用说了,几乎可以用"一言不合就离职"来形容.那究竟是为什么现在90后的员工离职率那么高呢? 回想我们父母那 ...
- 员工离职率预测,练手赛
文章目录 1.数据探索 1.1 各特征总量及百分比 1.2 heatmap 2.特征选择&处理 2.1 特征分类 2.2 连续特征选择 2.3 分类特征选择 2.4 异常值处理 2.5 连续特 ...
- 使用深度学习预测员工流失率
墨西哥的员工流动率在全球排名第八,平均每年约17%的流失率 - 一些行业(如餐饮服务)的流失率高达50%. 根据Catalyst的一项研究,平均而言,替换员工的成本约为员工年薪的50%至75%. 考虑 ...
- 如何使用Keras和TensorFlow建立深度学习模型以预测员工留任率
The author selected Girls Who Code to receive a donation as part of the Write for DOnations program. ...
- 博士员工离职率21.8%,任正非反思:华为这么大,英雄为何无用武之地?
** 2019程序员转型学什么? https://edu.csdn.net/topic/ai30?utm_source=csdn_bw ** 导读:这份文件中的数据显示,近公司博士类员工近5年累计平均 ...
- 华为给博士毕业生开出天价年薪!为何博士级员工离职率依旧高达21.8%
昨日(7月23日),网络盛传一张华为总裁办电子邮件的截图.截图显示,华为已制定2019届顶尖学生年薪制方案:8位2019届应届博士生年薪89.6万起,其中最高的达到了201万. 华为:从全世界招募天才 ...
- 竟可监控员工离职倾向!一系统引发大争议
南方都市报(nddaily).N视频报道 南都记者 方诗琪 叶霖芳 实习生 曾汉 近日,一款可监测员工离职倾向和怠工情况的系统引发热议.该系统被指或为上市公司深信服科技股份有限公司(下称"深 ...
最新文章
- 效率翻倍!推荐10个超实用的神器工具,高效率办公必备
- DNF登录器显示WIN无法访问指定设备_快速修复无法访问的u盘,不需要工具
- flight php 中文,PHP: composer的简单使用
- scss的使用方式(环境搭建)
- SQL Server 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现
- 第12章[12.4] 鼠标移入移除时弹出和关闭窗口
- 美团正押注无人车?没错,这是外卖大战的第三阶段
- Web API-排他思想及其案例
- ubuntu16.04命令行模式和图形界面互相切换
- 感慨公交车766路调整
- 谭浩强C语言程序设计第五版第七章例题
- C语言考试题及答案(一)
- 半透明导航栏css代码,纯CSS实现的紫罗兰风格导航条效果代码
- ArcGIS 9.3下载,包含ArcGIS Desktop、ArcGIS Engine、ArcGIS Server、ArcSDE、workstation
- Java实现简单的KFC点餐系统(未实现可视化)
- 文件上传漏洞及解析漏洞总结
- 如何将电梯门禁卡复制到手机/手环上
- php emoji 保存 显示不出来,PHP导出带有emoji表情的文本到excel文件出问题了
- (附源码)基于JSP的养老院信息管理系统的设计与实现 毕业设计211141
- 工程流体力学笔记暂记30 (管道水力计算)
热门文章
- 如何做口碑营销?企业实施网络口碑营销的技巧
- 超好用的画图工具推荐
- 计算机应用月什么,计算机应用月考试卷
- RMAN CROSSCHECK命令 说明
- php电子商务的服装库存管理系统
- Qt使用 QProcess来检测 ip 设备是否在线(Ping)
- 2022-2028年全球与中国老年手机行业发展趋势及竞争策略研究
- java中小数后加f_在 Java 中,小数默认为 ,如果要指定 类型请在小数后加 F/f 。_学小易找答案...
- python自动化看什么书_python自动化测试书籍
- php去除编辑器html标签,js处理富文本编辑器转义、去除转义、去除HTML标签