Distance ?
• 거리(距離:Distance)는 어떤 사물이나 장소가 공간적으로 얼마나 멀리 떨어져
있는가를 수치로 나타낸 것
• 비슷한 개념으로 유사도/비유사도 존재 (가까우면 비슷하다 멀면 다르다)
• 머신러닝에서 거리 개념은 매우 다양/유용하게 활용 (ex. SVM에서 마진의 넓
이?/knn에서 가장 근처에 있는 데이터들?)

대표적인 거리들
• 유클리디안 거리(Euclidean Distance : L2 Norm) : 두 점간 차이 제곱하여 모두 더한 값
• 맨하탄 거리 (L1 Norm) : 두 점간 차이의 절대값을 합한 값 (격자 모양의 거리)
• P차 Norm(민코스키 거리) : P = 1이면 맨하탄, 2이면 유클리디안, 무한대일 경우
Chebyshev’s Distance , 일반화된 개념의 수학적 거리 정의임
• 내적 : 벡터끼리 서로 설명하는 수준 (유사도) (밑에 코사인 거리와 유사)
• 코사인 거리(유사도) : 1- 두 벡터의 내적을 각 벡터 크기로 나눈값 (각이 작을수록 값이 작
아짐, 유사함)
• 마할라노비스 거리 : 다변량 통계분포의 특성(관계)를 반영한 거리, 유클리디안 거리를 공
분산행렬로 나눠주는 연산
• 상관관계 거리 : 피어슨 상관계수 응용, 관계가 1 혹은 -1에 가까워질 수록 거리가 작아짐
• 등등등 (데이터간의 유사성/비유사성을 나타내는 모든 것이 거리로 표현 가능)


Euclidean Distance (유클리디안 거리)
• 유클리디안 거리 (L2 Norm)
• 일반적인 다차원 공간에서 두 점 사이의 직선 거리
• 중학교 시절 배운 피타고라스 정리를 기억해보자
• 가장 많이 활용되는 거리 개념, 하지만 변수간의 관계를 고려하지는 못함




Mahalanobis Distance (마할라노비스 거리)
• 유클리디안 거리를 Covariance Matrix로 나눠준 형태
• 각 변수의 분산으로 나누어 주기에 scale-free(변수별 표준화 됨)
• 변수간의 상관관계 형태를 반영한 거리의 개념으로 다양한 문제에 활용 됨


• 다변량 통계학과 머신러닝을 2~3단계 level up 시켜줄 수 있는 Key Algorithm!!



유클리디안 VS 마할라노비스
Center
• 유클리디안 거리는 4개의 점 모두 중심과 거리가 같다
• 어떤 점이 상대적으로 이상해(멀어) 보이는지?

차원의 증가와 거리의 의미
• 거리의 개념은 (특히 유클리디안 거리)는 고차원으로 갈수록 그 효용성이 감소
• 변수의 특징들이 너무 다양하고 많아지는데 반면 단순 크기의 차이(difference)
로는 부족
• 100개의 변수 중 유의(중요)한 변수는 몇 개? 그 중요도를 어떻게 분석에 반영
할 것인가가 중요한 이슈임
• PCA를 통한 거리 계산, 주요 변수 추출, Weight를 부여한 거리의 계산 등 필요
* 각 공간내의 데이터의 개수가 차원 증가로 인해 어떻게 변화하는가 ? (차원의 저주)


Clustering : K-means Clustering Algorithm

Clustering Analysis
Clustering : 관측치(observations)들을 특정 그룹으로 할당(assign)하는 방법론

Clustering Algorithm의 핵심
• 같은 그룹의 데이터는 최대한 유사하게, 다른 그룹간의 데이터와는 최대한 이질적으로 할당하는 것이 good

Clustering을 왜 할까 ?
• 데이터의 패턴을 이해하기 위해 수 많은 데이터들을 특정 그룹으로 요약함
• 데이터를 줄이는 측면에서 feature selection은 열(column)관점의 요약/ clustering은 행(row)관점의 요약
• 데이터의 분포를 다루는 좋은 기반 기술로써 활용 됨 (다른 모델링과 융합가능)


Concept of Clustering Algorithm
• Clustering은 대표적인 비교사학습 (unsupervised learning) 기법 (Y가 없음)
• Distance metrics (ex. Euclidean, Manhattan, correlation, or Mahalanobis
distance) 를 통해 관측치간의 유사성을 연산하여 그룹화
• Hierarchical clustering, k-means algorithm, Self Organizing Map …


계층적 군집화 (Hierarchical Clustering)
• Hierarchical Clustering: 거리 기반의 군집화 알고리즘으로써 비슷한 개체
끼리 계층적으로 그룹화하기 시작하여 최종적으로 한 개의 군집으로 만
드는 알고리즘
• 시각적으로 이해하기 편리함
• 군집수를 사전에 정할 필요가 없음
• 모든 개체들 간(혹은 개체-군집, 군집-군집) 거리가 계산되어야 함 (복잡
도 증가)
• 군집 간 거리계산의 다양한 방법
• Single Linkage: minimum distance
• Complete Linkage: maximum distance
• Average Linkag


