xgboost如何传入稀疏矩阵加快训练(利用scipy sparse模块)

背景描述

最近我正在做一个机器学习商场商铺定位问题,其中设计到商铺的wifi特征,在经过特征工程后的训练数据描述大概为20000+样本,特征10000+个。其中除了两个特征类型为float以外,其余全是0,1特征。在传统python做法下我们将传入ndarray矩阵到xgboost的DMatrix数据类型中进行训练。问题就来了:由于有float类型数据的存在,训练集的ndarray会变为float数据类型。从而导致:
1. 训练数据内存变大,普通4G内存电脑无法训练。
2. xgboost训练极其缓慢。
为了解决这个问题,加快xgboost的训练,我们必须得把训练数据转成稀疏矩阵储存。我们讲利用到scipy下的sparse模块生成稀疏矩阵。但是网上少有如何讲xgboost如何传入sparse矩阵进行训练,我唯一找到一篇说明xgboost支持scipy的sparse矩阵的是这一篇。在经历了众多坑后,我总算找到xgboost如何导入sparse矩阵进行训练。下面将其方法分享给大家。

利用scipy.sparse生成稀疏数据集

scipy.sparse中的稀疏矩阵介绍

scipy.sparse中定义了7个稀疏矩阵的类,分别是bst_matrix,coo_matr

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值