- 지도학습 : 정답이 있는 데이터를 활용해 데이터를 학습. 입력 값(X data)이 주어지면 입력값에 대한 Label(Y data)를 주어 학습시키며 대표적으로 분류, 회귀 문제가 있음
- 비지도학습 : 정답 라벨이 없는 데이터를 비슷한 특징끼리 군집화 하여 새로운 데이터에 대한 결과를 예측하는 방법을 비지도학습. 대표적으로는 Clustering이 있음.
- 강화학습 : 분류할 수 있는 데이터가 존재하는 것도 아니고 데이터가 있어도 정답이 따로 정해져 있지 않으며 자신이 한 행동에 대해 보상(reward)를 받으며 학습. 그 보상을 극대화하기 위해 노력함으로써 정답에 가까운 답을 찾아가는 것.
- 게임을 예시로 할때) 정해진 규칙이 알려지지 않은 게임 환경( Environment)에서 플레이어(Agent)가 현재 상태(State)에서 높은 점수(Reward)를 얻는 방법을 찾아가며 행동(Action)하는 학습 방법을 통해 전략 형성. 단, 행동을 위한 행동 목록은 사전에 정의가 필요.
- 게임을 예시로 할때) 정해진 규칙이 알려지지 않은 게임 환경( Environment)에서 플레이어(Agent)가 현재 상태(State)에서 높은 점수(Reward)를 얻는 방법을 찾아가며 행동(Action)하는 학습 방법을 통해 전략 형성. 단, 행동을 위한 행동 목록은 사전에 정의가 필요.
LinearRegression
- 종속변수 y와 한 개 이상의 독립변수 x와의 선형 상관관계를 모델링하는 회귀분석 기법.
- 두 변수의 관계를 가장 잘 나타내줄 수 있는 최적의 직선을 긋는다.
- 선형회귀는 예측과 훈련 세트에 있는 타깃 y사이의 평균제곱오차(MSE)를 최소화하는 파라미터 w와 b를 찾는다.
- 선형 모델의 오차를 최소화하는 계수를 찾기 위한 최소 제곱 법(Least squares)은 다음과 같다.
- 매개변수가 없는 것이 장점이지만, 모델의 복잡도를 제어할 수 없다는 단점이 있다.
- 아래 위키피디아에서 가져 온 그래프에서 파란선이 선형회귀 모델을 나타내고 빨간점들이 훈련데이터를 나타낸다.
Ridge
- 회귀를 위한 선형모델
- '각 계수의 제곱을 더한 값'을 식에 포함하여 계수의 크기도 함께 최소화하도록 만들었다.
- 가중치(w)의 모든 원소가 0에 가깝게 만들어 모든 피처가 주는 영향을 최소화(기울기를 작게 만듦)
- 기본 선형모델을 사용하다 보면 overfitting이 발생할 수 있다. Overfitting된 경우 데이터에 매우 적합되어 극단적으로 오르락내리락하는 그래프가 생성되며, 이를 표현하는 선형 회귀의 계수 값이 매우 크게 나타난다. 이렇게 Variance가 큰 상황을 막기 위해, 계수 자체가 크면 페널티를 주는 수식을 추가 한 것이 ridge regression이다.
Lasso
- 회귀를 위한 선형모델
- '각 계수 절댓값의 합'을 수식에 포함하여 계수의 크기도 함께 최소화하도록 만든다.
- 계수를 0에 가깝게 만들려고 하며 이를 L1규제라고 하며, 어떤 계수는 0이 되기도 하는데 이는 완전히 제외하는 피처가 생긴다는 의미다.
- 피처 선택이 자동으로 이루어진다고도 볼 수 있다.
k-means
- 가장 유명한 클러스터링 알고리즘
- “K”는 주어진 데이터로부터 그룹화 할 그룹, 즉 클러스터의 수
- “Means”는 각 클러스터의 중심과 데이터들의 평균 거리
- 이 때 클러스터의 중심을 centroids 라고 한다
- K-Means 알고리즘은 다음과 같은 과정으로 수행된다.
- 데이터셋에서 K 개의 centroids를 임의로 지정
- 각 데이터들을 가장 가까운 centroids가 속한 그룹에 할당
- 2번 과정에서 할당된 결과를 바탕으로 centroids를 새롭게 지정
- 2 ~ 3번 과정을 centroids가 더 이상 변하지 않을 때 까지 반복
Random Forest Regression
- 랜덤포레스트는 의사결정트리를 앙상블 기법으로 학습시킨 모델로, 오버피팅을 방지하기 위해 고안된 방법이다.
- 앙상블 학습 기법이란 쉽게 말해, 하나의 예측에 여러가지 알고리즘을 투표를 거쳐 사용하는 것이다. 즉, 랜덤포레스트에서 사용하는 앙상블은 여러 개의 서로 다른 의사결정트리를 만들고, 투표를 통해 결과를 얻어내는 것이다.
- 랜덤하게 선정하는 방법이 바로 배깅(bagging == bootstrap aggregating)이다. 배깅은 동일한 전체 데이터를 이용하여 개별 트리들을 학습하는 것이 아니라, 전체 데이터에서 훈련용 데이터를 샘플링하여 개별 트리를 구성하게 된다.
DesicionTree
- 의사결정트리는 일련의 분류 규칙을 통해 데이터를 분류, 회귀하는 지도 학습 모델 중 하나
- 결과 모델이 Tree 구조를 띄고 있음
- 특정 기준(질문)에 따라 데이터를 구분하는 모델을 의사 결정 트리 모델
GradientBoosting
- 여러개의 결정트리를 묶어 강력한 모델을 만드는 또 다른 앙상블 기법
- 회귀와 분류에 모두 사용할 수 있음
- 랜덤포레스트와 달리 이진 트리의 오차를 보완하는 방식으로 순차적으로 트리를 만든다.
- 무작위성이 없고 강력한 사전 가지치기가 사용 됨
- 1~5개의 깊지 않은 트리를 사용하기 때문에 메모리를 적게 사용하고 예측이 빠름
그리드 서치
- 관심 있는 매개변수들을 대상으로 가능한 모든 조합을 시도하여 최적의 매개변수를 찾는 방법
- 매개변수를 튜닝하여 일반화 성능을 개선해줌
데이터 분석시에 로그변환을 하는 이유
- 정규성을 높이고 분석(회귀분석 등)에서 정확한 값을 얻기 위함
- 큰 수를 작게 만들고, 복잡한 계산을 쉽게 만들고, 왜도와 첨도를 줄여서 데이터 분석 시 의미있는 결과를 도출하기 위함
- 분석하려는 데이터 간의 편차가 큰 경우에 로그를 취하면 의미있는 결과를 얻을 가능성이 높아진다.
regplot
- RegPlot은 Regression Plot의 약자이다.
- 데이터의 분포와, 이 데이터를 선형으로 표현하는 Regression Line을 동시에 표현해주는 그래프이다.
- 주식 데이터 분석, 추세 그리기 등의 기본은 RegPlot으로부터 시작된다.