LightGBM python模块数据接口详解

举报
livingbody 发表于 2022/12/19 11:26:31 2022/12/19
【摘要】 LightGBM python模块数据接口详解LightGBM Python 模块能够使用以下几种方式来加载数据:libsvm/tsv/csv txt format file(libsvm/tsv/csv 文本文件格式)Numpy 2D array, pandas object(Numpy 2维数组, pandas 对象)LightGBM binary file(LightGBM 二进制文...

LightGBM python模块数据接口详解

LightGBM Python 模块能够使用以下几种方式来加载数据:

  • libsvm/tsv/csv txt format file(libsvm/tsv/csv 文本文件格式)
  • Numpy 2D array, pandas object(Numpy 2维数组, pandas 对象)
  • LightGBM binary file(LightGBM 二进制文件)

加载后的数据存在 Dataset 对象中。

1.加载 ligsvm 文本文件或 LightGBM 二进制文件到 Dataset 中:

train_data = lgb.Dataset('train.svm.bin')
train_data = lgb.Dataset('train.svm.txt')

2.加载numpy数组到Dataset中

data = np.random.rand(500, 10)  # 500 个样本, 每一个包含 10 个特征
label = np.random.randint(2, size=500)  # 二元目标变量,  0 和 1
train_data = lgb.Dataset(data, label=label)

3.加载scpiy.sparse.csr_matrix 数组到 Dataset 中

csr = scipy.sparse.csr_matrix((dat, (row, col)))
train_data = lgb.Dataset(csr)

4.保存Dataset 到 LightGBM 二进制文件

Dataset 到 LightGBM 二进制文件将会使加载速度更快。

# 创建训练集
train_data = lgb.Dataset('train.svm.txt')
train_data.save_binary('train.bin')

5.创建验证集

# 创建验证集
test_data = train_data.create_valid('test.svm')

在 LightGBM 中, 验证数据应该与训练数据一致(格式一致)。

6.分类特征

指定 feature names(特征名称)和 categorical features(分类特征)

train_data = lgb.Dataset(data, label=label, feature_name=['c1', 'c2', 'c3'], categorical_feature=['c3'])

LightGBM 可以直接使用 categorical features(分类特征)作为 input(输入). 它不需要被转换成 one-hot coding(独热编码), 并且它比 one-hot coding(独热编码)更快(约快上 8 倍)

注意: 在你构造 Dataset 之前, 你应该将分类特征转换为 int 类型的值。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。