728x90
반응형
SMALL
설치
pip install lightgbm
데이터 인터페이스
LightGBM Python 모듈은 다음에서 데이터를 로드할 수 있다.
|
데이터는 Dataset개체에 저장된다.
import numpy as np
# LibSVM(0 기반) 텍스트 파일 또는 LightGBM 바이너리 파일을 Dataset에 로드하려면:
train_data = lgb.Dataset('train.svm.bin')
# numpy 배열을 Dataset에 로드하려면:
data = np.random.rand(500, 10) # 500 entities, each contains 10 features
label = np.random.randint(2, size=500) # binary target
train_data = lgb.Dataset(data, label=label)
# scipy.sparse.csr_matrix 배열을 Dataset에 로드하려면:
import scipy
csr = scipy.sparse.csr_matrix((dat, (row, col)))
train_data = lgb.Dataset(csr)
# 시퀀스 개체에서 로드:
# Sequence 바이너리 파일을 읽기 위한 인터페이스를 구현할 수 있습니다. 다음 예는 h5py.
import h5py
class HDFSequence(lgb.Sequence):
def __init__(self, hdf_dataset, batch_size):
self.data = hdf_dataset
self.batch_size = batch_size
def __getitem__(self, idx):
return self.data[idx]
def __len__(self):
return len(self.data)
f = h5py.File('train.hdf5', 'r')
train_data = lgb.Dataset(HDFSequence(f['X'], 8192), label=f['Y'][:])
Sequence 인터페이스 사용의 특징 |
|
# 데이터 세트를 LightGBM 바이너리 파일에 저장하면 로딩 속도가 빨라짐
train_data = lgb.Dataset('train.svm.txt')
train_data.save_binary('train.bin')
#검증 데이터 생성:
validation_data = train_data.create_valid('validation.svm')
#또는
validation_data = lgb.Dataset('validation.svm', reference=train_data)
LightGBM에서 검증 데이터는 훈련 데이터와 정렬되어야 한다.
# 특정 기능 이름 및 범주 기능:
train_data = lgb.Dataset(data, label=label, feature_name=['c1', 'c2', 'c3'], categorical_feature=['c3'])
LightGBM은 범주형 기능을 직접 입력으로 사용할 수 있다. 원-핫 인코딩으로 변환할 필요가 없으며 원-핫 인코딩보다 훨씬 빠르다 (약 8배 속도 향상).
(참고 : 구성하기 전에 범주형 기능을 int 유형으로 변환해야 한다 Dataset.)
필요한 경우 가중치를 설정할 수 있다.
w = np.random.rand(500, )
train_data = lgb.Dataset(data, label=label, weight=w)
# 또는
train_data = lgb.Dataset(data, label=label)
w = np.random.rand(500, )
train_data.set_weight(w)
Dataset.set_init_score() 초기 점수 Dataset.set_group()를 설정하고 작업 순위 지정을 위한 그룹/쿼리 데이터를 설정하는 데 사용할 수 있다.
메모리 효율적인 사용
LightGBM의 Dataset 개체는 메모리 효율성이 매우 높기 때문에 개별 저장소만 저장하면 된다. 그러나 Numpy/Array/Pandas 객체는 메모리가 크다. 메모리 소비가 걱정되는 경우 다음을 통해 메모리를 절약할 수 있다.
|
https://lightgbm.readthedocs.io/en/latest/Python-Intro.html
728x90
반응형
LIST
'Learning-driven Methodology > ML (Machine Learning)' 카테고리의 다른 글
[LightGBM] Features (1) (0) | 2022.06.28 |
---|---|
[LightGBM] Python 패키지 (2) (0) | 2022.06.28 |
LightGBM (0) | 2022.06.28 |
[Machine Learning] MLOps (0) | 2022.05.11 |
[XGBoost] Python Package Introduction (3) (0) | 2022.05.09 |