数据分析岗位薪资预测
案例介绍
通过对主要城市数据分析岗位的招聘信息数据进行建模,实现对薪资水平的预测目的。
数据集介绍
数据集下载:薪资.csv
案例操作
为了对各城市数据分析岗位薪资的进行预测,需要对数据进行预处理,将数据处理为模型能够处理的类型。通过观察数据,我们选择对薪资水平进行预测。为了实现该目的,我们需要构建以下工作流:
1、拖动"加载文件"控件到画布中,单击控件,选择"薪资.csv"上传,上传后控件会显示数据基本信息,案例中的数据集包含2880个实例,11个特征,详细内容如下图所示:
在"属性列表"栏下,可以对原始数据中包含的各个属性的类型以及类别进行编辑,我们将address、company、diploma、experience以及labels属性的类型修改为categorical以便将其作为特征提供训练模型使用,将commision_pct属性类型设置为numeric。 配置完成后,右键控件点击【运行该控件】执行控件。
2、拖动"特征构建"控件到画布中,构建目标属性salary_level(薪资水平),将avg_salary转换为三种的收入水平:少于12K,[12K, 36K),大于36K。具体配置如下图所示:
我们选择创建一个【离散型】的属性,并将其【属性名】设置为salary_level,该属性是基于数据集中的avg_salary构建而得。需要在【表达式】中键入相关python代码:
">36" if avg_salary > 36 else "12-36" if avg_salary >= 12 and avg_salary<36 else "<12"
并在【离散值】中定义好将符合不同匹配条件的取值常量,由于上一步包含3个条件分支,所以我们需要三个对应的常量值分别表示不同的收入水平,不同的取值用逗号分隔:
>36, 12-36, <12
完成配置后执行控件即可。
3、创建完属性后,需要将刚创建的属性配置为待预测的目标属性。拖动"属性选择"控件到画布中,将salary_level移动到【目标属性】中,将avg_salary(平均薪资)、bottom(最低薪资)、top(最高薪资)、position(职位)、salary(薪资)移动到【可选属性】,避免干扰模型结果,将address(城市)、diploma(学历)、commision_pct(奖金率)、experience(经验)、company(招聘公司)、labels(行业标签)作为【特征属性】用来训练模型。具体配置如下:
4、完成模型构建必要属性的选择后,选择抽样得到的数据用于建模,剩余的数据用于评估模型好坏。拖动"数据抽样"控件到画布中,选择【交叉验证】,采用默认参数配置运行。
5、我们选择三个模型对数据进行建模,分别拖动"朴素贝叶斯"、"随机森林"、"LightGBM"控件到画布中。其中,"朴素贝叶斯"控件无模型参数,可直接运行。我们配置"随机森林"和"LightGBM"中的参数【树的数量】设置为50,其他参数保持默认值不变,采用的具体配置如下。
6、拖动"预测"控件到画布中,连接了测试数据、"朴素贝叶斯"、"随机森林"、"LightGBM"三个模型后,采用默认的输出配置,运行后模型将把原始数据、类别预测值输出用于模型评估:
点击【查看预测结果】对模型预测结果进行查看,默认显示前500条:
7、拖动"ROC 曲线"控件到画布中,并连接"预测"控件的输出,点击【查看结果】,关于薪资小于12K的模型预测结果的ROC曲线如下:
8、关于薪资在12K-36K之间的模型预测结果的ROC曲线如下:
9、关于薪资大于36K的模型预测结果的ROC曲线如 下: