1.机器学习的分类分类特征重要性究竟是怎么算的
2.推荐收藏! 38 个 Python 数据科学顶级库!
3.数据挖掘主要涉及到哪些方面的源码知识?
机器学习的特征重要性究竟是怎么算的
了解主流机器学习模型计算特征重要性的过程。常用算法包括xgboost、代码gbdt、分类分类randomforest、源码tree等,代码linux screen源码编译它们都能输出特征的分类分类重要性评分。本文将重点阐述xgboost和gbdt特征重要性计算方法。源码
xgboost计算特征重要性涉及到复杂的代码过程。在xgboost R API文档中能找到部分解释。分类分类在Python代码中,源码通过get_dump获取树规则,代码规则描述了特征在决策树中的分类分类使用情况。然而,源码原始的代码get_score方法输出的仅为统计值,包含权重、增益和覆盖度,未转换为百分比形式,这还不是真正的特征重要性得分。在xgboost的sklearn API中,feature_importance_方法对重要性统计量进行归一化处理,将之转换为百分比形式,计算分母为所有特征的重要性统计量之和。默认情况下,xgboost sklearn API计算重要性时使用importance_type="gain",虚幻4端游源码而原始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 - 高速、突破前日高点公式源码可扩展、高性能梯度提升库,
星:,贡献:,贡献者:
. Dlib - 用于创建解决实际问题的复杂软件的 C++ 工具箱,
星:,贡献:,贡献者:
. Annoy - C++/Python 中的优化内存使用和磁盘加载/保存的近似最近邻居系统,
星:,贡献:,贡献者:
. H2O.ai - 快速可扩展的开源机器学习平台,
星:,贡献:,贡献者:
. StatsModels - Python 中的统计建模和计量经济学,
星:,贡献:,贡献者:
. mlpack - 直观、快速且灵活的 C++ 机器学习库,
星:,贡献:,贡献者:
. Pattern - 包含 Web 挖掘工具的 Python 模块,
星:,贡献:,贡献者:
. Prophet - 生成具有多个季节性和线性或非线性增长的kudu源码编译集群安装时间序列数据的高质量预测工具,
星:,贡献:,贡献者:
. 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 等。