科赛网新人赛-员工满意度预测 MSE 0.02882

2023-11-10 12:51

本文主要是介绍科赛网新人赛-员工满意度预测 MSE 0.02882,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

科赛网新人赛-员工满意度预测 - 竞赛思路

  • 原贴地址
  • 项目地址

文章目录

  • 科赛网新人赛-员工满意度预测 - 竞赛思路
    • 有用的资料、文档、博客
    • 环境与工具
    • 1.0 基础知识
      • 1.1 数据挖掘流程:
    • 2.0 数据探索性分析
      • 2.1 单变量分析
      • 2.2 多变量分析
    • 3.0 特征工程
      • 3.1 特征创建
        • 3.1.1 笛卡尔积特征创建
        • 3.1.2 使用 number_project 对 average_monthly_hours 进行加权
      • 3.2 特征筛选
        • 3.2.1 互信息法
      • 3.3 特征预处理
        • 3.3.1 package 特征
        • 3.3.2 无量纲化
    • 4.0 建模
      • 4.1 单模 RandomForestRegressior
      • 4.2 Stacking 模型融合 Lightgbm + Xgboost + Ridge
    • 5.0 冲分日志

有用的资料、文档、博客

类别链接
数据预处理 API–Pandashttps://pandas.pydata.org/docs/reference/index.html
机器学习库–Sklearnhttps://scikit-learn.org/stable/modules/classes.html
数据可视化库–Seabornhttp://seaborn.pydata.org/
木东居士的特征工程系列(强烈推荐)https://blog.csdn.net/zhaodedong/article/details/103451692
数据科学大杀器模型-LightGBMhttps://lightgbm.readthedocs.io/en/latest/Python-API.html
Baseline 代码https://www.kesci.com/home/competition/forum/5f0aa9679ac5ac002db1d29f
模型融合博客https://wmathor.com/index.php/archives/1428/
新人赛讨论区https://www.kesci.com/home/competition/forumlist/5ec3b6987ba12c002d3e42bc
机器学习CheatSheethttps://machinelearningmastery.com/
强烈推荐这个人的数据挖掘系列https://wmathor.com/index.php
贝叶斯调参https://www.cnblogs.com/yangruiGB2312/p/9374377.html
Xgboost API Documenthttps://xgboost.readthedocs.io/en/latest/python/python_api.html

环境与工具

  • 编程语言:Python
  • 环境:Anaconda
  • 主要工具
    • Numpy(矩阵计算、数值计算)
    • Pandas(数据表分析)
    • Matplotlib、Seaborn(数据可视化)
    • Scikit-Learn(机器学习工具包)

1.0 基础知识

1.1 数据挖掘流程:

  • 赛题 / 数据来源/ 背景 理解
  • 数据探索性分析
  • 数据预处理
  • 特征工程(80%)
    • 特征创建
    • 特征筛选
    • 特征预处理
  • 建模
    • 模型选择
    • 模型训练
    • 模型调参
    • 模型效果检验
  • 预测

2.0 数据探索性分析

2.1 单变量分析

  • 数据认知(字段类型、统计量)
  • 异常值探索
  • 统计量分析
  • 数据分布
  • 数据可视化

2.2 多变量分析

  • 相关性分析

3.0 特征工程

3.1 特征创建

我是做了很多别的尝试的,这里只给出能提升分数最多的方法

3.1.1 笛卡尔积特征创建
  • 在做这个之前有考虑聚合特征创建,但是这个数据集一对多的关系很少,不适合使用 featuretools 这种工具做聚合特征创建

  • 这个数据集里面大部分是类别型特征,而且维度不大,只有 9 维,因此对所有的类别型特征做二阶笛卡尔积来创建新特征

Image Name

3.1.2 使用 number_project 对 average_monthly_hours 进行加权
  • 通过相关性分析得知,number_projectaverage_monthly_hours 呈正相关
  • 之前跑随机森林时对特征进行可视化,发现 average_monthly_hours 的特征重要性非常高,重要性排前三
  • 跑单模 LightGBM 发现,average_monthly_hours 的特征重要性甚至是排在第一
  • number_project 本身应当作为连续值,如果这个特征进行独热编码,其实是丢失了其本身的大小关系!!!
  • 利用 number_project 的大小关系对特征 average_monthly_hours 进行加权 l o g 2 log_2 log2 这个对数转换使得加权数值比较合理,不会太大也不会太小
  • 不知道你有没有发现,average_monthly_hours 是以小时为单位,个人认为以天为单位的模型鲁棒性会更好,所以对这个值除以 24

Image Name

3.2 特征筛选

3.2.1 互信息法

使用互信息法,从笛卡尔积特征创建的四百多维的特征中筛选出 8 个最佳特征,互信息既可以捕捉单个特征与标签的线性关系,也可以捕捉单个特征与标签的非线性关系

Image Name

3.3 特征预处理

3.3.1 package 特征

Image Name

通过对 package 特征进行分组,求 satisfaction_level 的均值,发现 a, c, e 类别对应的均值很相近,b, d 类别对应的均值很相近,把 a, c, e 类别的归为一类,b, d类别的归为一类。

