오늘은 머신러닝의 대표적인 라이브러리 'scikit-learn'에 대해 알아보겠다.
scikit-learn(sklearn)이란
사이킷런은 파이썬 기반의 대표적인 머신러닝 라이브러리이다. 다양한 ml 알고리즘과 프레임워크, api를 제공하여 손쉽게 머신런이 모델을 구축할 수 있도록 도와준다.
아래는 사이킷런 사이트이다.
https://scikit-learn.org/stable/
이 사이트에 접속해보면,
이렇게 6가지 키워드가 제시되어 있는데, 이건 사이킷런이 제공하는 주요 기능들이다.
그럼 이제 각각의 키워드에 대해 알아보자.
분류(Classification)
정의
분류는 새로 관측된 데이터가 어떤 범주 집합에 속하는지를 식별하는 작업이다. 즉, 입력 데이터를 미리 정의된 클래스로 구분하는 것이다.
분류 문제의 대표 사례
- 스팸 메일 탐지(Spam detection)
- 이미지 인식(image recognition)
분류 알고리즘
- 그레디언트 부스팅(Gradient boosting)
- 최근접 이웃(Nearest neighbors)
- 랜덤 포레스트(Random forest)
- 로지스틱 회귀(Logistic regression)
회귀(Regression)
정의
회귀는 입력 데이터와 연속적인 값을 가지는 목표 변수 사이의 관계를 모델링하는 기법이다. 즉, 입력 데이터를 바탕으로 연속적인 값을 예측하는 것이 회귀의 목적이다.
회귀 문제의 대표 사례
- 약물 반응 예측(Drug response)
- 주식 가격 예측(Stock prices)
회귀 알고리즘
회귀 문제에 사용되는 알고리즘은 분류 문제에 사용되는 알고리즘과 비슷하다.
- 그레디언트 부스팅(Gradient boosting)
- 최근접 이웃(Nearest neighbors)
- 랜덤 포레스트(Random forest)
- 릿지 회귀(Ridge regression)
위 사례 이외에도, 최근에는 암호화폐 시장에서도 주가 예측을 위해 다양한 기계학습 기법들이 시도되고 있다. 전통적인 주식 시장 분석 기법뿐만 아니라 딥러닝, 강화학습 등 최신 기술들도 활용되고 있다. 암호화폐 시장은 기존 주식 시장과 다른 특성을 가지고 있어 새로운 접근이 필요한 것으로 보인다.
군집화(Clustering)
정의
클러스터링은 유사한 개체들을 자동으로 그룹화하는 기법이다. 사전에 정의된 기준 없이 데이터의 속성값을 비교하여 유사한 개체들을 하나의 클러스터로 묶는다.
군집화 문제의 대표 사례
- 고객 세분화(customr segmentation)
- 실험 결과 그룹화(Grouping experiment outcomes)
군집화 알고리즘
- k-Means
- HDBSCAN
- 계층적 군집화(Hierarchical Clustering)
차원 축소(Dimensionality reduction)
정의
차원 축소는 고차원 데이터를 저차원 데이터로 변환하는 기법이다. 많은 수의 변수(특징)로 구성된 데이터를 더 적은 수의 변수로 표현하는 것을 의미한다.
차원 축소 문제의 대표 사례
- 데이터 시각화(Visualization)
- 성능 향상(Increased efficiency)
- 과적합 방지(Preventing Overfitting)
차원 축소 알고리즘
- 주성분 분석(PCA)
- 특징 선택(Feature Selection)
- 비음수 행렬 분해(Non-negative Matrix Factorization)
그 외에도 t-SNE, UMAP 등 다양한 차원 축소 알고리즘이 존재한다.
모델 선택(Model selection)
정의
모델 선택은 다양한 모델 및 하이퍼파라미터를 비교, 검증하고 최적의 모델을 선택하는 과정이다.
모델 선택 문제의 대표 사례
- 하이퍼파라미터 튜닝을 통한 모델 정확도 향상(Improved accuracy via parameter tuning)
모델 선택 알고리즘
- 그리드 서치(Grid Search)
- 교차 검증 (Cross Validation)
- 성능 지표 (Metrics)
전처리(Preprocessing)
정의
데이터를 기계 학습 알고리즘에 사용할 수 있는 형태로 변환하는 과정이다. 특징 추출(Feature extraction)과 정규화(Normalization)를 포함한다.
전처리 문제의 대표 사례
- 텍스트와 같은 입력 데이터를 기계 학습 알고리즘에 사용할 수 있도록 변환(Transforming input data such as text for use with machine learning algorithms.)
전처리 알고리즘
- 전처리(Preprocessing)
- 특징 추출(Feature Extraction)
전처리를 통해 텍스트 데이터와 같은 입력을 기계 학습 알고리즘에 활용할 수 있게 된다.
알맞은 estimator 고르기
기계학습 문제를 해결할 때 가장 어려운 부분 무엇일까? 바로, 데이터와 문제 유형에 적합한 estimator 모듈을 선택하는 것이다.
여기서 말하는 estimator란, 기계 학습 모델을 학습시키고 예측을 수행하는 알고리즘을 뜻한다.
위에서 등장한 선형 회귀, 로지스틱 회귀, 랜덤 포레스트 등이 대표적인 estimator이다. 각각의 estimator는 데이터 유형, 문제 유형, 성능 요구사항에 따라 적합성이 다르다.
위 그림은 어떤 estimator를 사용할지 결정하는데 도움을 주기 위해 설계된 흐름도이다.
이 그림을 참고하면, 화살표의 흐름에 따라 필요한 알고리즘을 수월하게 선택할 수 있을 것이다.
'인공지능로그🗿' 카테고리의 다른 글
비지도와 자가지도 이론 및 최근 연구 동향 (0) | 2025.01.05 |
---|---|
범죄수사학 연구와 인공지능이 만나면? (2) | 2024.02.04 |