类别 全部 - 데이터

作者:e e 3 年以前

619

Machine Learning

기계 학습은 주어진 데이터를 기반으로 규칙을 찾아내어 유용한 결과를 도출하는 기술이다. 지도 학습은 정답이 있는 입력과 출력을 통해 결과를 도출하는 방식으로, 주로 분류와 회귀 문제에 사용된다. 분류는 데이터를 특정 카테고리로 나누는 과정으로, 서포트 벡터 머신, 로지스틱 회귀 등의 알고리즘이 사용된다. 서포트 벡터 머신은 결정 경계선을 정의하여 데이터를 분류하며, 마진과 커널을 이용해 다양한 데이터 패턴을 처리한다.

Machine Learning

Machine Learning

What is Machine Learning?



직역 : 기계를 가르친다.


Machine learning is not about finding an answer, but about finding rules that can give a good answer.


https://docs.microsoft.com/ko-kr/azure/machine-learning/how-to-select-algorithms

비지도학습 (Unsupervised learning)

정답이 정해져 있지 않은 비슷한 데이터를 기반으로

데이터의 고유한 구조나 패턴을 익히는 것.


어렵다 쉽게 말해서 비슷한 것끼리 분류할 수 있도록 하는 방법.

군집화( Clustering )

데이터가 어떻게 구성되어있는지 밝히는데 주로 사용하고, 일종의 그룹핑 알고리즘


비지도 학습의 경우

동물 이미지 분륲 작업은 classification과 다른 결과를 발생 할 수도 있다. 왜? 지도 학습과 달리 정답을 알려주지 않기 때문에...

K-Means ++ 클러스터링
K-Means 클러스터링

지도학습 (Supervised learning)

정답이 있는

Input & Output


얼마나 또는 무엇에 대한 결과를 도출...


지도 학습

input(data) output(label)

3 X 5 + 5 = 20

5 X 5 + 5 = 30

9 X 5 + 5 = ?


분류 (Classification)

주어진 데이터를 정해진 카테고리에 따라 분류


예) 스팸, 이미지 분류


Binary Classification


Multi-label Classification

나이브 베이즈(Naive Bayes)

“베이즈 정리”를 활용하여 분류

스무딩(smoothing)

분자 1 분모 N N은 데이터 세트에 등장하는 고유 단어 개수

Bayes' Theorem

P(A|B) = P(B|A)*P(A) / P(B) P(A|B) = P(B|A)*P(A) / P(B|A)*P(A) + P(B|A*)P(A*) B 가 데이터 / A는 분류...

랜덤 포레스트(Random Forest)

의사결정트리의 오버피팅의 오류를 해결하고자 데이터의 일부만을 가지고 예측 트리를 구성함.

배깅(Bagging)

총 학습 데이터 세트에서 임의의 데이터를 선택하여 의사결정 트리를 생성. 그리고, 중복을 허용한다.

Bagging Features

의사결정 나무(Decision Tree)

각 데이터들이 가진 속성들로부터 패턴을 찾아내서 분류 체크리스트에 따라 분류. 체크리스트의 설계가 중요함. 한계 : 테스트 데이터에 오버피팅된다.

재귀적(Recursive) 트리 빌딩

Weighted Information Gain

정보 획득량 (Information Gain)

초기 지니 불순도에서 1차 분류 후 불순도의 합을 뺀 값. 예)0.5 - (0 +0.375 + 0) = 0.125 이것만으로 정보 획득량 설명 부족하다. 그래서 가중치 적용

지니 불순도(Gini Impurity)

총 4개 데이터 세트에서 레이블 A가 3개, B가 1개  1 - (3/4)**2 - (1/4)**2 0에 가까울 수록 불순도가 작다

서포트 벡터 머신 (Support Vector Machine)

결정 경계(Decision Boundary), 즉 분류를 위한 기준 선을 정의하는 모델

커널(Kernel)

직선으로 결정 경계선을 정할 수 없을때

방사 기저 함수 (RBF: Radial Bias Function)

파라미터 gamma

다항식(Polynomial)

2차원을 3차원으로 표현하여 결정 경계선이 아닌 결정 경계면을 찾을 수 있도록 함. 즉, 초평면(hyperplane)의 결정 경계를 구함.

이상치(Outlier)를 얼마나 허용할 것인가

파라미터 C

C값이 클수록 하드마진

작을 수록 소프트 마진


소프트 마진(soft margin)

언더피팅

하드마진(hard margin)

오버피팅

마진(Margin)

최적의 결정 경계(Decision Boundary)

n개의 속성을 가진 데이터에는 최소 n+1개의 서포트 벡터가 존재

로지스틱 회귀 (Logistic Regression)

2진 분류.


1 or 0

true or false

Classification Threshold(임계값)

Log Loss(로그 손실)

Sigmoid Function

Log-Odds

