欢迎来到皮皮网网首页

【PHP牛牛源码金花】【百变源码】【openort 源码分析】xgboost源码解析

来源:linuxacpi源码分析 时间:2024-11-24 12:06:45

1.机器学习的码解特征重要性究竟是怎么算的
2.XGBoost源码解读
3.如何在Mac OSX上安装xgboost
4.Win10 环境下,LightGBM GPU 版本的码解安装
5.Apple M1的AI环境搭建

xgboost源码解析

机器学习的特征重要性究竟是怎么算的

       了解主流机器学习模型计算特征重要性的过程。常用算法包括xgboost、码解gbdt、码解randomforest、码解tree等,码解PHP牛牛源码金花它们都能输出特征的码解重要性评分。本文将重点阐述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的标准适用于该类问题。

XGBoost源码解读

       前言

       XGBoost是一代神器,其推理逻辑独树一帜,与Glove等相似,皆以思考出发,推导出理想结果。高斯正是这种思维的典范,XGBoost的代码实现也异常精妙,本文尝试将两者相结合,供您参考。openort 源码分析

       高斯的做法

       优化目标设定,以均值为目标函数的导数为零。利用线性假设推导目标函数,进而优化以误差平方项为出发点。

       进一步,高斯将误差目标公式推广到参数求解中,实现优化。

       Glove的做法

       通过log-bilinear models, LBL启发,寻找满足概率约束的目标表达式,并推导出指数函数,从而实现类似LSA的因子分解。

       引入优化权重函数,最终实现最大似然估计。

       XGBoost的做法

       引入Stagewise限制,目标为找到最优的叶子节点,以最佳方式拆分,优化损失。

       通过泰勒展开,结合叶子节点权重假设,推导出目标公式。

       基于贪心算法,实现树的生长。

       代码解读

       从命令行入口开始,追书 源码核心代码框架包括数据加载、初始化、循环训练与模型保存。训练过程包括计算样本预测结果、一阶和二阶梯度计算以及Boost操作。

       DoBoost实现GBLine和GBTree两种方式,提供GradientBooster核心函数,如DoBoost、PredictLeaf、PredictBatch等。

       默认采用GBTree,对于线性部分,效果难与非线性分类器相比。

       代码基本框架集成了DMLC的注册使用机制,插件式管理实现更新机制。

       实现精准和近似算法,主要关注ColMaker更新实现。在GBTree的DoBoost中,生成并发新树,更新ColMaker和TreePruner。

       ColMaker实现包括Builder与EnumerateSplit,最终依赖于TreeEvaluator的SplitEvaluator。

       SplitEvaluator实现树的源码安装mininet分拆,对应论文中的相关函数,包括Gain计算、权重计算、单个叶子节点Gain计算与最终损失变化。

       本文仅作为案例介绍,XGBoost在近似计算、GPU计算与分布式计算方面也极具亮点。

       小结

       本文通过对比分析高斯、Glove与XGBoost的优化策略,展示了研究与工程结合的实践,强调在追求性能的同时,不能忽视效果的重要性。

如何在Mac OSX上安装xgboost

       1. Mac OSX系统一般自带python,打开终端输入python即可写python代码,所以python环境已经具备了。

       2.安装 Homebrew , 类似于ubuntu中的apt-get和centos中的yum,是OSX里面的一个非常有用软件安装工具。

       /usr/bin/ruby -e “$(curl -fsSL /Homebrew/install/master/install)”

       ç›´æŽ¥å°†ä¸Šè¿°ä»£ç ç²˜è´´è‡³ç»ˆç«¯å³å¯å®‰è£…。(安装这个软件的目的在于更新gcc版本,因为官方文档中说只有最新的gcc版本才能使xgboost支持多线程)

       3.安装最新版本的gcc (gcc-6)

       brew install gcc --without-multilib

       è¿™æ­¥æ¯”较耗时,用了将近1小时。

       4.从git上下载源码

       cd进入你想要安装的目录,然后输入下面的代码。(我是直接在打开终端的目录)

       git clone --recursive /dmlc/xgboost

