目的是什么:任务的目标是建立一个模型,该模型经过训练后能够预测参加某公司培训的人结束培训后寻找新工作的可能性。
数据在哪儿:该数据集包含参与培训的人的个人信息,包括性别、居住城市、目前在职的公司情况和学历等等特征。最重要的,包含最终是否寻找新工作,也就是拥有标签。
要达到的标准:这是一个典型的分类问题,我们将使用不同的分类器,让评价指标来告诉我们哪个是最合适的模型。

点此跳转Github查看数据集及代码

1. 处理数据,数据清洗

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import os
os.chdir(r'……')
data_train=pd.read_csv('aug_train.csv')
print(data_train.shape)
data_train.head()

结果如下:

# 这个数据集有很多NaN值,先统计各字段的缺失率
data_train.apply(lambda x: sum(x.isnull())/len(x),axis=0)

特征 enrollee_id:候选人的唯一ID city:城市代码 city_ development _index:城市发展指数 gender:候选人性别 relevent_experience:候选人是否有相关经验 enrolled_university:已注册的大学课程类型 education_level:候选人的教育程度 major_discipline:候选人的专业 experience:候选人的工作年限 company_size:当前雇主公司中的雇员人数 company_type:当前雇主公司的类型 lastnewjob:当前雇主公司的工作年限 training_hours:培训时间时长

data_train=data_train.fillna('no')
data_train['company_size'] = data_train['company_size'].replace('10/49', '10-49')

2. 描述性统计&可视化

用tableau进行数据探索,见下图

import warnings
warnings.filterwarnings('ignore')
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
%matplotlib inline
fig = px.pie(data_train['target'].value_counts(), values='target', names = data_train['target'].value_counts().index,title = 'target',template='ggplot2')
fig.show()

从上面的饼图不难看出,这个训练集的标签数量是不平衡的,记住这个结论。

3. 建立模型(scikit-learn)

3.1 处理非数值的特征

# 用 preprocessing.OrdinalEncoder 将分类特征转换为分类数值
from sklearn.preprocessing import OrdinalEncoder
Ordinal_encoder = OrdinalEncoder([['no','Male','Female','Other']['no','no_enrollment','Full time course','Part time course'],['no', 'Primary School',  'High School', 'Graduate', 'Masters', 'Phd'],'no,<1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,>20'.split(','),['STEM','no','Humanities','Other','Business Degree','Arts','No Major'],['no','<10', '10-49', '50-99', '100-500', '500-999' ,'1000-4999', '5000-9999', '10000+'],['no','Pvt Ltd','Funded Startup','Public Sector','Early Stage Startup','NGO','Other'],['no','1', '2', '3', '4', '>4', 'never']
])data_train_ordinal = data_train[['gender','enrolled_university','education_level', 'experience', 'major_discipline','company_size','company_type', 'last_new_job']]
data_train_ordinalEncoded = Ordinal_encoder.fit_transform(data_train_ordinal)

3.2 数据集划分

from sklearn.model_selection import train_test_split
#提取特征数据和目标数据
X=data_train_ordinalEncoded
y=data_train['target']
#划分数据集
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3)

3.3 用不同分类器建立模型

from sklearn.linear_model import LogisticRegression #逻辑回归
from sklearn.tree import DecisionTreeClassifier #决策树
from sklearn.ensemble import GradientBoostingClassifier #梯度提升决策树
from sklearn.ensemble import RandomForestClassifier # 随机森林
estimators = {'Logistic Regression': [LogisticRegression()],'Decision Tree' :[DecisionTreeClassifier()],'Gradient Boost' :[GradientBoostingClassifier()],'Random Forest' :[RandomForestClassifier()]}
def mfit(estimators, X_train, y_train):for m in estimators:estimators[m][0].fit(X_train, y_train)print(m+' fitted')mfit(estimators, X_train, y_train)

3.4 预测

from sklearn.metrics import confusion_matrix, classification_report, plot_roc_curve, roc_auc_score, roc_curve
def mpredict(estimators, X_test, y_test):outcome = dict()r_a_score = dict()for m in estimators:y_pred = estimators[m][0].predict(X_test)r_a_score[m] = roc_auc_score(y_test, y_pred)outcome[m] = [y_pred, confusion_matrix(y_pred,y_test), classification_report(y_pred,y_test)]return outcome, r_a_scoreoutcome, r_a_score = mpredict(estimators, X_test, y_test)
for m in outcome:print('------------------------'+m+'------------------------')print(outcome[m][1])print(outcome[m][2])

3.5 评价

下面要看看各分类器的ROC曲线比较

fig, ax = plt.subplots()
fig.set_size_inches(13,6)
for m in estimators:y_pred = estimators[m][0].predict_proba(X_test)fpr, tpr, _ = roc_curve(y_test, y_pred[:,1].ravel())plt.plot(fpr,tpr, label=m)
plt.xlabel('False-Positive rate')
plt.ylabel('True-Positive rate')
plt.legend()
plt.show()

不出所料,GDBT-也就是绿线代表的模型最优!

