12. 사이킷런으로 구현해 보는 머신러닝

j_hyun11·2022년 5월 20일
0

1. 다양한 머신러닝 알고리즘

1-1. 지도학습 (Supervised Learning)

분류(Classification) : 예측해야할 데이터가 범주형(categorical) 변수일때 분류 라고 함
회귀(Regression) : 예측해야할 데이터가 연속적인 값 일때 회귀 라고 함
예측(Forecasting) : 과거 및 현재 데이터를 기반으로 미래를 예측하는 과정

1-2. 비지도학습 (Unsupervised Learning)

클러스터링 : 특정 기준에 따라 유사한 데이터끼리 그룹화함
차원축소 : 고려해야할 변수를 줄이는 작업, 변수와 대상간 진정한 관계를 도출하기 용이

정답 유무, 데이터의 종류, 특성, 문제 정의에 따라 머신러닝 알고리즘은 굉장히 복합적으로 사용

1-3. 강화학습 (Reinforcement Learning)

학습하는 시스템을 에이전트라고 하고, 환경을 관찰해서 에이전트가 스스로 행동하게 한다. 모델은 그 결과로 특정 보상을 받아 이 보상을 최대화하도록 학습한다.

<강화학습 알고리즘의 대표적인 종류>

  • Monte Carlo methods
  • Q-Learning
  • Policy Gradient methods

2. 사이킷런에서 가이드하는 머신러닝 알고리즘

< 사이킷런에서 알고리즘의 Task>

  • Classification
  • Regression
  • Clustering
  • Dimensionality Reduction

<사이킷런에서 알고리즘을 나눈 기준>

  • 데이터 수량
  • 라벨의 유무(정답의 유무)
  • 데이터의 종류 (수치형 데이터(quantity), 범주형 데이터(category) 등)

3. Hello Scikit-learn

  • train_test_split() : 훈련 데이터와 테스트 데이터를 나누는 기능을 제공하는 함수
  • transformer() : ETL(Extract Transform Load) 기능을 수행하는 함수
  • Estimator : fit()과 predcict()만을 이용해 간단하게 학습과 예측 결과를 반환

4. 사이킷런의 주요 모듈

4-1. 데이터 표현법

<특성 행렬(Feature Matrix)>

  • 입력 데이터를 의미
  • 특성(feature): 데이터에서 수치 값, 이산 값, 불리언 값으로 표현되는 개별 관측치를 의미. 특성 행렬에서는 열에 해당하는 값
  • 표본(sample): 각 입력 데이터, 특성 행렬에서는 행에 해당하는 값
  • n_samples: 행의 개수(표본의 개수)
  • n_features: 열의 개수(특성의 개수)
  • X: 통상 특성 행렬은 변수명 X로 표기
  • [n_samples, n_features]은 [행, 열] 형태의 2차원 배열 구조를 사용하며 이는 NumPy의 ndarray, Pandas의 DataFrame, SciPy의 Sparse Matrix를 사용하여 나타낼 수 있다.

<타겟 벡터 (Target Vector)>

  • 입력 데이터의 라벨(정답) 을 의미
  • 목표(Target): 라벨, 타겟값, 목표값이라고도 부르며 특성 행렬(Feature Matrix)로부터 예측하고자 하는 것
  • n_samples: 벡터의 길이(라벨의 개수)
  • 타겟 벡터에서 n_features는 없다.
  • y: 통상 타겟 벡터는 변수명 y로 표기
  • 타겟 벡터는 보통 1차원 벡터로 나타내며, 이는 NumPy의 ndarray, Pandas의 Series를 사용하여 나타낼 수 있다.
  • (단, 타겟 벡터는 경우에 따라 1차원으로 나타내지 않을 수도 있다. 이 노드에서 사용되는 예제는 모두 1차원 벡터)

특성 행렬 X의 n_samples와 타겟 벡터 y의 n_samples는 동일해야 함

0개의 댓글