文章目录
  • 项目背景:
  • 本项目的目标:
  • 本项目算法说明:
  • 读取数据
  • 初步探索性分析
  • 建立决策树模型
  • 支持向量机SVM算法预测
  • 项目总结
  • ps:如果想要数据集资源请在评论区下方进行评论。

项目背景:

对于任何一家公司来讲,员工队伍的稳定性对于企业的发展都至关重要。之前马老师也说过,员工离职无非两个原因,其一是工资没有给到位,其二是员工干的不爽。所以员工离职预测的价值就愈发的凸显出来了,尤其对于HR部门,较早的预测可以帮助企业未雨绸缪,尽可能降低因为人员变动而给公司带来的损失。

本项目的目标:

读取员工离职数据集 初步的探索性分析 建立决策树模型 建立支持向量机模型、模型评估、项目总结。

本项目算法说明:

一、Decision Tree是一种用来分类和回归的无参监督学习方法。其目的是创建一种模型从数据特征中学习简单的决策规则来预测一个目标变量的值。

例如,在下面的图片中,决策树通过if-then-else的决策规则来学习数据,从而估测数一个正选函数图像,决策树越深入,决策树规则就越复杂并且对数据的拟合越好。

机器学习项目三:员工离职率分析_机器学习

决策树的优点:

1、便于理解和解释,树的结构可以可视化出来。

2、训练需要的数据少。其他的机器学习模型通常需要数据规范化,比如构建虚拟变量和移除缺失值,不过需要注意的是,这种模型不支持缺失值。

3、由于训练决策树的数据点的数量导致决策树的使用开销呈指数分布(训练树模型的时间复杂度是参与训练数据点的对数值)

4、能够处理数值型数据和分类数据。其他的技术通常只能用来专门分析某一种变量行的数据集。

5、使用白盒模型。如果某种给定的情况在该模型中是可以观察的,那么就可以轻易的通过布尔值逻辑来解释这种情况。相比之下,在黑盒模型中的结果就很难说明清楚

6、可以通过数值统计测试来验证该模型。这对解释验证该模型的可靠性成为可能。

7、即使该模型假设的结果与真实模型所提供的数据有些违反,其表现依旧良好。

决策树的缺点包括:
1、决策树模型容易产生一个过于复杂的模型,这样的模型对数据的泛化性能会很差。这就是所谓的过拟合.一些策略像剪枝、设置叶节点所需的最小样本数或设置数的最大深度是避免出现 该问题最为有效地方法。
2、决策树可能是不稳定的,因为数据中的微小变化可能会导致完全不同的树生成。这个问题可以通过决策树的集成来得到缓解。
3、在多方面性能最优和简单化概念的要求下,学习一棵最优决策树通常是一个NP难问题。因此,实际的决策树学习算法是基于启发式算法,例如在每个节点进 行局部最优决策的贪心算法。这样的算法不能保证返回全局最优决策树。这个问题可以通过集成学习来训练多棵决策树来缓解,这多棵决策树一般通过对特征和样本有放回的随机采样来生成。
4、有些概念很难被决策树学习到,因为决策树很难清楚的表述这些概念。例如XOR,奇偶或者复用器的问题。
如果某些类在问题中占主导地位会使得创建的决策树有偏差。因此,我们建议在拟合前先对数据集进行平衡。

二、支持向量机(SVM)
1、支持向量机可以用于监督学习算法下的:分类、回归和异常检测;
2、支持向量机的优势:
1、在高维空间中非常高效。
2、即使在数据维度比样本数量大的情况下仍然有效。
3、在决策函数中使用训练集的子集,因此他也是高效利用内存的。
4、通用型:不同的核函数与特定的决策函数一一队形,常见的kernel已经提供,也可以指定定制的内核。

3、支持向量机的缺点:
1、如果也正数量比样本数量大的多,在选择核函数时要避免过度拟合,而且正则化项是非常重要的。
2、支持向量机不直接提供概率估计,这些都是使用岗位的五次交叉验证计算的。

读取数据
# 导入第三方库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns;sns.set()
%matplotlib inline
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
# 读取数据
df = pd.read_csv('/HR_comma_sep.csv')
df.head()
  • 1.
  • 2.
  • 3.

机器学习项目三:员工离职率分析_决策树_02

# 查看数据集的基本信息
df.info()
  • 1.
  • 2.

机器学习项目三:员工离职率分析_决策树_03