Odds = 사건이 발생할 확률 / 발생하지 않을 확률


Log(Odds)

K-최근접 이웃 (K-Nearest Neighbor)

너무 작은 K : overfitting

너무 큰 K : underfitting


이후 서포트 벡터 머신에서 동일 개념이 나옴.

분류 모델의 성능 평가 지표

F1 Score

조화 평균

2 * ( Precision * Recal / ( Precision + Recall ) )

Precision

눈이 많이 내릴 것이라고 예측한 날 중에 실제로 눈이 많이 내린 날의 비율

Recall

실제로 정답이 True 인 것들 중에서 분류기가 True로 예측한 비율

Accuracy

전체 예측 건수에서 정답을 맞힌 건수의 비율


단점 : True Negative ( 정확도의 역설 )

가중 회귀(Weighted Regression)

거리가 가까울수록 데이터가 더 유사할 것이라고 보고 가중치를 부여.

왜? 더 잘 예측 할 수 있으니...

두 점 사이의 거리 공식(Distance Formula)

해밍 거리 (Hamming Distance)

맨하탄 거리 (Manhattan Distance)

유클리드 거리 (Euclidean Distance)

K 선택

Underfitting

K값이 큰 경우 정밀도가 떨어짐. 분류의 정확도가 떨어짐.

Overfitting

K값이 작아 과하게 학습을 하는 경우 시간 소요가 많음

데이터에 포함될 특성 제한

데이터 보강

예) 이미지 분류 시 회전 또는 찌그러뜨린 사진 입력

적절하게 수집된 데이터인가?

데이터 자세히(평균등)

정규화(Normalization)

목표 : 모든 데이터 포인트가 동일한 정도의 스케일(중용도)롤 반영되도록 해주는 것

Z-점수 정규화(Z-Score Normalization)

( X - 평균 ) / 표준편차


이상치(outlier)를 잘 처리하지만, 정확히 동일한 척도로 정규화 된 데이터를 생성하지는 않는다.

최대-최소 정규화(Min-Max Normalization)

(x - MIN) / (MAX-MIN)


약점 : 이상치(outlier)에 영향이 크다. 그래서 Z-점수 정규화를 보자

회귀 (Regression)

회귀(回歸) : 돌아가다..


회귀 모델링은

예상 값과 실 값 두 값의 오차의 합이 최소가 되도록 만드는 작업.


즉, 실 데이터를 대표할 수 있는 오차가 제일 작은 대표 모델을 찾는 것이다.


다중선형회귀 (Multiple Linear Regression)

데이터를 잘 설명 할수 있는 차원을 찾는 분석 방법.

즉, Y = M1X1 + M2X2 + B 의 함수의 최적의 M과 B를 찾는 것이 목적.

모델의 정확도(Accuracy)

결정계수 R2

잔차 e = 실재값( y ) - 예측값( ŷ )

= 1 - u/v


u : 잔차의 제곱의 평균.

v : 편차의 제곱의 합.


u = ((y - y_predict)**2).sum()

v = ((y - y.mean())**2).sum()


결정계수 R²가 클수록 실제값과 예측값이 유사함을 의미하며, 데이터를 잘 설명한다고 이해하자.

잔차 분석(Analysis)

실제 값 y와 예측된 값 ŷ의 차 e


 e = y - ŷ

데이터 세트 분리하기 (Training & Test)

모든 데이터에 정답이 있으니, 시험 데이터를 예측 모델에 넣어서 실제 정답을 잘 맞추는지 보기 위함.


예) 100명의 키, 몸무게 데이터 중 80%로만 학습데이터(training data)로 나머지 20%는 검증데이터(validation data)로 나누자는 것이다.


어떻게 데이터 세트를 나눌 것인가?


Training / Validation / Test Data


교차 검증 (N-Fold Cross-Validation)

Test Set

Validation Set

Training Set

선형회귀 (Linear Regression)

데이터를 잘 설명 할수 있는 선을 찾는 분석 방법.

즉, y = mx + b 의 최적의(오차가 가장 작은) m과 b를 찾는 것이 목적.


학습률(Learning Rate)

학습률이란

학습륙 값에 따라 적절한 값을 찾을 수도 또는 값을 찾는데 까지 너무 많은 시간적 비용이 필요할 수도 있슴.

고로, 적절한 학습률(learning rate)이 필요하다.


경사하강법(Gradient Descent)

기울기(경사)가 최소인 값을 찾는 방법


수렴(Convergence)

결국 수렴값이 우리가 찾는 결과다.


손실(Loss)

y = mx + b 의 m을 변경하면서 손실이 최소인 m을 찾는다.





결정 계수( coefficient of determination )

1−MSE/VAR으로 구하는 결정 계수

후버 손실( Huber loss )

평균 절대 오차( Mean Absolute Error )

평균 제곱 오차( Mean Squared Error )