3.3.2 无量纲化
  • average_monthly_hours 进行 MaxAbs 归一化

4.0 建模

根据别人的 Kernel,我发现单模效果最好的还是随机森林,自己也跑过 Lightgbm 发现效果并不理想

4.1 单模 RandomForestRegressior

4.2 Stacking 模型融合 Lightgbm + Xgboost + Ridge

5.0 冲分日志

2020-12-7

  • 跑通 Baseline,并分析 Baseline 的方法

2020-12-8

  • 跑了个 LightGBM,并进行了调参,但是没有 RF 效果好(MSE:0.032)
  • 进行了 RF 调参,但是还是没有调参前的 RF 效果好
  • Baseline 的 PCA + RF 第八名

Image Name

2020-12-9

  • 发现聚合特征创建不适合这个数据集,放弃 featuretools + 特征选择 + RF 这个思路
  • 根据数据分析结果进行特征创建(package预处理:0.02936)第五名

Image Name

  • 笛卡尔积特征创建 + f 检验(0.02933)第四名
  • 笛卡尔积特征创建 + 互信息(0.02904271)第四名

Image Name

2020-12-10

  • 先是跑了个lightgbm,发现这玩意儿练死劲儿不好用
  • 尝试各种连续值处理
    • 试了几种分箱,效果不理想
    • 试了 box-cox,log变换,标准化,效果还可以,不过还是 MaxAbsscaler 效果最好
  • 好家伙,要是上研了一定要买一台 i9 的笔记本💩😢
  • 今天分数没长进

ps: 注意:把连续值处理那块改回来,明天尝试聚类分箱

2020-12-11

  • 围绕连续值进行特征创建
  • 利用 特征number_projectaverage_monthly_hours 创建新特征,MSE :0.02882(第四名)
  • 利用 特征 number_projectlast_evaluation进行加权创建新特征,MSE 反而上升, 0.02892(第四)

Image Name

  • 溜溜球,明天考六级,做题去了嘻嘻
  • 看了一下冠军方案的宣传,虽然说咱也没买他的课程吧,但是从他透的那一点,还是对我们有帮助的,摘录一下
  • 要说明的是,我现在的方案多创建几个特征,就能超过这哥们当时的分数,这哥们的最终分数是 0.027,但是我感觉他的这一套流程不错,在此摘抄借鉴一下
  • 对 lightgbm 使用贝叶斯调参
  • Stacking 模型融合的三个模型分别是 随机森林回归、Xgboost、lightgbm
  • 明天要做的事情:在今天最优的 train_data 上跑一个贝叶斯调参的rfr + 贝叶斯调参的lightgbm,然后进行模型融合,看能提升到怎么样一个分数,如果效果好,在以此为测试模型,不断创建新特征,来提升分数
  • 根据大佬的博客,总结分析的套路、方法论这一套体系,以及每一环对应的知识、库、代码模板

注意:最优的数据集一定要 dump 下来,不要被分数冲昏了头脑👊

2020-12-12

  • 早上不想干,下午考六级,晚上去到实验室都7点多了,沃日,六级考试真是折磨王,兰德里的折磨🙃
  • 有点头疼,原来的模型跑了一下,凑合地把提交次数用完,然后新跑了个模型融合,是 Stacking 的 rfr + lgb,两个模型都没有网格搜索,然后元模型用了 岭回归,MSE 是 0.0290,感觉还是可以的,调参之后有望进入 0.027
  • 累死了,回去睡觉

2020-12-13

  • 失了智,要跑 Stacking 网格搜索,还是把 xgboost 的参数都搜一遍那种,其实用贪心法调参就好了
  • 尝试了 用 last_evaluation 对 average_monthly_hours 加权,效果不佳
  • 尝试了对 average_monthly_hours 进行聚类分箱,效果不佳
  • 进行融合的模型,最好是类似于 rfr 的 bagging 模型,可以在 sklearn 上面搜一下
  • 明天尝试对独热编码进行 embedding,要降维的话,肯定是要对有用的特征进行降维,通过特征重要性找到比较有用的类别型特征,然后 embedding
  • https://www.kaggle.com/aquatic/entity-embedding-neural-net/comments
  • https://blog.csdn.net/anshuai_aw1/article/details/83586404

2020-12-14

  • 当前最重要的任务是分析出,训练集和测试集的数据分布不一样在哪儿
  • 根据 进行分组,查看训练集和测试集差异较大的地方

2020-12-15

  • number_project 3,4 归为一类,5和3、4的方差相差比较大,所以不将5和3、4归为一类
  • time_spend_company 5,6,7 分为一组(先不分,看提交之后分数是否提升),8,10 分为一组
  • division “sales”,“technical”, “IT”, “RandD”, “hr” 归为一类

在这里插入图片描述

这篇关于科赛网新人赛-员工满意度预测 MSE 0.02882的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/382753

相关文章

Tensorflow lstm实现的小说撰写预测

