728x90 반응형 SMALL Learning-driven Methodology/ML (Machine Learning)67 [LightGBM] Features (1) 속도 및 메모리 사용량 최적화 많은 부스팅 도구는 의사결정 트리 학습을 위해 사전 정렬 기반 알고리즘 (ex: xgboost의 기본 알고리즘)을 사용한다. 간단한 솔루션이지만 최적화하기가 쉽지 않다. LightGBM은 히스토그램 기반 알고리즘을 사용하여 연속적인 특징 (속성) 값을 개별 bin으로 묶는다. 이렇게 하면 훈련 속도가 빨라지고 메모리 사용량이 줄어든다. 히스토그램 기반 알고리즘의 장점은 다음과 같다. 각 분할에 대한 이득 계산 비용 절감 사전 정렬 기반 알고리즘에는 시간 복잡도 O(#data)가 있다. 히스토그램 계산에는 시간 복잡도 O(#data)가 있지만 이는 빠른 합계 연산만 포함한다. 히스토그램이 구성되면 히스토그램 기반 알고리즘은 시간 복잡도 O(#bins)를 가지며 #bins는 #.. 2022. 6. 28. [LightGBM] Python 패키지 (2) 매개변수 설정 LightGBM은 사전을 사용하여 매개변수를 설정할 수 있다. # 부스터 매개변수: param = {'num_leaves': 31, 'objective': 'binary'} param['metric'] = 'auc' # 여러 평가 지표를 지정 param['metric'] = ['auc', 'binary_logloss'] 훈련 모델을 훈련하려면 매개변수 목록과 데이터 세트가 필요하다. num_round = 10 bst = lgb.train(param, train_data, num_round, valid_sets=[validation_data]) 학습 후 모델을 저장할 수 있다. bst.save_model('model.txt') 훈련된 모델은 JSON 형식으로 덤프할 수도 있다. json_mo.. 2022. 6. 28. [LightGBM] Python 패키지 (1) 설치 pip install lightgbm 데이터 인터페이스 LightGBM Python 모듈은 다음에서 데이터를 로드할 수 있다. LibSVM (zero-based) / TSV / CSV 형식 텍스트 파일 NumPy 2D 배열, pandas DataFrame, H2O DataTable의 프레임, SciPy 희소 행렬 LightGBM 바이너리 파일 LightGBM Sequence개체 데이터는 Dataset개체에 저장된다. import numpy as np # LibSVM(0 기반) 텍스트 파일 또는 LightGBM 바이너리 파일을 Dataset에 로드하려면: train_data = lgb.Dataset('train.svm.bin') # numpy 배열을 Dataset에 로드하려면: data = np.ra.. 2022. 6. 28. LightGBM LightGBM LightGBM은 트리 기반 학습 알고리즘을 사용하는 그래디언트 부스팅 프레임워크이다. 다음과 같은 이점이 있는 분산 및 효율적으로 설계되었다. 더 빠른 훈련 속도와 더 높은 효율성 메모리 사용량을 줄임 더 나은 정확도 병렬, 분산 및 GPU 학습 지원 대규모 데이터를 처리할 수 있음 https://lightgbm.readthedocs.io/en/latest/index.html Welcome to LightGBM’s documentation! — LightGBM 3.3.2.99 documentation © Copyright 2022, Microsoft Corporation. Revision df14e607. lightgbm.readthedocs.io 2022. 6. 28. [Machine Learning] MLOps MLOps (Machine Learning Operations) MLOps는 머신러닝 작업 (Machine Learning Operations)을 뜻한다. MLOps는 ML 모델을 프로덕션으로 전환하는 프로세스를 간소화하고, 뒤이어 이를 유지관리하고 모니터링하는 데 주안점을 둔 ML 엔지니어링의 핵심 기능이다. MLOps는 협업 기능이며, 주로 데이터 사이언티스트, DevOps 엔지니어, IT로 구성된다. MLOps는 ML과 AI 솔루션 제작과 품질에 대한 유용한 접근법이다. 데이터 사이언티스트와 ML 엔지니어는 MLOps 방식을 채택하여 협업을 추진하고 모델 개발과 프로덕션 속도를 증강할 수 있다. 이를 위해 ML 모델의 적절한 모니터링, 검증과 governance를 포함해 지속적인 통합과 배포 (CI.. 2022. 5. 11. [XGBoost] Python Package Introduction (3) Prediction 훈련되거나 로드된 모델은 데이터 세트에 대한 예측을 수행할 수 있다. # 7 entities, each contains 10 features data = np.random.rand(7, 10) dtest = xgb.DMatrix(data) ypred = bst.predict(dtest) 훈련 중에 조기 중지가 활성화된 경우 다음을 사용하여 최상의 반복에서 예측을 얻을 수 있다 bst.best_iteration. ypred = bst.predict(dtest, iteration_range=(0, bst.best_iteration + 1)) Plotting 플로팅 모듈을 사용하여 중요도 및 출력 트리를 그릴 수 있다. 중요도를 표시하려면 xgboost.plot_importance()를 사.. 2022. 5. 9. [XGBoost] Python Package Introduction (2) 매개변수 설정 XGBoost는 쌍 목록이나 사전을 사용하여 매개변수를 설정할 수 있다. 1. Booster parameters param = {'max_depth': 2, 'eta': 1, 'objective': 'binary:logistic'} param['nthread'] = 4 param['eval_metric'] = 'auc' 2. 여러 평가 지표를 지정할 수도 있다. param['eval_metric'] = ['auc', 'ams@0'] # alternatively: # plst = param.items() # plst += [('eval_metric', 'ams@0')] 3. 성능을 관찰하도록 설정된 유효성 검사 지정 evallist = [(dtest, 'eval'), (dtrain, 'tra.. 2022. 5. 9. [XGBoost] Python Package Introduction (1) Python Package Introduction Python 패키지는 기본 인터페이스, scikit-learn 인터페이스 및 dask 인터페이스를 포함하여 3가지 다른 인터페이스로 구성된다. Dask 인터페이스에 대한 소개는 Distributed XGBoost with Dask를 참조하면 된다. import xgboost as xgb 데이터 인터페이스 NumPy 2D array SciPy 2D sparse array Pandas data frame cuDF DataFrame cupy 2D array dlpack datatable XGBoost binary buffer file LIBSVM text format file Comma-separated values (CSV) file 데이터는 DMatrix .. 2022. 5. 9. [XGBoost] 트리 부스팅 (Tree Boosting) (2) 구조 점수 (Structure Score) 트리 모델을 다시 공식화한 후 다음을 사용하여 목적 값을 작성할 수 있다. Ij={i|q(xi)=j}에 할당된 데이터 포인트의 인덱스 집합이다. 두 번째 줄에서 동일한 잎의 모든 데이터 포인트가 동일한 점수를 받기 때문에 합계의 인덱스를 변경했다. 다음을 정의하여 표현식을 더 압축할 수 있다. 이 방정식에서 wj 형태는 서로 독립이다. 주어진 구조 q(x)에 대해 얻을 수 있는 최고 wj의 객관적 감소는 다음과 같다. 마지막 방정식은 트리 구조가 얼마나 좋은지를 측정한다. 그것은 q(x)이다. 그림을 보고 점수를 계산하는 방법을 살펴본다. 기본적으로 주어진 트리 구조에 대해 통계 gi 그리고 hi를 푸시한다. 그들이 속한 잎에 통계를 합산하고 공식을 사용하여 나.. 2022. 5. 6. [XGBoost] 트리 부스팅 (Tree Boosting) (1) 트리 부스팅 (Tree Boosting) 나무를 어떻게 학습해야 할까? 그 답은 모든 지도 학습 모델에서 항상 그렇듯이 목적 함수를 정의하고 최적화하는 것이다. 다음을 목적 함수로 설정한다 (항상 훈련 손실과 정규화를 포함해야 함을 기억해야 함). Additive Training 나무의 매개변수는 무엇인가? 그 함수 fi들이라는 것을 알 수 있다. 각각은 트리의 구조와 잎 점수를 포함한다. 학습 트리 구조는 단순히 그라디언트를 취할 수 있는 기존의 최적화 문제보다 훨씬 어렵다. 한 번에 모든 나무를 배우는 것은 다루기 힘든 일이다. 대신에, 배운 것을 수정하고 한 번에 하나의 새로운 나무를 추가하는 추가 전략을 사용한다. 단계에서 예측 값을 쓴다. 각 단계에서 어떤 나무를 원할까? 목표를 최적화하는 것을.. 2022. 5. 6. 이전 1 2 3 4 5 6 7 다음 728x90 반응형 LIST