테이블 형식 데이터에 대한 이진 분류 모델을 선택할 때 저는 빠르고 비딥 러닝 모델인 GBDT(Gradient Boosting Decision Trees)를 빠르게 시험해 보기로 결정했습니다. 이 문서에서는 BigQuery를 데이터 소스로 사용하고 모델링을 위해 XGBoost 알고리즘을 사용하여 Jupyter Notebook 스크립트를 만드는 과정을 설명합니다.
설명 없이 바로 스크립트로 넘어가고 싶은 분들을 위해 여기 있습니다. 프로젝트에 맞게 project_name,dataset_name 및 table_name을 조정하세요.
이전에는 데이터가 CSV 파일로 Cloud Storage에 저장되었지만 느린 데이터 로드로 인해 학습 프로세스의 효율성이 저하되어 더 빠른 데이터 처리를 위해 BigQuery로 전환하게 되었습니다.
이 코드는 환경 변수 또는 Google Cloud SDK를 통해 설정할 수 있는 Google Cloud 자격 증명을 사용하여 BigQuery 클라이언트를 초기화합니다.
이 함수는 SQL 쿼리를 실행하고 그 결과를 Pandas의 DataFrame으로 반환하므로 효율적인 데이터 처리가 가능합니다.
XGBoost는 그라디언트 부스팅을 활용한 고성능 기계 학습 알고리즘으로 분류 및 회귀 문제에 널리 사용됩니다.
https://arxiv.org/pdf/1603.02754
여기서는 로그 손실을 평가 지표로 사용하여 XGBClassifier 클래스가 인스턴스화됩니다.
이 기능은 데이터를 훈련 및 검증 세트로 분할하는데, 이는 모델 성능을 테스트하고 과적합을 방지하는 데 중요합니다.
GridSearchCV는 모델에 가장 적합한 매개변수 조합을 찾기 위해 교차 검증을 수행합니다.
모델의 성능은 검증 데이터 세트의 정밀도, 재현율, F1 점수 및 로그 손실을 사용하여 평가됩니다.
노트북을 실행하면 최상의 매개변수와 모델 평가 지표를 보여주는 다음 출력을 얻게 됩니다.
어떤 경우에는 BigQuery보다 Google Cloud Storage에서 데이터를 로드하는 것이 더 적절할 수 있습니다. 다음 함수는 Cloud Storage에서 CSV 파일을 읽고 이를 Pandas의 DataFrame으로 반환하며, load_data_from_bigquery 함수와 상호 교환적으로 사용할 수 있습니다.
사용 예:
XGBoost 대신 LightGBM을 사용하려면 동일한 설정에서 XGBClassifier를 LGBMClassifier로 간단히 교체하면 됩니다.
향후 기사에서는 학습에 BigQuery ML(BQML)을 사용하는 방법을 다룰 예정입니다.
위 내용은 BigQuery 및 XGBoost 통합: 이진 분류를 위한 Jupyter Notebook 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!