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는 동일해야 함