K-means Clustering
• 좋은 클러스터링은 ? 같은 그룹끼리는 거리의 합이 최소화!!
• 이것도 결국 ? 또 최적화 문제 !!
• K개의 평균점을 처음 랜덤으로 구하고 각 평균점과 데이터들간의 거리
j 번째 그룹의 평균값)의 합을 최소화 하는 것
• 저번에 배운 미분, 수리최적화, gradient descent 등의 방식으로 풀긴 어
렵다! > 반복적으로 기대값이 최대가 되도록 하는 탐색(search)방법이 적
용되어야 함

Self-Organizing Map (자기조직화 지도)
• 클러스터링을 위한 인공신경망 (인공신경망중 가장 단순한 형태 중 하나)
• 입력 데이터 > 입력 레이어 > 경쟁 레이어 > 출력으로 구성
• 데이터의 개별 패턴에 상응하는 격자(grid point)에 관측치들을 재배열
• 고차원 데이터에 차원축소 기능과 군집화 동시 수행 (row와 column관점
둘 다 줄임 > 이미지 처리에 높은 빈도로 활용)
• 우선 가중치 행렬(W)를 초기화 함
• Competitive learning : 각 관측치별로 grip point(뉴런이라고 부른다)와의
거리를 산출한 후, 거리값이 가장 작은 뉴런 선택
• 선택된 뉴런과 이웃 뉴런 (격자로 치면 옆에 있는 애들)과의 가중치 (연결
강도) 수정 (수정하는 방법은 gradient descent와 유사, 과거의 w와 실제
데이터와의 차이가 크면 많이 움직이고 작으면 적게!)
• 이러한 연산을 반복하다보면 특정 그리드에 데이터가 몰리게 된다 (군집
효과)
• 그리드 크기는 사용자가 정의해줘야 함

군집화의 성능 평가
• 클러스터링의 이슈 :
- 어떤 거리를 써야 최적일까 ?
- 데이터에 내재된 군집의 개수는 몇 개일까 ?
- 클러스터링이 잘 되었는지 어떻게 평가할까 ?
• 반복실험과 시뮬레이션을 통한 검증을 주로 활용
• Ex. 실루엣 통계량을 통한 성능 평가 (-1 <= silhouette <= 1)


요약 및 의의
• Distance : 데이터간의 비유사도 (거리가 멀수록 이질적, 가까울수록 동질적)
- 마찬가지로 비유사도, 특이한 정도, 통계적 유의도 역시 거리로 표현 가능
• 여러가지 유형의 거리 척도 존재
- Euclidean, Manhattan, Mahalanobis, Minkowski…
- 변수가 많을 경우, 주요 변수의 weight를 어떻게 줄까?
• Clustering : 거리가 유사한 관측치끼리 모아주는 방법
- 같은 그룹내는 최대한 유사하게 다른 그룹과는 최대한 이질적으로…
• K-means Clustering Algorithm
• Self Organizing Map
• 데이터의 row-wise 요약, 다양한 분석의 전처리 기법으로 활용되기도…

'Major > Data Analysis' 카테고리의 다른 글

Modeling (Artificial Neural Network) & Deep Learning-2  (0) 2024.06.17
Modeling (Artificial Neural Network) & Deep Learning-1  (0) 2024.06.17
SVM(support vector machine)  (0) 2024.06.17
Decision Tree(의사결정나무)  (0) 2024.06.17
KNN  (0) 2024.06.17

최적화의 관점에서 Neural Net 보기


예측/분류모델로서의 신경망
• 예측모델의 Loss Function : 잔차(residual)
예측값과 실제값의 차이(잔차)가 얼마나 작은가
• 분류모델의 Loss Function : Cross-entropy
실제 레이블과 얼마나 일치하는가 작으면 작을수록 분류 good

위의 두 식은 대표적인 개념식이고 얼마든지 응용 가능 !!

ANN (Artificial Neural Network) 2

기존 인공신경망의 한계
• 기존 뉴럴넷의 한계 > 이미지, 텍스트, 복잡한 음성 신호 등을 처리하는
데에 있어 1개의 hidden layer로는 표현이 어려움
• 비선형 빅데이터의 복잡한 결합관계(ex. 이미지 데이터)를 표현하는 데
에 한계점 존재
• 더 날것(raw)의 데이터를 바로 분석하고자 하는 욕망

만약, layer를 (더 깊게) 늘린다면 ?
• 고차원 추상화 (High Level Abstraction) 작업 가능
• 앞부분 Layer > 변수간 결합 및 추상화 작업
• 뒷부분 Layer > 데이터의 분류(classification)


ANN에서 히든 레이어가 여러개 된게 딥러닝이다

