WIPIVERSE

scikit-learn

개요
scikit-learn은 파이썬 프로그래밍 언어로 구현된 오픈소스 머신러닝 라이브러리이다. 지도학습, 비지도학습, 모델 선택 및 전처리 등을 위한 다양한 알고리즘과 도구를 제공한다. NumPy, SciPy, matplotlib와 같은 과학 연산 패키지를 기반으로 설계되었으며, 일관된 API와 풍부한 문서가 특징이다.

역사

  • 2007년: David Cournapeau가 “scikits.learn”이라는 이름으로 프로젝트를 시작했다.
  • 2010년: 프로젝트가 scikit-learn이라는 이름으로 재정비되고, Gaël Varoquaux, Andreas Müller 등 다수의 핵심 개발자가 참여하면서 활발히 성장하였다.
  • 2011년: 첫 번째 정식 버전 0.1이 릴리즈되었다.
  • 2020년대: 1.x 버전 시리즈가 지속적으로 업데이트되며, API 안정성과 성능 향상이 이루어졌다.

주요 기능

분야 제공 알고리즘·도구
지도학습 선형 회귀, 로지스틱 회귀, 서포트 벡터 머신(SVM), 결정 트리, 랜덤 포레스트, 그래디언트 부스팅, k-최근접 이웃(KNN) 등
비지도학습 k-평균, DBSCAN, 계층적 군집, 주성분 분석(PCA), 독립 성분 분석(ICA) 등
모델 평가·선택 교차 검증, 그리드 서치(GridSearchCV), 랜덤 서치(RandomizedSearchCV), 학습 곡선, 검증 곡선
전처리 스케일링, 정규화, 원-핫 인코딩, 결측값 대체, 피처 추출·선택
파이프라인 Pipeline 클래스를 통한 일련의 변환·학습 단계 자동화
메트릭 정확도, 정밀도, 재현율, F1 점수, ROC AUC, 평균 제곱 오차 등 다양한 성능 지표

사용 예시 (Python 코드)

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

# 데이터 로드
X, y = load_iris(return_X_y=True)

# 학습/평가 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# 모델 학습
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)

# 예측 및 평가
y_pred = clf.predict(X_test)
print("Accuracy:", accuracy_score(y_test, y_pred))

라이선스
scikit-learn은 BSD 3-Clause “New” 또는 “Revised” License 하에 배포된다. 이 라이선스는 상업적·비상업적 목적 모두에 자유로운 사용을 허용한다.

관련 프로젝트

  • NumPy: 다차원 배열 연산의 기본 라이브러리.
  • SciPy: 과학·공학 계산에 필요한 알고리즘 제공.
  • pandas: 데이터 프레임 구조 제공, scikit-learn과 함께 전처리 단계에서 자주 사용된다.
  • joblib: 모델 직렬화와 병렬 처리를 지원한다.

참고 문헌

  1. Pedregosa, F. et al. “Scikit-learn: Machine Learning in Python.” JMLR 12 (2011): 2825‑2830.
  2. scikit-learn 공식 문서: https://scikit-learn.org/
  3. GitHub 저장소: https://github.com/scikit-learn/scikit-learn

본 내용은 scikit-learn에 대한 일반적인 백과사전 정보를 기반으로 작성되었으며, 최신 버전의 세부 사항은 공식 문서를 참고한다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기