AI 기초

[ AI기초 ] 05. 사이킷런(scikit-learn) 개념

코딩펭귄 2022. 10. 29. 22:55

'사이킷런' 이라는 파이썬 라이브러리에대해 처음 배웠던 날의 기록이다.

 

사이킷런은 내부에 머신러닝을 실습할수 있는 데이터들을 포함하고있는 라이브러리이다.

사이킷런에서는 지도학습, 비지도학습을 모두 사용할수 있으며, 빠르게 모델을 구성할 수 있다.

 

머신러닝 구현시, 적합한 알고리즘을 선택하는것이 고민될 때가 많을텐데, 이런 상황에서는 아래 'scikit-learn algorithm cheat-sheet를 이용하면 도움을 받을수있을것이다.

 

scikit-learn algorithm cheat-sheet 

- 사용방법 : 상단 주황색 start 노드에서 시작해서 분석조건에 맞춰 yes/no 따라가면 됨

 

알고리즘을 선택할때, 러프한 가이드를 제공하는 사이킷런 플로우차트

 

  scikit-learn 라이브러리  

  • 머신러닝 알고리즘을 구현한 오픈소스 라이브러리중 가장 유명함
  • 문서화가 잘 되어있으며, 일관되고 간결한 api가 장점임
  • 알고리즘 :  파이썬클래스로 구현됨
  • 데이터셋 : Numpy배열, Pandas DataFrame, Scipy 희소행렬 사용할수있음
  • 지원 벡터 머신, 랜덤 포레스트, 그레디언트 부스팅, K-means 및 DBSCAN을 포함한 다양한 분류, 회귀 및
  • 클러스터링 알고리즘 제공

 

  scikit-learn 데이터 표현방식  

   - 지도학습을 기준으로, 머신러닝에 필요한 데이터는 '입력' 에해당하는 '특징행렬' 과, '출력' 에해당하는 '대상벡터' 이다.

사진출처: https://www.robotstory.co.kr/raspberry/?mode=view&board_pid=51

[ X, 특징행렬(Feature Matrix) ]

- 행(row)을 나타내는 표본(sample)과, 열(column)을 나타내는 특징(feature)으로 구성됨

- 관례적으로 특징행렬변수 X에 저장

  • 표본 (sample) : 데이터셋이 설명하는 개별객체를 나타냄 --> 행렬의 '행'
  • 특징 (feature) : 각 표본을 연속적인 수치값, 부울값, 이산값으로 표현하는 개별관측치를 의미 --> 행렬의 '열'
  • 행의개수 -> n_samples
  • 열의개수 -> n_features
  • [n_samples, n_features] 형태의 2차원 배열구조를 사용 

[ y, 대상벡터 (Target Vector) ]

- 레이블(label)이라 부르는 각 표본에 대한 결과값

- 관례적으로 대상벡터 변수y에 저장

  • 연속적인 수치값, 이산클래스 / 레이블 가짐
  • 길이 -> n_samples
  • 1차원 배열구조(numpy배열, pandas series 사용)
  • 데이터의 길이 = 표본의 개수
  • 특징 행렬로부터 예측하고자 하는 값의 벡터
  • 종속변수, 출력변수, 결과변수, 반응변수라고도 함

 

  사이킷런의 주요 모듈  

  • example data - sklearn.datasets : 예제 데이터 세트 제공
  • feature 처리 - sklearn.preprocessing : 데이터 전처리에 필요한 다양한 가공 기능 제공 /                      sklearn.feature_selection : 중요한 feature를 우선순위로 선택하기 위한 수행 기능 제공 sklearn.feature_extraction : 데이터의 벡터화된 feature 추출 기능 제공
  • 차원축소 - sklearn.decomposition : 차원 축소와 관련된 알고리즘 제공
  •  데이터분리, 검증 - sklearn.model_selection : 교차 검증을 위한 데이터 세트 분리
  • 평가 - sklearn.metrics : Classification, Regression, Clustering 등 성능 측정 방법 제공

   

  머신러닝 모델링 순서  

1) 데이터 적재

2) 학습용 데이터와 테스트 데이터 분류

3) 머신러닝 알고리즘 선택

4) 하이퍼 파라메터

5) 데이터 예측및 모델 평가