이미지 데이터
Features of Image Data
• 각각의 픽셀 = 하나의 변수
• 학습할 파라미터의 수 多
• 모델의 complexity 증가, overfitting 가능성 증가

Spatially-Local Correalatio
-인접 픽셀 간 높은 상관관계
Invariant Feature
-부분적 특성은 고정도니 위치에 등장하지 않음
Convolution Calculation
-데이터가 너무 크니까 필터로 필요한 부분만 focusing
-x(=input data)*w(=filter=kernel)=feature map

pooling layer
• Feature map의 크기를 줄임 (down sampling, subsampling)
• MAX, MIN, AVERAGE, SUM….
• 노이즈 감소, 속도 증가, 영상의 분별력 좋아짐
• Pooling size: pooling 연산을 할 영역의 크기 (가로×세로)
• Stride: 한번에 얼마 만큼 이동할지 결정 (주로 pooling size와 같게 설정)



Fully Connected Layer




머신러닝 vs 딥러닝
-feature extration을 사람이 하냐 딥러닝이 하냐에 따라 나뉨


메인 딥러닝(뉴럴넷) 알고리즘들
• CNN (Convolution Neural Network) 계통
- 이미지 데이터의 분석
- 이미지 분류, labeling, object detection 등의 베이스로 활용
• RNN(Recurrent Neural Network) 계통
- 시계열 데이터(시간에 따른 값의 변화)의 처리 및 분석
- LSTM 알고리즘을 주로 활용
• Unsupervised NN 계통
- 데이터의 전처리(주요 성분 추출, 군집화, denoising 등)를 위해 활용
- Autoencoder (Feature Extraction)
- Self Oraganizing Map (클러스터링)
• 새로운 데이터를 추론 및 생성 (Generative Adversarial Network : GAN)
• 강화학습 기술과 병행 활용 (DQN : Deep Q-Network)
• 공통점 : 분석에 활용되는 X들의 조합을 자체적으로 수행하여, 자연의
패턴을 학습한다는 것!
• 서로 결합하여 활용되는 경우도 많음 (ex. 시간에 따른 이미지 변화)

'Major > Data Analysis' 카테고리의 다른 글

Distance & Unsupervised Learning Algorithm  (0) 2024.06.17
Modeling (Artificial Neural Network) & Deep Learning-1  (0) 2024.06.17
SVM(support vector machine)  (0) 2024.06.17
Decision Tree(의사결정나무)  (0) 2024.06.17
KNN  (0) 2024.06.17

ANN(artificial neural network)

퍼센트론

신경망/딥러닝 알고리즘의 기원
• 다수의 신호(x)를 받아 하나의 신호(y) 출력
• 입력층과 출력층으로 구성
• 매우 단순하여 실제 문제에 적용되지는 않음 (하지만 개념적으로 중요)

퍼셉트론의 동작원리 ?
• 입력층의 i번째 노드는 변수의 요소 xi를 의미
• 각 변수와 weight를 곱한 다음 다 더함 (weighted sum), 그 다음 활성함수
(activation function) 𝜏를 적용함
• 𝜏라는 계단함수(step function)를 통해 최종 출력(y)는 +1 or -1


퍼셉트론의 W(가중치)는 어떻게 구할까 ?
• OR 문제 (선형 분류가 가능한 경우)
• 퍼셉트론을 활용하여 직선을 만들고 공간을 -1, 1의 영역으로 분할
• 의사결정나무의 목적함수-엔트로피의 최소화 SVM의 목적함수-마진 최대화
• 퍼셉트론 학습(W의 결정)의 목적함수 : Loss Function (손실함수)
• 손실 ? : 분류가 잘못된 정도, 손실이 0 이라는 이야기는 완벽히 분류됨을
의미 ! > 작을수록 좋다! (minimum 문제)
• 즉, 손실함수가 최소가 되는 W를 찾으면 된다.
• 최소가 되는 W는 어떻게 찾지 ? “수치최적화 기법”

수치최적화 기법
• 어떤 함수 f(x)에서 x* 가 최소점이 되기 위해선, x* 지점에서 f(x)의 기울기,
즉, df/dx(함수의 미분값)이 0이라는 조건을 만족해야함 (J(W) = 0, 에러의 변
화가 0, 즉 수렴)
• 미분이 쉬운 문제면 ok, 미분이 불가능 하면 어떻게?
• 시행착오(trial and error)를 반복하여 기울기가 0으로 가는 조건 찾는 법 >
수치최적화 (numerical optimization)
• Newton-Raphson, Gradient Descent 방법 등 (둘다 미분 원리 이용)
• 시작은 항상 random W에서부터
• Gradient Descent는 가장 가파른 방향, 즉, 위치 차(gradient)가 가장 큰 방
향을 골라서 가는 것! > 그러다 보면 언젠간 기울기가 0인 지점에 도달하지않을까
풀이과정-ppt
• 에러가 많이 변할 때는 크게 W를 바꾸고 변화 작을 때는 적게 바꾸고…
• 느낌상, 이렇게만 하면 W는 완벽해질 것 같다…(하지만 현실은 다름 >
update(Backpropagation) 필요)


