python XGboost回归预测 算法实现和原理讲解(比赛青睐)

对经典问题 波士顿房价进行回归预测

交流学术思想,加入Q群 号:815783932

一、加载波士顿数据集并观察数据的shape。

from sklearn.model_selection import train_test_split
def del_data():
    (train_data, train_targets), (test_data, test_targets) = boston_housing.load_data()
    print(train_data.shape)
    print(train_targets.shape)
    print(test_data.shape)
    print(test_targets.shape)

python XGboost回归预测 算法实现和原理讲解(比赛青睐)
由图像可知道,波士顿训练集的房价特征集是404个 13个维度的特征集,测试集为102。

二、xgboost回归是否需要归一化

答案:否,xgboos底层还是根据决策树去做的,是通过最优分裂点进行优化的。和树有关的决策算法过程是不需要进行归一标准化的。

三、xgboost可调节参数

答案:任何一个机器学习的算法中都存在自己的Parameters,参数集可以调节。

XGboost的管方文档 对于python的 api调用接口可以看下方的网址:

https://xgboost.readthedocs.io/en/latest/python/python_api.html

参数名解释含义max_depth-基本学习器的最大树深度, 通过这个值避免过拟合,默认值是6learning_rate-学习率,评价训练的速度,若值设置过低学习慢,设置低影响迭代最优值n_estimators-决策树的数量,这些都是决定过拟合和欠拟合objective-基于此函数去进行求解最优化回归树gamma-惩罚项系数,指定节点分裂所需的最小损失函数下降值alpha-L1正则化系数……-……

从官方文档中能看到可以调节的参数有非常的多,但是在实际试验中,调用算法 除了较为重要的一些参

数可以采用网格搜索的方法进行调参,其他系数,若没有强大的数学功底和理解底层的思想,用默认的

参数就是最有的解。

max_depth,learning_rate,n_estimators 是可以调节的参数。

四、下面是代码实现的过程

from sklearn.metrics import mean_squared_error
import xgboost as xgb
from keras.datasets import boston_housing

def main():
    (train_data, train_targets), (test_data, test_targets) = boston_housing.load_data()

    model = xgb.XGBRegressor(max_depth=6,learning_rate=0.05,n_estimators=100,randam_state=42)
    model.fit(train_data,train_targets)
    test_predict=model.predict(test_data)
    train_predict = model.predict(train_data)

    msetest=mean_squared_error(test_targets,test_predict)
    msetrain=mean_squared_error(train_targets,train_predict)
    print(msetest)
    print(msetrain)
    print(test_targets)
    print(abs(test_predict-test_targets))

model 是构建的模型。通过对训练集的学习来做对未来的预测。
msetest,msetrain是你自己的评估结果 可以通过这两个值来判断你的模型构建是否优秀 。
msetest 是模型对测试集预测得到结果的mse值, msetrain 是模型对训练集预测得到结果的mse值。

python XGboost回归预测 算法实现和原理讲解(比赛青睐)

python XGboost回归预测 算法实现和原理讲解(比赛青睐)
由此能看出,在训练集表现的非常好,测试集表现还比较差。需要通过优化模型来进行调参。这里我就

不做累述去调参,后期会更新如何调参的文章,这篇主要是说原理。

五、原理通俗解释。

python XGboost回归预测 算法实现和原理讲解(比赛青睐)
obj是目标函数 ,整个算法就是通过最优化这个目标函数来实现的。
python XGboost回归预测 算法实现和原理讲解(比赛青睐)
这个是正则项为了防止模型的复杂度,抑制模型复杂度。

python XGboost回归预测 算法实现和原理讲解(比赛青睐)
这个的优化,本算法采取已知第t-1步回归树的形成,去推导第t步回归树的形成,进而可以优化目标函数。

python XGboost回归预测 算法实现和原理讲解(比赛青睐)
优化到这样的形式,具体也可以看官方文档和论文讲的非常详细,我就是从简单理解和实现的角度去讲述。

最终的展示结果为

python XGboost回归预测 算法实现和原理讲解(比赛青睐)

六、简单理解

其实就是根据决策树的思想将n个样例m个特征,划分每一个特征的回归决策树,找到最优点进行分割,最终得到n个样例m个特征的最优划分点。由最初迭代至最终的算法。
整体的思路框架大概就是这样的。欢迎讨论
文章不易 希望能够。。。。。。。。。。。。

python XGboost回归预测 算法实现和原理讲解(比赛青睐)

