前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >大数据告诉你,你为什么会跳槽?

大数据告诉你,你为什么会跳槽?

作者头像
数据STUDIO
发布2021-06-24 11:13:04
3680
发布2021-06-24 11:13:04
举报
文章被收录于专栏:数据STUDIO

本文分析数据科学家求职情况数据集,运用常见EDA方法分析每个特征情况及他们与目标变量之间的关系。使用seaborn进行数据可视化辅助分析数据科学家们更换工作都有哪些特征。

若你需要了解本数据集中每个特征变量情况,可参见《数据科学家们更换工作都有哪些特征上》。本篇将继续探索分析,看看跳槽的人群都有哪些特征。

你打算换工作吗?

0 - Not looking for job change 1 - Looking for a job change

代码语言:javascript
复制
target = df_train['target']
percent_nan(target)

Total

%

0.0

14381

75.1

1.0

4777

24.9

代码语言:javascript
复制
sns.countplot(x='target',
              data=df_train,
              palette="Set1").set_title('Train')
代码语言:javascript
复制

从求职人数角度看,求职人数明显低于未求职人数,仅占总人数的1/4。你是否打算跳槽?可见从事数据分析工作的工作者还算是比较稳定的职业。 从正负样本数量看,此数据集为不平衡数据集。对于样本不平衡,我们有较多处理方法,不在本文范围内,下篇将为介绍不平衡数据集的常规处理方法。

人群画像--求职者们都有哪些特征

大城市更能留住人才

代码语言:javascript
复制
with sns.axes_style():
    g = sns.displot(data=df_train, 
            x='city_development_index', 
            hue='target',
            kind='kde',
            legend=True,
            height=6,
            aspect=2)
    g.set_ylabels(fontsize=15)
    g.set_xlabels(fontsize=15)
    g.set_xticklabels(fontsize=15)
    g.set_yticklabels(fontsize=15)
代码语言:javascript
复制
plt.figure(figsize=(10,6))
sns.boxplot(x="target",y="city_development_index",data=df_train,palette="Set2")
plt.title("Distribution of city development index",fontsize=15)
plt.xlabel("looking for job change",fontsize=15)
plt.ylabel("city_development_index",fontsize=15)
代码语言:javascript
复制

平均城市发展指数越高的城市,更换工作的人越少。也就是说大城市的人更加倾向越扎根稳定工作。在大城市中可以得到更好的发展机会,得到更高的薪酬,人们更加愿意长久地服务一家企业。 相比之下,城市发展指数较低的城市并不能够很好地留住人才。

男性女性是否有差异?

代码语言:javascript
复制
def draw_countplot(hue,palette="Set1"):
    plt.figure(figsize=(10,6))
    ax = sns.countplot(x="target",data=df_train, hue=hue,palette=palette)
    total =float(len(df_train))

    plt.title("looking for Job change or not ?",fontsize=15)
    plt.xlabel("looking for job change",fontsize=15)
    plt.ylabel("Count",fontsize=15)

    for p in ax.patches:
        percentage = '{:.1f}%'.format(100 * p.get_height()/total)
        x = p.get_x() + p.get_width()
        y = p.get_height() + 50
        ax.annotate(percentage, (x, y),ha='right',fontsize=15)
    plt.show()
代码语言:javascript
复制
draw_countplot(hue="gender")

  • 从事数据科学工作的男性居多,而女性仅占有不到10个点。
  • 没有跳槽需求的男女比例约11%,比正在寻求工作的男女比例9.2%高出约两个百分点,或许从事数据科学工作的男性更加倾向稳定,又获取更换工作的成本更高,你是属于哪类呢?
  • 目前约有80%的人不希望换工作。

具有相关经验的人更加倾向稳定工作

代码语言:javascript
复制
draw_countplot("relevent_experience","Set2")

在求职者中,有相关经验和没有相关经验的人相差不大。而稳定就业人群中,大部分人都是有一定的相关经验,且较没有相关经验的人明显较多。 由此也可以看出,有相关经验的人更能够更好驾驭当前工作,更不易更换工作。 没有相关经验的人群,一般为刚毕业的应届生,而应届生离职率高达20%-30%,如此高的离职率追根究底是什么原因,是薪酬待遇不到位?是发展机会不够多?是工作强度过高?是与同事或老板相处不融洽?这是个值得深思的问题。

继续教育是离职主要原因吗?

统计跳槽原因中,有多少人是因为需要继续深造,包括全日制和非全日制学习,这里可以看出。

代码语言:javascript
复制

plt.figure(figsize=(10,6))
ax = sns.countplot(x="enrolled_university",data=df_train[df_train['target']==1],palette="Set3")
total_1 =float(len(df_train[df_train['target']==1]))
plt.title("University enrollment status of persons looking for job change",fontsize=15)
plt.xlabel("University enrollment status",fontsize=15)
plt.ylabel("count",fontsize=12)

for p in ax.patches:
    percentage = '{:.1f}%'.format(100 * p.get_height()/total_1)
    x = p.get_x() + p.get_width()
    y = p.get_height()+ 50
    ax.annotate(percentage, (x, y),ha='right',fontsize=15)