퍼셉트론의 한계 (AND/OR/XOR)
• XOR문제에 대해서는 단일 선형 분류기로 해결 불가능
• 하지만, 은닉층(Hidden Layer)를 쓴다면 ? > 두개의 선으로 공간을 나누는 효과 발생 !
• 선이 두 개라면 나눌 수 있을 것 같다 > Multi-layer Perceptron
• 왠지, 곡선을 쓰면 나눌 수 있을 것 같다 > Non-linear Activation Function

Multi-layer Perceptron
• 선형분류기(퍼셉트론) 2개를 은닉층을 활용하여 결합할 수 있다
- 새로운 특징 공간 생성 (ex. 1번보단 작고 2번보단 크면 class 1이다)
- 특징 공간에 대해 선형 분류 수행


Activation Function
• 각 layer끼리 정보를 주고 받을 때, 그냥 주지 않는다 (why!!)
- 보다 자연스럽게 자연의 성질을 모델이 받아들이기 위해서 (자연의 비선형성)
• 이때 정보를 변형시키는 함수가 바로 Activation Function(활성화 함수)
• 공간을 선형(step function)/비선형(sigmoid, hyperbolic tangent…)으로
분할 가능 (뭔가 SVM의 커널함수와 역할이 비슷하지 않나?)

ANN등장
중요한 것은, 함수 간 전달시에 출력에 변환을 준다는 것
뉴럴 네트워크 모델




'Major > Data Analysis' 카테고리의 다른 글

Distance & Unsupervised Learning Algorithm  (0) 2024.06.17
Modeling (Artificial Neural Network) & Deep Learning-2  (0) 2024.06.17
SVM(support vector machine)  (0) 2024.06.17
Decision Tree(의사결정나무)  (0) 2024.06.17
KNN  (0) 2024.06.17

-학습 데이터 (Xi, Yi)가 있을 때(i = 1,2,3,…N), 𝑌𝑖 ∈ −1, 1 (두 개의 클래스를 의미),
f(x)≥ 0, 𝑌𝑖 = +1
f(x)≤ 0, 𝑌𝑖 = −1
- Ex. Yi * f(Xi) > 0 라는 것은 제대로 분류된 형태 (같은 부호끼리 곱하면
양수인 경우니까)


선형분할
f(x)=W(기울기)TX+b
-선형분할은 직선으로 나누는 것 (2차원이건 3차원이건 그 이상이건 상관 없음)
-b(bias)는 Y 절편을 의미
-W는 직선의 기울기
-초평면:4차원이상



어떤 선이 좋은 판별선인가?
-딱 절반이면서
-여유로워야 한다->미래 대응 가능

최적의 분할 초평면은 ? (Optimal Separating Hyperplane)
• 최적 분할 초평면
✓ Margin을 최대화 시키는 초평면이 최적
✓ “Learning Theory”에 따르면, Margin을 최대화 시키는 초평면이 일반화 오류가 가장
낮게 나타남
✓ Margin: 초평면과 가장 근접한 각 클래스 관측치와의 거리의 합

max Margin = max 2/llwll = min llwll
• ||W||가 square root를 포함해서 미분이 어려움
• 분모와 분자를 바꿔서 Max문제를 Min 문제로 바꾸면 계산이 간편 !
• Norm을 그대로 쓰는것보다 제곱을 시켜서 표현(계산상 편이(루트 제거)!)
위에 불편한 점을 고려하여->min llwll = min llwll** =min 1/2llwll**



-Convex Optimization 이라는 문제 (최적해가 1개)
• Quadratic(2차) 목적함수와 선형 제약조건(+로 변수 조합)이 존재
• w, b는 의사결정변수, 결국 , w와b를 조절하여 목적함수를 최소화 !
• 제약조건의 의미 : y의 실제 레이블과 예측레이블이 곱이 1보단 커야함! (학습데이터를 완벽하게 나눈다는 조건!!!!)
• 중요한 포인트 : 목적함수는 마진을 늘리려 하고 제약조건은 마진을 줄이려고 함 (equilibrium)


-w와 b 가 결정변수
• 학습데이터가 선형식으로 완전히 나눌 수 있을 경우에만 해가 존재 (linearly
separable)
• 제약식이 있는 식에서 Lagrange Multiplier를 활용 다음과 같이 변환 가능


• 라그랑쥬 primal (min)과 dual (max)을 순차적으로 풀어서(α) 최종적으로는
W(직선의 기울기)를 결정 (어떻게? 각각 다 미분해서) !!=쌍대 문제



