본문으로 이동

캣부스트

위키백과, 우리 모두의 백과사전.
캣부스트
원저자안드레이 굴린(Andrey Gulin):[1] / 얀덱스
개발자얀덱스 및 캣부스트 기여자들[2]
발표일2017년 7월 18일(8년 전)(2017-07-18)[3][4]
안정화 버전
1.2.3[5] / 2024년 2월 23일(19개월 전)(2024-02-23)
프로그래밍 언어파이썬, R, C++, 자바
운영 체제리눅스, macOS, Windows
종류기계 학습
라이선스아파치 라이선스 2.0
웹사이트catboost.ai

캣부스트(CatBoost)[6]얀덱스가 개발한 오픈 소스 소프트웨어 라이브러리이다. 이는 다른 기능들과 더불어, 고전적인 알고리즘에 대한 순열 기반 대안을 사용하여 범주형 특성을 해결하려는 그라디언트 부스팅 프레임워크를 제공한다.[7] 리눅스, Windows, macOS에서 작동하며, 파이썬,[8] R[9]로 사용할 수 있으며, 캣부스트를 사용하여 구축된 모델은 C++, 자바,[10] C 샤프, 러스트, Core ML, ONNX, PMML에서 예측에 사용될 수 있다. 소스 코드는 아파치 라이선스 하에 라이선스되어 있으며 GitHub에서 이용할 수 있다.[6]

인포월드 잡지는 2017년에 이 라이브러리에 "최고의 기계 학습 도구" 상을 수여했다.[11] 이는 텐서플로, PyTorch, XGBoost 및 8개의 다른 라이브러리와 함께 선정되었다.

캐글은 캣부스트를 세계에서 가장 자주 사용되는 기계 학습(ML) 프레임워크 중 하나로 선정했다. 2020년 설문조사[12]에서 가장 자주 사용되는 ML 프레임워크 상위 8위로, 2021년 설문조사[13]에서는 상위 7위로 등재되었다.

2022년 4월 기준으로, 캣부스트는 PyPI 저장소[14]에서 하루 약 100,000회 설치되고 있다.

기능

[편집]

캣부스트는 주로 다음 기능들 덕분에 다른 그라디언트 부스팅 알고리즘에 비해 인기를 얻었다.[15]

  • 범주형 특성의 기본 처리[16]
  • 빠른 GPU 훈련[17]
  • 모델 및 특징 분석을 위한 시각화 및 도구
  • 더 빠른 실행을 위한 oblivious 트리 또는 대칭 트리 사용
  • 과적합을 극복하기 위한 순서형 부스팅[7]

역사

[편집]

2009년 안드레이 굴린은 얀덱스에서 검색 결과 순위를 매기는 데 사용된 독점적인 그라디언트 부스팅 라이브러리인 MatrixNet을 개발했다. 2009년부터 MatrixNet은 추천 시스템 및 일기 예보를 포함한 얀덱스의 다양한 프로젝트에 사용되었다.

2014-2015년에 안드레이 굴린은 연구팀과 함께 "범주형 데이터 작업 방법" 문제를 해결하는 것을 목표로 하는 Tensornet이라는 새로운 프로젝트를 시작했다. 그 결과 범주형 데이터 처리에 대한 다른 접근 방식을 가진 여러 독점적인 그라디언트 부스팅 라이브러리가 탄생했다.

2016년 안나 도로구시가 이끄는 기계 학습 인프라 팀은 Matrixnet과 Tensornet을 포함한 얀덱스에서 그라디언트 부스팅 작업을 시작했다. 그들은 범주형 및 텍스트 데이터, GPU 훈련, 모델 분석, 시각화 도구를 지원하는 CatBoost라는 그라디언트 부스팅 라이브러리의 다음 버전을 구현하고 오픈 소스화했다.

캣부스트는 2017년 7월에 오픈 소스화되었으며 얀덱스와 오픈 소스 커뮤니티에서 활발히 개발되고 있다.

적용

[편집]
  • 젯브레인즈는 코드 완성에 캣부스트를 사용한다.[18]
  • Cloudflare는 봇 탐지에 캣부스트를 사용한다.[19]
  • Careem은 탑승의 미래 목적지를 예측하는 데 캣부스트를 사용한다.[20]

같이 보기

[편집]

각주

[편집]
  1. “Andrey Gulin - People - Research at Yandex”. 《research.yandex.com》. 
  2. “catboost/catboost”. 《GitHub》. 
  3. “Yandex open sources CatBoost, a gradient boosting machine learning library” (미국 영어). 《TechCrunch》. 2017년 7월 18일. 2020년 8월 30일에 확인함. 
  4. Yegulalp, Serdar (2017년 7월 18일). “Yandex open sources CatBoost machine learning library” (영어). 《InfoWorld》. 2020년 8월 30일에 확인함. 
  5. “Releases · catboost/catboost” (영어). 《GitHub》. 2024년 3월 14일에 확인함. 
  6. “catboost/catboost”. 2020년 8월 30일 – GitHub 경유. 
  7. Prokhorenkova, Liudmila; Gusev, Gleb; Vorobev, Aleksandr; Dorogush, Anna Veronika; Gulin, Andrey (2019년 1월 20일). “CatBoost: unbiased boosting with categorical features”. arXiv:1706.09516 [cs.LG]. 
  8. “Python Package Index PYPI: catboost”. 2020년 8월 20일에 확인함. 
  9. “Conda force package catboost-r”. 2020년 8월 30일에 확인함. 
  10. “Maven Repository: ai.catboost » catboost-prediction”. 《mvnrepository.com》. 2020년 8월 30일에 확인함. 
  11. staff, InfoWorld (2017년 9월 27일). “Bossie Awards 2017: The best machine learning tools”. 《InfoWorld》. 
  12. “State of Data Science and Machine Learning 2020”. 
  13. “State of Data Science and Machine Learning 2021”. 
  14. “PyPI Stats catboost” (미국 영어). 《PyPI Stats》. 
  15. Joseph, Manu (2020년 2월 29일). “The Gradient Boosters V: CatBoost” (영어). 《Deep & Shallow》. 2020년 8월 30일에 확인함. 
  16. Dorogush, Anna Veronika; Ershov, Vasily; Gulin, Andrey (2018년 10월 24일). “CatBoost: gradient boosting with categorical features support”. arXiv:1810.11363 [cs.LG]. 
  17. “CatBoost Enables Fast Gradient Boosting on Decision Trees Using GPUs” (미국 영어). 《NVIDIA Developer Blog》. 2018년 12월 13일. 2020년 8월 30일에 확인함. 
  18. “Code Completion, Episode 4: Model Training” (미국 영어). 《JetBrains Developer Blog》. 2021년 8월 20일. 
  19. “Stop the Bots: Practical Lessons in Machine Learning” (미국 영어). 《The Cloudflare Blog》. 2019년 2월 20일. 
  20. “How Careem's Destination Prediction Service speeds up your ride” (미국 영어). 《Careem》. 2019년 2월 19일. 

외부 링크

[편집]