본문 바로가기
Machine Learning/LightGBM

LightGBM 모델 결과 저장 및 불러오기(with R)

by 찐남 2022. 1. 14.
# Machine Learning (LightGBM) 코드 예제(with R) 포스트에 있는 실습을 먼저 수행해야 함!!



LightGBM 모델을 json으로 덤프

# 코드 예시
lgb.dump(booster, num_iteration = NULL)
  • Arguments
    • booster: lgb.Booster 클래스의 객체
    • num_iteration: 예측할 반복 횟수, NULL 또는 <= 0은 최상의 반복 사용을 의미합니다.
  • value: 모델의 json 형식
# 활용 예시
json_model <- lgb.dump(model)
json_model
일부 출력 예시

 

lgb.save(): LightGBM 모델 저장

lgb.save(booster, filename, num_iteration = NULL)
  • Arguments
    • booster: lgb.Booster 클래스의 객체
    • filename: 저장된 파일 이름
    • num_iteration: 예측할 반복 횟수, NULL 또는 <= 0은 최상의 반복 사용 의미
  • value: lgb.Booster
lgb.save(model, tempfile(fileext = ".txt"))
tempdir() # 모델 파일 저장 경로 확인

 

lgb.load(): LightGBM 모델 로드

Load LightGBM은 파일 경로 또는 모델 문자열을 사용합니다. 둘 다 제공되는 경우 로드는 기본적으로 파일에서 로드합니다.

# 코드 형식
lgb.load(filename = NULL, model_str = NULL)
  • Arguments
    • filename: 모델 파일의 경로
    • model_str: 모델을 포함하는 str(`character` 또는 `raw` 벡터로)
  • value: lgb.Booster
model_file <- tempfile(fileext = ".txt")
lgb.save(model, model_file)

load_booster <- lgb.load(filename = model_file)

 

lgb.model.dt.tree(): Parse a LightGBM model json dump

LightGBM 모델 json 덤프를 data.table 구조로 구문 분석합니다.

# 코드 형식
lgb.model.dt.tree(model, num_iteration = NULL)
  • Arguments
    • model: lgb.Booster 클래스의 객체
    • num_iteration: 예측할 반복 횟수. NULL 또는 <= 0은 최상의 반복 사용을 의미합니다.
  • value: 모델 트리의 노드 및 리프에 대한 자세한 정보가 포함된 data.table
    • tree_index: 모델의 트리 ID(정수)
    • split_index: 트리의 노드 ID(정수)
    • split_feature: 노드의 경우 feature 이름(문자). leaf의 경우 단순히 "NA"로 라벨 지정
    • node_parent: 현재 노드의 상위 노드 ID(정수)
    • leaf_index: 트리에 있는 leaf의 ID(정수)
    • leaf_parent: 현재 리프의 상위 노드 ID(정수)
    • split_gain: 노드의 분할 이득
    • threshold: 노드의 임계값 분할
    • decision_type: 노드의 결정 유형
    • default_left: NA 값 처리 방법 결정, TRUE -> 왼쪽, FALSE -> 오른쪽
    • internal_value: 노드 값
    • internal_count: 노드에서 수집한 관찰 수
    • leaf_value: 리프 값
    • leaf_count: 잎이 수집한 관찰 횟수
tree_dt <- lgb.model.dt.tree(model)
str(tree_dt)

 

 

반응형

댓글