결국, 다음과 같은 식으로 정리됨 (판별식)
• 중요한 것은 α와 b와 xi(학습에 쓸 데이터)를 결정짓게 되면 자연스럽게 W(기울기)가 결정된다는 사실
• 이러한 형태를 선형 SVM(linear SVM)이라고 부름
• 저 식에 미래의 관측치(x)를 넣어서 1이면 class 1, -1이면 class -1

SVM (지지벡터머신)의 의미 정리
Support  Vectors (마지노선)
• 모든 점을 활용하여 Hyper-plane을 얻는 것이 아니라 Support Vector만을
활용하여 얻음 (Sparse Representation(kNN 처럼))

만약에 선형으로 완벽히 나눠지지 않는 데이터라면?
->여유를 주자=soft margin
• Margin을 무조건 최대화 시키는 것보다는 (error + λ) / Margin을 최소화 시
키는 것은 어떨까? 라는 아이디어 (여기서 λ는 얼마나 에러를 허용할 지에 대
한 값)
• ξj는 허용 에러의 크기를 의미


• C : trade-off 파라미터, 값이 크면 클수록 error를 많이 허용하게 되어 overfit
문제(too soft margin)가, 작으면 작을수록 hard margin이 됨 (underfit)
• C가 작을수록 원래 최적화 식이 중요해지므로, 마진이 커짐

non-linear svm
• 커널(kernel) 트릭(K)을 통해 변환 가능 ! 직선 > 곡선, 혹은 다양한 형태로
• 보다 유연하게 데이터를 분류 가능함
• 저차원 공간에서 분리가 안되는 데이터를 고차원으로 매핑하려 분류 !

커널의 종류
-선형, 다항, 시그모이드, 가우시안 타입의 커널이 일반적으로 활용 (선형은 우
리가 배운것 !)
• 비선형 타입의 커널 활용으로 데이터의 분리가 보다 유연(Decision
boundary is flexible)


요약 및 의의
• SVM 갑자기 너무 어려운데 우리 왜 배웠을까 ?
- 머신러닝에서 활용하는 최적화의 기초 원리를 이해하기 위해
- 수학에 대한 면역력 확보
• SVM은 선을 그어 분류하는 것, 그렇기때문에 선을 구성하는 요소인 기울기
와 절편을 구해야 함
• 목적함수의 변경을 통해 모델을 업그레이드 할 수 있음
• 하이퍼파라미터 존재 (Kernel, Cost, ξ , …)

Decision Tree(의사결정나무)

알고리즘
-데이터를 2개 혹은 그 이상의 부분 집합으로 분할
-더 작은 부분집합으로 분할과정 반복
-분할과정 반복 중단, 나무의 확장 중단

왜 자꾸 나눌가?/무슨 기준으로 나눌까?/언제까지 나눌까?

basic idea
-데이터 셋의 반복적인 이진 분할
-목적: 최대한 분할된 공간 내의 관측치들이 순수해 지도록
-순수하다의 의미: 가장 비슷한 개체들끼리 모여있도록
-각 최종 노드에 속한 관측치들은 서로 중복이 없음

tree의 알고리즘 미리 맛보기
decision tree의 주요 이슈 2가지..
-어디를 어떻게 분할할 것인가?(어떤 변수? 어떤 값)
-나무를 얼마나 깊게 전개할 것인가(가지치기?)

classification tree와 regression tree
-classification tree : 순수도 측정
-regression tree:sum of square
-분할 시, 같은 공간에 있는 관측치들끼리는 최대한 비슷하도록
-information gain : 나누기 전과 후의 분할 효과 차이->이곳을 최대화 하는 것이 바로 tree의 핵심
-binary partitioning algorithm : 탐욕 탐색의 일환으로, 모든 변수로 모든 지점을 다 나눠보는 컨셉

Pruning(가지치기:어디까지 나무를 전개할까?)
-너무 큰 나무->training 데이터에는 잘 맞으나 testing에는 안 맞음(overfitting)
-너무 작은 나무(단순한 나무)-> 데이터 특직을 표현하기에 충분하지 않음
-일반적으로 test error가 가장 작은 수준으 ㅣ깊이까지 가지를 쳐냄
-에러는 최대한 작게 tree는 최대한 단순하게
-cost function(복잡도+에러)을 최소화하는 분기/depth 설정
-너무 나누면 overfiting

Decision Tree의 장단점
장점
-Classification/Regression 둘 다 활용 가능
- “해석력” 제공 : If~then 룰의 제공을 통해 현상에 대한 설명력 최대화 (실무적 활용도 매우 높음)
-Feature Selection(변수 선택) 효과 : 중요한 변수 알려줌
-좋은 성능과 향후 Ensemble Tree로써 매우 훌륭한 성능 보여줌
단점
-변수가 너무 많으면 알고리즘이 오래걸림
-변수간 Screening 효과 존재 (변수 선택으로 인한 다른 주요정보 생략 위험 존재)
-직선 분할과 평균 추정의 한계점