机器学习建模案例-人力资源分析相关推荐

  1. 【八步拿捏】Aaqus有限元分析及减震复材建模计算/力学分析等多个SCI案例复现(附源码解析)...

    研究背景 复合材料由于其性能优于普通材料,所以复合材料的应用日益广泛,而有限元仿真是研究材料力学性能的重要手段. ABAQUS作为现阶段应用最广泛的有限元仿真模拟软件,在模拟材料建模和分析复杂的材料力 ...

  2. plant simulation 建模案例分析

    plant simulation建模案例分析 一.问题背景 二.问题描述与分析 1. 生产流程 2. 主要问题 三.建立概念模型 1. 模型范围 2.模型细节度 四.仿真设计 1.预热期及仿真时间的确 ...

  3. DTAS3D 三维公差分析与尺寸链计算软件-AI自动建模案例

    AI逞威!火箭电控器数百装配&测量自动创建!仅需十分钟 简介:公差计算软件.公差分析软件.公差带计算软件.尺寸链计算.尺寸链公差分析.尺寸链分析与计算.尺寸链分析软件.尺寸公差软件.尺寸公差分 ...

  4. 《数学建模:基于R》一一1.7 数学建模案例分析——食品质量安全抽检数据分析...

    本节书摘来自华章计算机<数学建模:基于R>一书中的第1章,第1.7节,作者:薛 毅 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.7 数学建模案例分析-- ...

  5. 数据科学技术与应用【中国大学MOOC】:机器学习建模分析(三)_第五次单元测验_答案

    数据科学技术与应用 机器学习建模分析(三) 第五次单元测验 答案 题目来源:中国大学MOOC-东华大学-宋晖等-数据科学技术与应用 1 单选(1分) 关于人工智能.机器学习.深度学习三者的关系,正确的 ...

  6. 案例_IBM人力资源分析(上篇)

    一.背景 二.目标 内容比较多,分为上下两篇来更新 1)离职员工分布情况(上) 2)离职受哪些因素影响(上) 3)如何通过数据对员工离职进行预测(下) 三.执行 数据分析使用的matplotlib.p ...

  7. 做人力资源需要掌握python_9种人力资源分析工具,高效打造数字化HR全流程

    对于许多人和组织而言,采用HR分析是一大进步.确实,我经常被问到:"最好使用什么人力资源分析工具?"本文将为您提供该问题的答案,以下是要使用的九种最佳人力资源分析工具的列表. 1. ...

  8. matlab统计所有股票分析,MATLAB金融算法分析实战:基于机器学习的股票量化分析...

    MATLAB金融算法分析实战:基于机器学习的股票量化分析 作者:吴婷;余胜威 编著 出版日期:2017年07月 文件大小:32.24M 支持设备: ¥50.00在线试读 适用客户端: 言商书局 iPa ...

  9. 深入分析微软Microsoft Azure 机器学习工作室案例

    Microsoft Azure Machine Learning Studio是微软强大的机器学习平台,在设计器中,微软内置了15个场景案例,但网上似乎没有对这15个案例深度刨析的分析资料,所以我就计 ...

最新文章

  1. ubuntu的apt及pip自动下载换源脚本
  2. 技术人生:新的生活计划
  3. 计算机科学导论实验考试,计算机科学导论实验指导书
  4. PyCairo 中的图片
  5. 让人吐血的文章,要被气死了
  6. smarty中英文多编码字符截取乱码问题
  7. 逆战网络连接断开连接服务器超时_物联网设备的网络连接---中篇
  8. 守护进程和inetd超级服务器
  9. jetty:Address already in use: bind
  10. 【汇编语言与计算机系统结构笔记09】程序栈,(x86-32)过程调用,栈帧,寄存器使用惯例
  11. 计算机类实训室建设公司,计算机专业实训室建设方案修改
  12. embed标签动态改变Src的值,局部刷新播放其他视频的javascript方法
  13. 持续集成并不能消除 Bug,而是让它们非常容易发现和改正(转)
  14. zipf定律 齐普夫定律
  15. BLDC直流无刷电机的控制方式
  16. 【SPSS】SPSS学习笔记
  17. HTML 显示梯形图片
  18. 深度学习阅读导航 | 04 FPN:基于特征金字塔网络的目标检测
  19. 【系统分析师之路】企业信息化章节错题集锦
  20. (实用)宽带连接错误的处理办法691、623、678、645、720、 721、718、734...

热门文章

  1. withCredentials: false,
  2. mysql中avg函数如果有空值_SQL中AVG、COUNT、SUM、MAX等聚合函数对NULL值的处理
  3. 解决badboy录制时弹框提示“当前页面的脚本发生错误”
  4. 偶尔颓废也是一种必要
  5. 关于电磁波的几点常识
  6. 在Emacs中使用TODO
  7. 驱动人生被曝利用高危漏洞传播病毒,半天感染数万台电脑
  8. 金算盘与金蝶的“全程电子商务“谁第一?
  9. PDF转PPT文档软件PDF to PowerPoint Mac
  10. android 多用户卸载,多用户方案实现Android免ROOT卸载预装软件的思路