1.机器学习的分类分类特征重要性究竟是怎么算的
2.推荐收藏! 38 个 Python 数据科学顶级库!
3.数据挖掘主要涉及到哪些方面的源码知识?
机器学习的特征重要性究竟是怎么算的
了解主流机器学习模型计算特征重要性的过程。常用算法包括xgboost、代码gbdt、分类分类randomforest、源码tree等,代码github托管源码它们都能输出特征的分类分类重要性评分。本文将重点阐述xgboost和gbdt特征重要性计算方法。源码
xgboost计算特征重要性涉及到复杂的代码过程。在xgboost R API文档中能找到部分解释。分类分类在Python代码中,源码通过get_dump获取树规则,代码规则描述了特征在决策树中的分类分类使用情况。然而,源码原始的代码get_score方法输出的仅为统计值,包含权重、增益和覆盖度,未转换为百分比形式,这还不是真正的特征重要性得分。在xgboost的sklearn API中,feature_importance_方法对重要性统计量进行归一化处理,将之转换为百分比形式,计算分母为所有特征的重要性统计量之和。默认情况下,xgboost sklearn API计算重要性时使用importance_type="gain",印度红绿源码而原始get_score方法使用importance_type="weight"。
对于gbdt,首先查找BaseGradientBoosting类,得到feature_importances_方法的源码。进一步追踪至tree模块,发现特征重要性来源于tree_.compute_feature_importances()方法。关于gbdt评估特征重要性的标准,存在疑问:它是依据分裂前后节点的impurity减少量进行评估。impurity的计算标准取决于节点的分裂标准,如MSE或MAE,具体在_criterion.pyx脚本中有所说明。gbdt中的树都是回归树,因此计算impurity的标准适用于该类问题。
推荐收藏! 个 Python 数据科学顶级库!
欢迎关注@Python与数据挖掘 ,专注 Python、数据分析、数据挖掘、好玩工具!
数据科学领域的顶级 Python 库推荐:
1. Apache Spark - 大规模数据处理的统一分析引擎,
星:,贡献:,贡献者:
2. Pandas - 用于数据处理的快速、灵活且可表达的印度博彩源码 Python 软件包,
星:,贡献:,贡献者:
3. Dask - 并行计算任务调度系统,
星:,贡献:,贡献者:
4. Scipy - 用于数学、科学和工程的开源 Python 模块,
星:,贡献:,贡献者:
5. Numpy - Python 科学计算的基本软件包,
星:,贡献:,贡献者:
6. Scikit-Learn - 基于 SciPy 的 Python 机器学习模块,
星:,贡献:,贡献者:
7. XGBoost - 可扩展、便携式和分布式梯度增强 GBDT 库,
星:,贡献:,贡献者:
8. LightGBM - 基于决策树的快速、高性能梯度提升 GB库,
星:,贡献:,贡献者:
9. Catboost - 高速、gameserver扩展源码可扩展、高性能梯度提升库,
星:,贡献:,贡献者:
. Dlib - 用于创建解决实际问题的复杂软件的 C++ 工具箱,
星:,贡献:,贡献者:
. Annoy - C++/Python 中的优化内存使用和磁盘加载/保存的近似最近邻居系统,
星:,贡献:,贡献者:
. H2O.ai - 快速可扩展的开源机器学习平台,
星:,贡献:,贡献者:
. StatsModels - Python 中的统计建模和计量经济学,
星:,贡献:,贡献者:
. mlpack - 直观、快速且灵活的 C++ 机器学习库,
星:,贡献:,贡献者:
. Pattern - 包含 Web 挖掘工具的 Python 模块,
星:,贡献:,贡献者:
. Prophet - 生成具有多个季节性和线性或非线性增长的在线传奇源码时间序列数据的高质量预测工具,
星:,贡献:,贡献者:
. TPOT - Python 自动化机器学习工具,使用遗传编程优化机器学习 pipeline,
星:,贡献:,贡献者:
. auto-sklearn - 自动化机器学习工具包,scikit-learn 估计器的直接替代品,
星:,贡献:,贡献者:
. Hyperopt-sklearn - scikit-learn 中基于 Hyperopt 的模型选择,
星:,贡献:,贡献者:
. SMAC-3 - 基于顺序模型的算法配置,
星:,贡献:,贡献者:
. scikit-optimize - 用于减少非常昂贵且嘈杂的黑盒功能的 Scikit-Optimize,
星:,贡献:,贡献者:
. Nevergrad - 用于执行无梯度优化的 Python 工具箱,
星:,贡献:,贡献者:
. Optuna - 自动超参数优化软件框架,
星:,贡献:,贡献者:
数据可视化:
. Apache Superset - 数据可视化和数据探索平台,
星:,贡献:,贡献者:
. Matplotlib - 在 Python 中创建静态、动画和交互式可视化的综合库,
星:,贡献:,贡献者:
. Plotly - 适用于 Python 的交互式、基于开源和基于浏览器的图形库,
星:,贡献:,贡献者:
. Seaborn - 基于 matplotlib 的 Python 可视化库,提供高级界面进行吸引人的统计图形绘制,
星:,贡献:,贡献者:
. folium - 建立在 Python 数据处理能力之上并与 Leaflet.js 库地图能力结合的可视化库,
星:,贡献:,贡献者:
. Bqplot - Jupyter 的二维可视化系统,基于图形语法的构造,
星:,贡献:,贡献者:
. VisPy - 高性能的交互式 2D / 3D 数据可视化库,利用 OpenGL 库和现代图形处理单元 GPU 的计算能力显示大型数据集,
星:,贡献:,贡献者:
. PyQtgraph - 科学/工程应用的快速数据可视化和 GUI 工具,
星:,贡献:,贡献者:
. Bokeh - 现代 Web 浏览器中的交互式可视化库,提供优雅、简洁的构造,并在大型或流数据集上提供高性能的交互性,
星:,贡献:,贡献者:
. Altair - Python 的声明性统计可视化库,用于创建更简洁、更可理解的数据可视化,
星:,贡献:,贡献者:
解释与探索:
. eli5 - 用于调试/检查机器学习分类器并解释其预测的库,
星:,贡献:,贡献者:
. LIME - 用于解释任何机器学习分类器预测的工具,
星:,贡献:,贡献者:
. SHAP - 基于博弈论的方法,用于解释任何机器学习模型的输出,
星:,贡献:,贡献者:
. YellowBrick - 可视化分析和诊断工具,用于辅助机器学习模型的选择,
星:,贡献:,贡献者:
. pandas-profiling - 从 pandas DataFrame 对象创建 HTML 分析报告的库,
星:,贡献:,贡献者:
技术交流群:
建了技术交流群,想要进群的同学直接加微信号:dkl,备注:研究方向 + 学校/公司 + 知乎,即可加入。
关注 Python与数据挖掘 知乎账号和 Python学习与数据挖掘 微信公众号,可以快速了解到最新优质文章。
机器学习画图神器推荐,论文、博客事半功倍;模型可解释 AI (XAI) Python 框架盘点,6 个必备;prettytable - 可完美格式化输出的 Python 库;机器学习建模调参方法总结; 个机器学习最佳入门项目(附源代码);精通 Python 装饰器的 个神操作;VS Code 神级插件推荐;Schedule 模块 - Python 周期任务神器;4 款数据自动化探索 Python 神器;数据模型整理,建议收藏;Python 编程起飞的 个神操作;深度学习、自然语言处理和计算机视觉顶级 Python 框架盘点;用户画像标签体系建设指南;机器学习模型验证 Python 包推荐;可视化大屏模板精选,拿走就用;Python 可视化大屏不足百行代码;Python 中的 7 种交叉验证方法详解;文章推荐更多,点个赞和爱心,更多精彩欢迎关注。
数据挖掘主要涉及到哪些方面的知识?
1. 工程能力
( 1 )编程基础:需要掌握一大一小两门语言,大的指 C++ 或者 Java ,小的指Python 或者 shell 脚本;需要掌握基本的数据库语言;
建议:MySQL + python + C++ ;语言只是一种工具,看看语法就好;
推荐书籍:《C++ primer plus 》
( 2 )开发平台: Linux ;
建议:掌握常见的命令,掌握 Linux 下的源码编译原理;
推荐书籍:《Linux 私房菜》
( 3 )数据结构与算法分析基础:掌握常见的数据结构以及操作(线性表,队,列,字符串,树,图等),掌握常见的计算机算法(排序算法,查找算法,动态规划,递归等);
建议:多敲代码,多刷题;
推荐书籍:《大话数据结构》《剑指 offer 》
( 4 )海量数据处理平台: Hadoop ( mr 计算模型,java 开发)或者 Spark ( rdd 计算模型, scala开发),重点推荐后者;
建议:主要是会使用,有精力的话可以看看源码了解集群调度机制之类的;
推荐书籍:《大数据 spark 企业级实战》
2. 算法能力
( 1 )数学基础:概率论,数理统计,线性代数,随机过程,最优化理论
建议:这些是必须要了解的,即使没法做到基础扎实,起码也要掌握每门学科的理论体系,涉及到相应知识点时通过查阅资料可以做到无障碍理解;
( 2 )机器学习 / 深度学习:掌握 常见的机器学习模型(线性回归,逻辑回归, SVM ,感知机;决策树,随机森林, GBDT , XGBoost ;贝叶斯, KNN , K-means , EM 等);掌握常见的机器学习理论(过拟合问题,交叉验证问题,模型选择问题,模型融合问题等);掌握常见的深度学习模型( CNN ,RNN 等);
建议:这里的掌握指的是能够熟悉推导公式并能知道模型的适用场景;
推荐书籍:《统计学习方法》《机器学习》《机器学习实战》《 UFLDL 》
( 3 )自然语言处理:掌握常见的方法( tf-idf , word2vec ,LDA );
3. 业务经验
( 1 )了解推荐以及计算广告相关知识;
推荐书籍:《推荐系统实践》《计算广告》
( 2 )通过参加数据挖掘竞赛熟悉相关业务场景,常见的比赛有 Kaggle ,阿里天池, datacastle 等。