k-nearest neighbor(classification)
k=가장 가까운 k개의 관측치
-예측을 원하는 관측치의 주변 N개의 데이터 (근접이웃)를 골라서,
-주변 대세가 어느 부분인지를 확인(다수결)

15,21,30에 랜덤으로 한 점을 찍는다면
k=1: new=15
k=3: new=(15+21+30)/3=22


최적의 k는 어떻게 찾아야 할까?
k의 결정
-k가 너무 큰 경우, knn모델이 지나치네 일반화 됨->specificate
-k가 너무 작은 경우,knn모델의 예측 결과의 분산이 큼
-주로 이것저것 해보고 error가 가장 작은 k 설정

knn의 장담점
장점
-classification/regression 둘 다 활용 가능
-학습데이터의 양이 많은 경우에 미래 데이터 분류에 있어서 효과적임(양이 많으면 학습은 오래 걸림)
-어지간하면 잘 맞는 장점

단점
-k(인접한 이웃의 개수)를 결정해야 함
-어떤 거리 척도를 사용할 것인지 결정해야 함
-관측치의 개수가 많은 경우 굉장히 오래 걸릴 수 있음

Main Steps of Data Analytics
EDA
(탐색적 자료분석)
데이터 전처리
모델링
모델 검증
모델 적용
Prediction
Decision

모델이 쓸 만한지 어떻게 검증(점수를 줄까?)할까?

validation
-절대적인 모델의 좋고 나쁨의 기준은 없다
-대신, 같은 데이터에 대한 상대적인 좋고 나쁨을 평가하기 위함
-정확도의 기준은 분야별로 다를 수 있다(설명이 중요한 분야vs예측이 중요한 분야)
-분류:confusion matrix 교차테이블을 기반으로 정확도 계산
-예측: 예측 오차(y-f(x))를 기반으로 정확도 계산
-정확도는 높으면 좋고 오류는 낮을수록 좋다
-강건하다=모델의 컨디션이나 데이터의 변화에도 모델이 일관적인 성능을 낸다

confusion matrix
-1을 1로 0을 0으로 얼마나 잘 예측하였는가를 보여주는 교차표

대표적인 정확도 지표
-precision: tp/(tp+fp)
-recall(sensitivity): tp/(tp+fn)
-correctness:(tp+tn)/(tp+fn+fp+tn)

대표적인 오류 지표
-1-correctness
-alpha(fp)
-beta(fn)

정분류율(correctness)는 1에 가까울수록 좋다. 근데 만약 0:1의 비율이 99:1이라면 어떻가? sensitivity를 그래서 굉장히 실무에서 많이 활용함(실무에서는 recall에 민감하다)

분류문제에서는…
• 민감도(Sensitivity) : 실제 1중에서 1이라 잘 예측한 것의 비율
• 특이도 : 실제 0중에서 0이라고 잘 예측한 것의 비율
• Precision : 모델이 1이라고 예측한 것들 중에서 실제 1일 비율
• Recall : 민감도와 동일, hit ratio 라고도 함 (적중율 ?)
통계적 가설검정의 세계에서는,
• Alpha (1종 오류) : 0을 1이라고 하는 오류 (확률)
• Beta (2종 오류) : 1을 0이라고 하는 오류 (확률)
모델의 성과 측정을 위한 요약은…
• F1 Score : Precision과 Recall 의 조화평균
• ROC/LIFT/alpha-beta graph : 민감도 vs 특이도를 x,y에 넣고 그린 그림(시각적 요약)
• AUC(Area Under Curve) : 그래프 아래의 면적을 계산하여 비교함


Validation (예측) : 예측 오차
• 실제 y와 예측된 y (f(x) 혹은 𝑦ො)의 값의 절대적 차이(거리)
대표적인 정확도 지표 :
• R2 = 모델의 설명력
대표적인 오류 지표 :
• MSE (Mean Squared Error)
• MAE (Mean Absolute Error)
• MAPE (Mean Absolute Percentage Error)
• ….
사실 오류에 대한 지표는 정의하기 나름(대부분 대체 가능)이다. 가장 중요한 것은 “현실에 활용했을 때 의미 있는 지표를 만들 수 있는가"이다.


Unsupervised Learning에서의 정확도
• 답이 없는 문제이기 때문에 주로 분석가가 정의 해준다.
• 어떻게 ? 맘대로…
• Ex. 군집분석의 경우 : 각 집단별 분산(거리) 평균값이 얼마나 큰가
- Silhouette 통계량, Gap 통계량
- Within 거리 vs Between 거리
• Ex. 연관성탐색의 경우 : 확률과 확률 간 비교 (통계적 검증)를 통해
룰이 얼마나 유의한 가를 검증
- LIFT/Confidence/Support
- 확률비 분포 활용 (지금은 그냥 넘어가자… 여기서 중요도 대비
굉장히 어려움…)