Original: https://blog.csdn.net/weixin_47324594/article/details/120819585
Author: 普普通通研究生学代码
Title: python XGboost回归预测 算法实现和原理讲解(比赛青睐)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/667499/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 回归的误差服从正态分布吗_【判断题】多线线性回归的误差项服从正态分布

    【判断题】多线线性回归的误差项服从正态分布 更多相关问题 【判断题】抽样、量化和编码的逆过程分别是利用低通滤波器、解量化和解码实现的。 A. 正确 B. 错误 【单选题】关于周邦彦…

    人工智能 2023年6月18日
    063
  • 无人驾驶-控制-阿克曼模型

    阿克曼模型推导 一、序论 1.1 研究目的 运动学是从几何学的角度研究物体的运动规律,包括物体在空间的位置、速度等随时间而产生的变化,因此,车辆运动学模型应该能反映车辆位置、速度、…

    人工智能 2023年6月1日
    0186
  • 立体匹配(视差估计)评价指标(MiddleBurry、KITTI 2012、KITTI 2015、Scene Flow、ETH3D)

    评估区域: dics(Depth Discontinuity Region):视差不连续区域 all(All Region):全部区域 non-occ(Non-Occlusion …

    人工智能 2023年5月26日
    049
  • 神经网络回归任务

    多输入单输出网络预测气温 数据处理 网络模型构建 网络模型简化 上一节我们介绍的是利用网络完成分类任务,即将输入的数据分为十个类别。那么今天,我们来介绍回归任务,即根据输入数据得到…

    人工智能 2023年6月16日
    054
  • 快速解决“多分类不平衡”问题

    在机器学习中,经常会遇到分类不平衡问题。简单来说,就是多分类时有的类别数量少,会影响整体模型的准确率。 目录 前言 一、问题详细描述 1.项目介绍 2.调参尝试 二、分析原因 1….

    人工智能 2023年6月23日
    087
  • 人工智能基础知识

    📢博客主页:盾山狂热粉的博客_CSDN博客-C、C++语言,机器视觉领域博主 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢努力努力再努力嗷~~~✨ 💡本次给大家分享的是…

    人工智能 2023年6月25日
    060
  • 数据可视化实战:数据处理

    电影数据集处理 数据拆分 * 数据的读取 数据的分割 行列的转换 索引的重置 列的替换 缺失值填充 分组计算 数据去重 条件排序 新增一列 数据拆分 在电影数据集的数据可视化实战中…

    人工智能 2023年6月19日
    083
  • Maven安装与配置,Idea配置Maven

    回答1: Mac 的步骤如下: 1. 首先,需要在Mac上安装 。可以通过Homebrew或手动下载安装包的方式进行安装。如果使用Homebrew,可以在终端中输入以下命令: br…

    人工智能 2023年7月31日
    039
  • 解读业界5种主流的深度网络模型

    摘要:介绍目前业界主要的模型优化的方法,然后对模型量化进行重点阐述,介绍量化的基本原理,方法分类,未来发展,以及对前沿论文进行解读。 本文分享自华为云社区《模型量化综述及应用》,作…

    人工智能 2023年5月30日
    080
  • 详解pytorch之tensor的拼接

    tensor经常需要进行拼接、拆分与调换维度,比如通道拼接,比如通道调至最后一个维度等,本文的目的是详细讨论一下具体是怎么拼接的。如果本来就理解这其中的原理的童鞋就不用往下看了,肯…

    人工智能 2023年6月13日
    064
  • Kmeans和DBSCAN

    Kmeans 1.类别是人为给&#x5B…

    人工智能 2023年6月2日
    066
  • 训练好的YoloV5模型进行目标检测

    接上一篇博客,本篇记录第一次训练的检测效果训练得到的最优模型在…\runs\train\exp6\weights\best.pt位置 激活yolov5py38环境,进入…

    人工智能 2023年7月9日
    054
  • 企业微信群机器人应用

    现在很多企业都在使用企业微信进行工作交流,自从企业微信推出群机器人之后,使用企业微信的小伙伴一般都会用机器人来推送定时消息或者提醒等,这样能够为企业工作群的管理提升效率,能很好的帮…

    人工智能 2023年7月6日
    063
  • OpenCV图像预处理常用函数及流程

    OpenCV图像预处理常用函数及流程 1.OpenCV环境配置 在PyCharm终端中,运行如下命令 pip install opencv-python pip install o…

    人工智能 2023年7月19日
    063
  • CANopen协议 学习笔记

    大纲 前沿:以问题为导向学习是最高效的,本文主要讲述在学习Canopen协议中的一些疑惑点, 分享一些学习心得,不讲协议本身的内容。 1.主机和从机的概念? 2.PDO和SDO的区…

    人工智能 2023年6月28日
    0113
  • Pytorch中torch.stack() 函数解析

    一. torch.stack()函数解析 1. 函数说明: 1.1 官网:torch.stack(),函数定义及参数说明如下图所示: 1.2 函数功能 沿一个新维度对输入一系列张量…

    人工智能 2023年7月5日
    082
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球