利用lightgbm做learning to rank 排序,解析模型中特征重要度
向AI转型的程序员都关注了这个号????????????
机器学习AI算法工程 公众号:datayx
去年实习时,因为项目需要,接触了一下Learning to Rank(以下简称L2R),感觉很有意思,也有很大的应用价值。L2R将机器学习的技术很好的应用到了排序中,并提出了一些新的理论和算法,不仅有效地解决了排序的问题,其中一些算法(比如LambdaRank)的思想非常新颖,可以在其他领域中进行借鉴。鉴于排序在许多领域中的核心地位,L2R可以被广泛的应用在信息(文档)检索,协同过滤等领域。
本文将对L2R做一个比较深入的介绍,主要参考了刘铁岩、李航等人的几篇相关文献,我们将围绕以下几点来介绍L2R:现有的排序模型,为什么需要使用机器学习的方法来进行排序,L2R特征的选取,L2R训练数据的获取,L2R训练和测试,L2R算法分类和简介,L2R效果评价等。
lightGBM用于排序(Learning to Rank )
利用lightgbm做learning to rank 排序,主要包括:
数据预处理
模型训练
模型决策可视化
预测
ndcg评估
特征重要度
SHAP特征贡献度解释
样本的叶结点输出
(要求安装lightgbm、graphviz、shap等)
代码及运行教程 获取:
关注微信公众号 datayx 然后回复 排序 即可获取。
AI项目体验地址 https://loveai.tech
模型训练
python lgb_ltr.py -train
模型决策过程的可视化生成
可指定树的索引进行可视化生成,便于分析决策过程
利用SHAP值解析模型中特征重要度
python lgb_ltr.py -shap
这里不同于六中特征重要度的计算,而是利用博弈论的方法--SHAP(SHapley Additive exPlanations)来解析模型。利用SHAP可以进行特征总体分析、多维特征交叉分析以及单特征分析等。
1.总体分析
2.多维特征交叉分析
3.单特征分析
阅读过本文的人还看了以下文章:
TensorFlow 2.0深度学习案例实战
基于40万表格数据集TableBank,用MaskRCNN做表格检测
《基于深度学习的自然语言处理》中/英PDF
Deep Learning 中文版初版-周志华团队
【全套视频课】最全的目标检测算法系列讲解,通俗易懂!
《美团机器学习实践》_美团算法团队.pdf
《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
特征提取与图像处理(第二版).pdf
python就业班学习视频,从入门到实战项目
2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
《深度学习之pytorch》pdf+附书源码
PyTorch深度学习快速实战入门《pytorch-handbook》
【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》
《Python数据分析与挖掘实战》PDF+完整源码
汽车行业完整知识图谱项目实战视频(全23课)
李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材
笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!
《神经网络与深度学习》最新2018版中英PDF+源码
将机器学习模型部署为REST API
FashionAI服装属性标签图像识别Top1-5方案分享
重要开源!CNN-RNN-CTC 实现手写汉字识别
yolo3 检测出图像中的不规则汉字
同样是机器学习算法工程师,你的面试为什么过不了?
前海征信大数据算法:风险概率预测
【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类
VGG16迁移学习,实现医学图像识别分类工程项目
特征工程(一)
特征工程(二) :文本数据的展开、过滤和分块
特征工程(三):特征缩放,从词袋到 TF-IDF
特征工程(四): 类别特征
特征工程(五): PCA 降维
特征工程(六): 非线性特征提取和模型堆叠
特征工程(七):图像特征提取和深度学习
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
Machine Learning Yearning 中文翻译稿
蚂蚁金服2018秋招-算法工程师(共四面)通过
全球AI挑战-场景分类的比赛源码(多模型融合)
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
python+flask搭建CNN在线识别手写中文网站
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx
机大数据技术与机器学习工程
搜索公众号添加: datanlp
长按图片,识别二维码
利用lightgbm做learning to rank 排序,解析模型中特征重要度相关推荐
- 用 XGBoost 做 Learning To Rank
说到learning to rank,大家应该都比较熟悉,但是说到用XGB做learning to rank,很少有人实现过.举个例子,比方说赛马,我们可以基于马的个头,体重,历史战绩等信息,建立XG ...
- LTR (Learning to Rank): 排序算法 poitwise, pairwise, listwise常见方案总结
目录 1 Learing to Rank介绍 2 The Pointwise Approach 3 The Pairwise Approach 3.1 RankNet 4 The Listwise A ...
- lightGBM用于排序(Learning to Rank )
向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程 公众号:datayx Learning to Rank 简介 去年实习时,因为项目需要,接触了一下Learning ...
- Learning to rank基本算法小结
最近工作中需要调研一下搜索排序相关的方法,这里写一篇总结,总结记录一下几天的调研成果.包括 Learning to rank 基本方法 Learning to rank 指标介绍 LambdaMART ...
- 【学习排序】 Learning to Rank中Pointwise关于PRank算法源码实现
最近终于忙完了Learning to Rank的作业,同时也学到了很多东西.我准备写几篇相关的文章简单讲述自己对它的理解和认识.第一篇准备讲述的就是Learning to Rank中Pointwise ...
- 机器学习排序之Learning to Rank简单介绍
机器学习排序之Learning to Rank简单介绍 标签: Learning to Rank学习排序PointwisePairwiseListwise 2015-01-03 21:50 23 ...
- LTR学习排序 Learning to Rank 小结
出处:http://blog.csdn.NET/nanjunxiao/article/details/8976195 学习排序(Learning to Rank) LTR(Learning toran ...
- 学习排序 Learning to Rank:从 pointwise 和 pairwise 到 listwise,经典模型与优缺点
Ranking 是信息检索领域的基本问题,也是搜索引擎背后的重要组成模块.本文将对结合机器学习的 ranking 技术--learning2rank--做个系统整理,包括 pointwise.pair ...
- 【学习排序】 Learning to Rank 中Listwise关于ListNet算法讲解及实现
前一篇文章"Learning to Rank中Pointwise关于PRank算法源码实现"讲述了基于点的学习排序PRank算法的实现.该篇文章主要讲述Listwise Appro ...
最新文章
- python真的超过java了吗-java会被python淘汰吗?
- openflow多级流表机制的优点?
- 2018年第九届蓝桥杯 - 省赛 - Java大学A组 - A.复数幂
- 记一次Sentry部署过程
- Python关于中文字符前面的u(转载)
- ASP.NET中的AJAX应用开发详解
- ajax 文件上传,ajax
- 对文件、字符串和byte数组进行MD5加密
- 微信支付之获取code
- java 幂函数_java的math常用方法
- 海康威视的视频web端(vue开发)的实时预览、录像回放和页面拖拽
- hive 窗口函数(开窗函数)
- 备份蓝光光盘玩具总动员3,且Eclipse
- 计算机应用基础统考试题及答案题库,2.Windows知识题部分--计算机应用基础统考试题库及答案...
- windows10如何修改pin码?
- 虚拟化技术原理(CPU、内存、IO)
- 【高级篇】详解Zookeeper客户端Curator
- 使用CAPL 内置函数 memcpy 和memcmp 处理数组的若干问题
- 基于 RTS 超低延时直播优化强互动场景体验
- 判定覆盖 与 条件覆盖 的区别
热门文章
- react native 问题点
- 使用pymongo需要手动关闭MongoDB Connection吗?
- Linux学习之二十、循环
- hdoj 3400 三分
- 按钮控制android progressbar,Android ProgressBar手动控制开始和停止
- linux 输入法错误,Ubuntu 16.04安装搜狗拼音输入法错误问题的解决方法
- form表单提交按钮点击事件先触发还是提交数据先触发_如何实现图片上传并保存到数据库?...
- python中的cls到底指的是什么,与self有什么区别?
- java21天打卡-day14 日期时间
- 别天天看看直播了,你知道如何用jmeter对直播间做压测吗