'Major > Data Analysis' 카테고리의 다른 글

Decision Tree(의사결정나무)  (0) 2024.06.17
KNN  (0) 2024.06.17
데이터기반의 수요예측 모델링과 의사결정 최적화  (2) 2024.06.17
R을 활용한 데이터 분석  (0) 2024.05.13
머신러닝의 기초  (0) 2024.04.20

공급망의 최적화 문제:수요와 공급을 일치시키는 것이 어려운 이유
-수요>예측이 제대로 안됨(변동성이 심함)
-공급>변동성에 대해 유연하게 대응이 어려움
->의사결정 최적화

수요 공급 프로세스->ppt보기

수요란
독립수요:예측의 대상
-완제품이나 예비부품에 대한 수요와 같이 기업 외부의 시장조건에 의해 결정되는 수요
-특정 시계열 패턴을 가지고 계속적으로 발생, 따라서 수요예측이 필요
-독립 수요 품목의 재고 관리에서는 보충의 개념이 사용됨. 즉, 재고가 줄어들면 고객의 수요에 대비하여 다시 재고를 보충하는 개념

종속수요:공급 계획의 대상
-최종제품의 생산에 소요되는 각종 원자재, 부품, 구성품 등과 같이 모품목의 수요에 종속되어 있는 품목의 수요
-독립수요품목의 계획에 따라 결정되며, 산발적이고 일괄적으로 발생
-종속수요품목의 재고관리에는 소요의 개념이 사용됨
-종속수요품목의 재고관리:mrp시스템
->즉, 독립수요의 수요예측에 따라 종속수요는 결정되며, 종속수요의 효과적 관리가 공급망 최적화에 실제적으로 기여

주문량과 비용 간에 관계
-주문비용/재고비용의 최소점은 정확한 수요예측이 있다면 최적해 산출가능
-하지만 수요예측은 정확하지 않으며 예측의 불확실성에 따라 안전재고를 확보해야 함
-즉, 경제적 주문량 관점에서 예측오차가 작은 수요예측은 불필요한 주문과 재고유지비를 줄여줌


수요 예측
예측이 뭘까?
-과거의 데이터를 통해 미래에 대한 예측
-자기상관/선후상관관계를 갖는 데이터의 변수들을 활용하여 모델링 수행
-단변량 시계열/다변량 모델/사회과학적 수리모형 등 다양한 부선 기술 활용


예측의 핵심->예측은 의미있는 패턴을 무의미하게 만드는 것
시계열 모델링->시간을 활용해서 무의미하게 만들기
시계열의 구성요소:트렌드+계절성+...+렌덤에러

original 시계열 -w1*트렌드-w2*계절성=랜덤에러 즉, 무의미한 패턴(Additive)
혹은, original 시계열/(w1*트렌드*w2*계절성)=렌덤에러로 볼수도 있디 않을까?(multiplicative)

시계열분석에서 가장 유명한 ARIMA 역시 시계열의 구성요소들을 분석 대상 시계열에서 하나하나 잘 빼주는 것

Prophet Model
-가법모델
-트렌드,시간별, 계절성, 휴일, 기념일 등의 변화패턴을 반영한 시계열 모델
-상품 내부특성 데이터를 수집한 뒤, prophet모델링을 이용하여 수요예측
-인간의 사전지식을 적극 활용하기에 적합하여 다른 시계열 예측접근법이 계절성을 반영하려면 6개월 이상의 장기 데이터가 필요하지만 필요없다


수리모델링->수식을 활용해서 무의미하게 만들기
Bass model
-신제품의 도입->얼리어답터 등장->따라쟁이들의 속축->무관심->망함
-일반적인 추세 예측보다는 PLC예측에 적합
-launcing을 반복적으로 수행하는 형태의 신제품 PCL 예측에 적합
-전체 판매가능 수량 p,q를 찾아내는 것이 현실적으로 매우 어려워 수표예측문제에 메인으로 활용되기에는 한계점 존재

Lotka-volterra model
-포식자와 피식자 간의 관계를 수량화한 모델로써 경쟁상황하의 수요예측모델로써 활용성 존재
-신기술의 경우, 기존 기술을 대체하며 시장을 지배
-경쟁상황 수요 모델링에 적절한 수리모델
-해석력 측면에서 강하다는 장점 존재
-포식/피식관계를 표현하는 비선형 term을 정확히 알기 어려움
-최근, 미분방정식과 데이터 기반 모델의 융합을 통해 다양한 사회과학 문제의 외샵/재현성/샘플수 한계 극복등 활용도가 높아지고 있음


다변량 머신러닝->뭐든지 활용해서 무의미하게 만들기
Multivariate PLC 예측
-시계열 패턴과 제품의 특성정보/고객 특성 등을 동시에 고려하여 레퍼런스 패턴에서 유사한 형태 추론
-PLC를 예측하여 제품주기 기반의 수요량 산정
-정보가 많으면 전확한 예측 가능
-새로운 PLM에 대응이 어렵다는 한계
-향후, MIxture 모델로 개선 가능

