LightGBM python模块数据接口详解
【摘要】 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)