Skip to main content
QUICK REVIEW

[논문 리뷰] Imbalanced-learn: A Python Toolbox to Tackle the Curse of Imbalanced Datasets in Machine Learning

Guillaume Lemaître, Fernando Nogueira|arXiv (Cornell University)|2016. 09. 21.
Imbalanced Data Classification Techniques참고 문헌 13인용 수 1,560
한 줄 요약

Imbalanced-learn는 불균형 데이터셋을 다루기 위한 언더샘플링, 오버샘플링, 하이브리드 샘플링 및 앙상블 방법의 파이썬 도구 상자를 제공하며, scikit-learn과 호환됩니다.

ABSTRACT

Imbalanced-learn is an open-source python toolbox aiming at providing a wide range of methods to cope with the problem of imbalanced dataset frequently encountered in machine learning and pattern recognition. The implemented state-of-the-art methods can be categorized into 4 groups: (i) under-sampling, (ii) over-sampling, (iii) combination of over- and under-sampling, and (iv) ensemble learning methods. The proposed toolbox only depends on numpy, scipy, and scikit-learn and is distributed under MIT license. Furthermore, it is fully compatible with scikit-learn and is part of the scikit-learn-contrib supported project. Documentation, unit tests as well as integration tests are provided to ease usage and contribution. The toolbox is publicly available in GitHub: https://github.com/scikit-learn-contrib/imbalanced-learn.

연구 동기 및 목표

  • 실제 데이터셋에서Fraud 탐지 및 의료 진단과 같은 분야에 걸친 클래스 불균형의 유병 및 영향에 대해 다룬다.
  • 다양한 최첨단 불균형 처리 기법에 대한 파이썬 API를 제공한다.
  • scikit-learn과의 호환성과 높은 코드 품질을 보장하여 채택 및 기여를 촉진한다.

제안 방법

  • 언더샘플링, 오버샘플링, 두 가지의 결합, 앙상블 학습의 네 가지 전략 그룹을 구현한다.
  • scikit-learn과 유사한 API를 따르는 fit, sample, and fit_sample 메서드를 가진 샘플러 클래스를 제공한다.
  • SMOTE, 경계선 variants, Tomek 링크, 그리고 다양한 ENN 기반 정리 방법과 같은 일반적인 불균형 기법을 지원한다.
  • 샘플러, 트랜스포머, 추정기를 결합하기 위해 scikit-learn과 호환되는 Pipeline 클래스를 활용한다.
  • MIT 라이선스 하에 numpy, scipy, scikit-learn에 대한 의존성을 갖고 scikit-learn-contrib 상태를 유지한다.
  • 릴리스 0.1.8에서 99% 커버리지를 포함한 단위 테스트와 지속적 통합으로 높은 코드 품질을 유지한다.

실험 결과

연구 질문

  • RQ1다른 데이터셋과 불균형 비율에 따라 가장 효과적인 불균형 처리 기법은 무엇인가?
  • RQ2언더샘플링, 오버샘플링, 앙상블 방법의 적용을 표준 ML 워크플로우 내에서 간소화하기 위해 통합 파이썬 도구상자를 어떻게 활용할 수 있는가?
  • RQ3scikit-learn에 최적화된 API 디자인은 채택과 확장을 촉진하는데 어떤 요소가 필요한가?

주요 결과

  • 이 도구상자는 네 가지 주요 전략을 구현한다: 언더샘플링, 오버샘플링, 결합, 그리고 앙상블 학습.
  • 샘플러 클래스는 scikit-learn API를 반영하여 fit, sample, 및 fit_sample 메서드를 제공한다.
  • SMOTE 및 그 변형들, 임의의 오버샘플링 및 여러 언더샘플링/정리 기법이 포함된다.
  • EasyEnsemble 및 BalanceCascade와 같은 앙상블 접근 방식은 단일 균형 데이터셋을 사용하는 대안을 제공한다.
  • 프로젝트는 MIT 라이선스로 배포되며 numpy/scipy/scikit-learn에 의존하고 scikit-learn과 완전히 호환된다; 문서화, 테스트 및 CI 통합이 있다.
  • 코드 품질과 프로젝트 활동이 높으며, 출시 버전에서 99%의 테스트 커버리지가 보고되었고 GitHub 기반 개발이 활발하다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.