예측을 기반한 패턴의 모음
-유통 및 제품 속성의 데이터 수집
-유사 패턴끼리 군집화 수행->pcl예측 및 시계열 예측 수행하여 오차를 줄이는 방법
-Launcing&shutdown 주기를 반복하는 유형의 제품군 수용예측에 적합
-아주 새로운 유형의 패턱 예측에 상대적으로 취약/해석력 good

Mixture models
-실시간 오차 추적을 통해, 여러 모델의 예측 y에 대한 영향력 갱신
-오차가 적을수록 특정 모델에 대한 신뢰도 상승->weight 증가
-베이지안 업데이트 기법을 통한 모델 여향력 갱신
-여러가지 좋은 모델들을 하나로 합칠 수 있는 방법


수요예측 주요 이슈 1.
예측성: 될성부른 나무를 찾자

모든 단위 시계열을 예측할 수 있을까
-100가지 종류의 제품이 있다. 100개 모두 다 잘 예측할 수 있을까 ?
-내년 연봉은 왠지 예측할 수 있을 것 같다. 20년 후의 연봉도 똑같이 예측할 수 있을까?
- 예측관점에서 가장 중요한 것은 1) 무얼 예측할 수 있는가 ? 2) 어느 정도의 미래(t+k)까지 예측할 수 있는가?
- 사전에 미리 예측 성능을 어느정도 가늠해 볼 수 있다는 것은 향후 수요예측 범위의 설정과 수요에 대한 대응에 있어서 매우 효율적!
- Ex. 주식시장에 1000개의 종목이 있다. 이왕이면 오를 것 같은, 그리고 과거 데이터를 통해 예측오차가 작은(불확실성이 작은) 종목을 골라야 할 것이다. 그리고 해당 예측이 대략 어느 시점까지 믿을 만 한지 가늠할 수 있다면 우린 이미 부자…
- 예측의 본질은 결국 모델의 종류/선택 보다는 해당 개체가 예측가능한 것(forecastable)인가? 가 가장 중요!!
-내가 모델링 하는 대상이 예측가능한 문제인지부터 살펴보자 !!!

어떤 변수를/어떤 시점까지 예측할 수 있을까?
다변량 시계열의 EDA 방법
-선후 상관관계/인과관계를 갖는 시계열 패턴의 통계적 유의성을 테스트하는 방법
-정보간의 지연(lag)을 고려, 변수간 메커니즘에 대해 탐색
-모델의 유의성(ex. R2) 및 적합도(fitness)를 활용하여 인과관계 파악 응용 가능
-전 범위/전 지표에 걸쳐 핵심 선후관계를 찾는 것을 주요 목표로 설정 > 향후 모델링 응용

유난히 예측이 어려운 문제들
-시간의 연속성이 없고 패턴이 간헐적(intermittent)인 경우 f(x)를 추론하기 매우 어려움
-데이터 대부분 무의미한 0으로 가득찬 경우(zero-inflated), 아무리 노력해도 f(x) =0 을 이길수가 없음
-적절한 관점에서의 데이터 변환/regression 문제에서 시간에 따른 분류/이상감지 문제로의 변환이 필요!

수요예측 주요 이슈 2.
Demand-Supply Optimization : 수요는 예측 보다는 불확실에 대한 대응의 영역
Ex. 수요예측과 배송기사 확보 문제

Summary & Further Studies for Practical Demand Forecasting
Summary
• 다양한 예측방법론들이 활용되고 있으며 가장 대표적으로 장/단기 예측에 최적화 된 방법론이 존재(PLC/단기 패턴 예측)
• 수요예측은 매우 어려운 문제이며 하나의 optimal 모델로 해결할 수 있는 주제가 아니다 (캠페인/플랫폼의 필요성)
• 모든 개체에 대한 예측 성능의 일관적인 확보는 본질적으로 불가능함
• Predictability에 대한 레포팅이 무엇보다 중요! (어떤 변수에 대해 어느정도 기간을 예측할 것인가/ 각제품별 수요의 불확실성은 얼마이며 이에 어떻게 대응할 것인가)
Further Study
• 모델링 관점에서 다양한 정보를 실시간으로 업데이트하며 조합(mixture)하는 방법론의 중요성 대두(ex. 수리모델과의 결합/Bayesian update)
• 각 비즈니스별 수요-공급 문제의 정의 및 최적화 formulation 확대

'Major > Data Analysis' 카테고리의 다른 글

Decision Tree(의사결정나무)  (0) 2024.06.17
KNN  (0) 2024.06.17
Modeling & Validation & Visualization  (1) 2024.06.17
R을 활용한 데이터 분석  (0) 2024.05.13
머신러닝의 기초  (0) 2024.04.20

+ Recent posts