最近,在研究深度学习方面的知识,结合Tensorflow,完成了基于lstm的小说预测程序demo。 lstm是改进的RNN,具有长期记忆功能,相对于RNN,增加了多个门来控制输入与输出。原理方面的知识网上很多,在此,我只是将我短暂学习的tensorflow写一个预测小说的demo,如果有错误,还望大家指出。 1、将小说进行分词,去除空格,建立词汇表与id的字典,生成初始输入模型的x与y d

临床基础两手抓!这个12+神经网络模型太贪了,免疫治疗预测、通路重要性、基因重要性、通路交互作用性全部拿下!

生信碱移 IRnet介绍 用于预测病人免疫治疗反应类型的生物过程嵌入神经网络,提供通路、通路交互、基因重要性的多重可解释性评估。 临床实践中常常遇到许多复杂的问题,常见的两种是: 二分类或多分类:预测患者对治疗有无耐受(二分类)、判断患者的疾病分级(多分类); 连续数值的预测:预测癌症病人的风险、预测患者的白细胞数值水平; 尽管传统的机器学习提供了高效的建模预测与初步的特征重

java计算机毕设课设—企业员工信息管理系统(附源码、文章、相关截图、部署视频)

这是什么系统? 获取资料方式在最下方 java计算机毕设课设—企业员工信息管理系统(附源码、文章、相关截图、部署视频) 企业员工信息管理系统旨在为公司提供高效的员工信息管理解决方案。该系统的核心功能涵盖密码修改、员工管理、部门管理、出勤管理、工资管理、请假审核等方面,帮助企业优化人力资源管理流程。系统结构如下: (1)前端(员工端): 1.密码修改:员工可以修改自己的密码,提升账户的安全

结合Python与GUI实现比赛预测与游戏数据分析

在现代软件开发中,用户界面设计和数据处理紧密结合,以提升用户体验和功能性。本篇博客将基于Python代码和相关数据分析进行讨论,尤其是如何通过PyQt5等图形界面库实现交互式功能。同时,我们将探讨如何通过嵌入式预测模型为用户提供赛果预测服务。 本文的主要内容包括: 基于PyQt5的图形用户界面设计。结合数据进行比赛预测。文件处理和数据分析流程。 1. PyQt5 图形用户界面设计

如何限制与管控员工上网行为?四个方法让员工效率倍增!【企业员工上网行为管理】

在信息化时代,员工的上网行为直接影响着工作效率和企业的安全性。不当的网络使用,如浏览与工作无关的网站、下载不安全的文件,可能导致工作效率低下,甚至引发安全风险。因此,许多企业正在积极寻找有效的措施来管控员工的上网行为,以确保工作效率的提升。 以下是四个常见且有效的员工上网行为管理方法,帮助企业实现更高效的网络管理。 方法一:配置网络防火墙进行访问限制 最基础的员工上网行为管理方法是通过配置防

CNN-LSTM模型中应用贝叶斯推断进行时间序列预测

这篇论文的标题是《在混合CNN-LSTM模型中应用贝叶斯推断进行时间序列预测》,作者是Thi-Lich Nghiem, Viet-Duc Le, Thi-Lan Le, Pierre Maréchal, Daniel Delahaye, Andrija Vidosavljevic。论文发表在2022年10月于越南富国岛举行的国际多媒体分析与模式识别会议(MAPR)上。 摘要部分提到,卷积

多维时序 | Matlab基于SSA-SVR麻雀算法优化支持向量机的数据多变量时间序列预测

多维时序 | Matlab基于SSA-SVR麻雀算法优化支持向量机的数据多变量时间序列预测 目录 多维时序 | Matlab基于SSA-SVR麻雀算法优化支持向量机的数据多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于SSA-SVR麻雀算法优化支持向量机的数据多变量时间序列预测(完整源码和数据) 2.SS

力扣 | 递归 | 区间上的动态规划 | 486. 预测赢家

文章目录 一、递归二、区间动态规划 LeetCode:486. 预测赢家 一、递归 注意到本题数据范围为 1 < = n < = 20 1<=n<=20 1<=n<=20,因此可以使用递归枚举选择方式,时间复杂度为 2 20 = 1024 ∗ 1024 = 1048576 = 1.05 × 1 0 6 2^{20} = 1024*1024=1048576=1.05 × 10^

回归预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)多输入单输出

回归预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)多输入单输出 目录 回归预测 | MATLAB实现PSO-LSTM(粒子群优化长短期记忆神经网络)多输入单输出预测效果基本介绍模型介绍PSO模型LSTM模型PSO-LSTM模型 程序设计参考资料致谢 预测效果 Matlab实现PSO-LSTM多变量回归预测 1.input和outpu

时序预测|变分模态分解-双向时域卷积-双向门控单元-注意力机制多变量时间序列预测VMD-BiTCN-BiGRU-Attention

时序预测|变分模态分解-双向时域卷积-双向门控单元-注意力机制多变量时间序列预测VMD-BiTCN-BiGRU-Attention 文章目录 一、基本原理1. 变分模态分解(VMD)2. 双向时域卷积(BiTCN)3. 双向门控单元(BiGRU)4. 注意力机制(Attention)总结流程 二、实验结果三、核心代码四、代码获取五、总结 时序预测|变分模态分解-双向时域卷积