Win 环境下,LightGBM GPU 版本的安装

       在Win环境下,想要利用GPU提升LightGBM的训练速度,安装过程并非易事。LightGBM,微软开发的高效梯度提升框架,可与XGBoost比肩,尤其适用于大规模数据。由于其GPU版本的教程相对较少,本文基于官方指南和Stack Overflow上的解答,总结了安装步骤和注意事项。

       安装步骤

       1. 对于CPU版本,LightGBM的安装方法有三种,与Python包安装类似。但使用GPU版本需要从源代码编译安装。

       GPU版本安装

       主要流程包括下载LightGBM源代码,使用CMake进行构建,然后通过`python setup.py install --gpu`安装。对于Windows用户,有两种编译方式:

       VS Build Tools:推荐用于Win平台,可以简化步骤,避免MinGW可能遇到的问题。

       MinGW:虽然速度可能较快,但可能会产生更多问题,且不推荐。

       对于VS Build Tools,需要安装Git、CMake、VS Build Tools,以及对应的OpenCL和Boost Binaries。具体步骤涉及下载、安装、设置环境变量,然后编译源文件。

       MinGW编译步骤类似,但需要下载MinGW或MinGW-w,然后按照类似流程操作。

       参数设置与性能测试

       安装成功后,通过设置`device='gpu'`和相关GPU参数,可以启用GPU计算。测试性能时,如能顺利运行,表明安装成功。不过,与其他框架相比,LightGBM在GPU调用上稍显不便,但其支持更多类型的显卡,对Intel集成显卡友好。

       性能提升方面,实际测试显示使用GPU计算有明显加速,但具体提升程度取决于硬件配置,如Intel集显和Nvidia独显的性能差异。

Apple M1的AI环境搭建

       首先,搭建Apple M1的AI环境,Python3.9作为基础,考虑到M1的ARM架构,Anaconda不再适用,转而选择Miniforge3。必需的库有Tensorflow、xgboost、Lightgbm、Numpy、Pandas、Matplotlib和NGBoost等。由于是Python3.9,部分库可能无法正常使用。

       Homebrew,作为Mac的包管理工具,对于ARM架构的支持已经到位。如果有X版本的Homebrew,需先卸载,然后通过Homebrew的ARM版本进行安装。安装后,Homebrew会提示设置环境变量,推荐执行相应操作以确保环境配置。

       在bash shell下,记得source ~/.zprofile。对于X版本的Homebrew,虽然安装后未提示添加环境变量,但同样需要手动管理。

       为了优化软件源,可以考虑设置中科大源或清华大学源,如果需要更多选择,可以查看Homebrew的其他设置。对于cask,由于GitHub API访问限制,可能需要申请Api Token。

       接下来,下载并安装Miniforge3的arm版本,安装过程中会询问是否添加conda init到~/.zshrc。安装完成后,可以创建一个专为Tensorflow学习的虚拟环境。

       Tensorflow的安装方式有两种,一是默认安装,Apple已优化支持;二是通过environment.yml预先配置。在tf环境内,可以测试安装是否成功。

       对于Lightgbm,编译安装是较为可靠的方法,通过brew安装并设置编译环境。至于Numpy,通常会在Tensorflow安装时自动安装,其他库如Pandas、Matplotlib和NGBoost,可以通过conda或pip进行安装。

       注意,可能遇到的库问题,如OpenCV、Dlib等,需自行下载源码编译。在整个过程中,遇到问题时,Google搜索和官方文档是不可或缺的参考资源。

       最后,值得注意的是相关教程和指南,如TensorFlow-macos、Run xgboost on Mac、加速Mac上的TensorFlow性能等,这些都能提供具体步骤和帮助,确保在M1芯片Mac上顺利搭建AI环境。