ax.set_xticklabels(df_train['enrolled_university'].unique(),fontsize=15)
ax.set_ylim(top=3300)
plt.show()

  • 大约37%的人离职是由于离职后继续高等教育。
  • 大约61%的人并没有没有登记需要任何继续教育。
  • 所以,他们离职可能是由于其他原因,比如薪水问题,工作满意度等等。

跳槽的人群中的学历情况是怎样的?

代码语言:javascript
复制
g = sns.catplot(x="target",
            hue='education_level',
            data=df_train,
            palette="Set1",
            kind="count",
            height=8,
            aspect=1.5)

从事数据科学工作的人群中,大学本科毕业生居多,高达60.5%,而硕士研究生人数也较高,占比22.8%. 而大学本科学历人群比具有硕士学历的人群更易跳槽。学历较高,意味着有相对较高的机会拿到更高的待遇,对工作满意度更高,更易受公司重视。当然,这都不是绝对的。

在本单位服务一年的人更易跳槽

代码语言:javascript
复制
plt.figure(figsize=(10,6))
ax = sns.countplot(x="last_new_job",data=df_train[df_train['target']==1])
total_1 =float(len(df_train[df_train['target']==1]))
plt.title("Difference in years between current job and previous job",fontsize=15)
plt.xlabel("Difference in years",fontsize=15)
plt.ylabel("count",fontsize=15)
for p in ax.patches:
    percentage = '{:.1f}%'.format(100 * p.get_height()/total_1)
    x = p.get_x() + p.get_width()
    y = p.get_height()+50
    ax.annotate(percentage, (x, y),ha='right',fontsize=15)
ax.set_ylim(top=2300)
plt.show()

与上一份工作相差一年的人占比高达44.5%,即此工作不到一年的人更易寻求更换工作。一年基本成为一个时限,大部分人在一个单位工作能坚持一年,其稳定性将会更好。

理工科人群更易选择跳槽

代码语言:javascript
复制
major_discipline = df_train[df_train['target'] == 1]['major_discipline']
values = major_discipline.value_counts()
labels = values.keys()
fig,ax = plt.subplots(figsize=(8,8))
plt.pie(x = values, labels = labels , autopct="%.2f%%",pctdistance=0.8,explode =[0.1,0,0,0,0,0,0])
plt.title('looking for job change (major discipline wise)', fontsize=18)

跳槽人群中,理工科占比约80%。作为一个理工科,更加倾向技术含量较高的工作,但大部分岗位并不能满足他们但需求。再加上理工科的岗位较其他学科的岗位更多,选择面更加广泛,这也助长了很多从业者跳槽的意愿。

毕业后工作多少年是跳槽高峰期?

代码语言:javascript
复制
order_experience = df_train[df_train['target']==1].experience.value_counts().index
plt.figure(figsize=(10,6))
ax = sns.countplot(x="experience",data=df_train[df_train['target']==1], order=order_experience)
total_1 =float(len(df_train[df_train['target']==1]))
plt.title("Work experience")
plt.xlabel("Work experience")

for p in ax.patches:
    percentage = '{:.1f}%'.format(100 * p.get_height()/total_1)
    x = p.get_x() + p.get_width()
    y = p.get_height()
    ax.annotate(percentage, (x, y),ha='center')
plt.show()

有3、4、5、2和>20经验的人更有可能寻求换工作。工作大于20年基本面临退休。 跳槽高峰期在工作3-5年,在大部分招聘岗位的招聘需求也是在这个年限。除了市场需求大外,另一个重要原因是,此年限内的上班族在职场里,无论是专业知识、工作激情、还是经验阅历相比于近年限段的人群,都是属于高峰期。

培训时长与目标变量

代码语言:javascript
复制
sns.displot(data=df_train, 
            x='training_hours', 
            hue='target',
            kind='kde',
            height=6,
            aspect=1.5)
代码语言:javascript
复制
plt.figure(figsize=(10,6))
sns.boxplot(x="target",y="training_hours",data=df_train,palette="Set3")
plt.title("Distribution of training hours",fontsize=15)
plt.xlabel("looking for job change",fontsize=15)
plt.ylabel("training_hours",fontsize=15)

对于找工作的人来说,平均完成的培训时间几乎是一样的。这意味着训练时间在这里没有影响。


pandas_profiling 教你一行代码生成数据分析报告。

代码语言:javascript
复制
import pandas_profiling as pp
report = pp.ProfileReport(train)
report.to_file('report.html')

得到的报告,基本包含本篇所分析的每个特征变量及变量之间的关系。如下?所示。

本文数据使用 kaggle数据集,关注公众号,并回复【 hr 】获取数据。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据STUDIO 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 你打算换工作吗?
  • 人群画像--求职者们都有哪些特征
    • 大城市更能留住人才
      • 男性女性是否有差异?
        • 具有相关经验的人更加倾向稳定工作
          • 继续教育是离职主要原因吗?
            • 跳槽的人群中的学历情况是怎样的?
              • 在本单位服务一年的人更易跳槽
                • 理工科人群更易选择跳槽
                  • 毕业后工作多少年是跳槽高峰期?
                    • 培训时长与目标变量
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档