Data Science 18

오버피팅(overfitting)과 언더피팅(underfitting)이 뭐길래?

1.과소적합(underfitting)과 과대적합(overfitting) 모델이 데이터를 학습하는 과정에서 발생하는 과소적합, 과대적합 문제를 1) 모델 복합도 측면, 2) 데이터 정보량 측면에서 고려할 필요가 있음. 과소적합(underfitting): 학습 데이터조차 제대로 학습x(데이터 내재적인 구조 반영x), 편향이 높게(high bias) 학습되어 새로운 데이터를 예측하지 못하는 상태 과대적합(overfitting): 학습 데이터를 과하게 학습(지엽적인 특성까지 반영), 분산이 높게(high variance) 학습되어 새로운 데이터를 예측하지 못하는 상태 결론적으로, 편향을 높이면 학습이 잘 안되고, 편향이 낮으면 분산이 높아지는 절충(trade off) 관계로 두 가지 에러(error)를 최소화 ..

[PySpark] 신용카드 사기거래 탐지 모델링(2) - 성능지표정의

모델링 과정에서 우리가 해결하고자하는 문제가 무엇인지 정의하는 것은 전체 모델링 업무에 있어서 거의 반이지 않을까?(시작이 반이라는 의미가 있으니..). 즉, 모델링 업무의 시작이라고 생각된다. 문제도 모르는채 무슨 모델을 어떻게 쓸지 고민하는건 마치 내가 로또 1등 걸리면 한강이 보이는 집을사고 차는 포르쉐로 사서 나머지 돈은 주식해야지랑 다를빠가 있으려나.. ㅠ(그래도 행복한 고민이다) 내가 생각하기엔 머신러닝(지도학습)은 기존에 있는 데이터 패턴을 파악해(학습) 미래의 데이터 패턴을 보고 얼마나 예측하는 모델이라고 생각한다. 여기서 모델이 얼마나 잘 예측하는지는 모델링 프로세스의 결말 부분에서 중요하다. 왜냐 사람의 직감보다 못마추는 모델이라면 굳이 사용할 필요가 없는거 아닌가? 일반적으로 데이터를..

[PySpark] 신용카드 사기거래 탐지 모델링(1) - 데이터 탐색

실제 데이터 모델링 업무를 하다보면 클래스 불균형(class imbalanced, 라벨 불균형)인 데이터를 자주 만나게 된다. 일반적으로, 머신러닝 모델은 클래스의 비중이 비슷할때 가장 잘 작동하지만 그런 균형있는 데이터를 다루기엔 현실적으로 쉽지않다. 따라서, 데이터가 심각하게 불균형(highly imbalanced)인 상황에서 어떤 문제가 있고, 어떻게 의사결정하여 문제를 해결했는지 정리하고자 한다. 해당 데이터는 kaggle: Credic Card Fraud Detection에서 다운로드 가능하다. 데이터는 2013년 9월 유럽에서 발생한 신용 카드 거래내역이다. 이 데이터는 이틀 동안 발생한 거래내역을 보여주며, 여기서 284,807건의 거래중 492건의 신용카드 거래가 사기로 판별됐다. 클래스가..

[머신러닝] 분류모델 성능지표 - 혼동행렬, AUC-ROC 커브, Lift/gain 차트

[분류 모델 성능지표] 목적: 라벨이 있는 경우 이진 분류 모델의 성능지표에 대해 정리한다. 1.혼동행렬(confusion matrix), 2.AUC-ROC curve 3.lift chart, gain chart 1. 혼동행렬(confusion matrix) predicted Positive Negative True Positive TP(True Positive) FN(False Negative) Negative FP(False Positive) TN(True Negative) TP: 양성인데, 양성으로 제대로 예측 FN: 양성인데, 음성으로 잘못 예측 FP: 음성인데, 양성으로 잘못 예측 TN: 음성인데, 음성으로 잘못 예측 1-1.정확도(Accuracy) ACC = (TP + FN) / (TP + F..

[딥러닝] Long-Short Term Memory models(LSTM)

LSTM 알고리즘 기존의 RNN이 출력과 먼 위치에 있는 정보를 기억할 수 없다(Long-Term Dependency)는 단점을 보완하여 장/단기 기억을 가능하게 설계한 신경망의 구조 neural network이 하나의 layer로 구성된 것과 다르게, 3개의 layer가 서로 정보를 주고 받으며 학습 ex) forget gate(과거 정보 유지), input gate(현재 정보 활용), output gate(계산 정보 출력) 장점 오래전 혹은 최근의 정보를 기억할 수 있음 RNN에서 역전파시 기울기 소실(gradient vanishing) 문제 해결 단점 학습해야 할 파라미터 수가 많으므로 연산속도가 느림 - Reference https://ratsgo.github.io/natural%20languag..

[머신러닝] Random Forest, XGBoost, LightGBM 비교

1.Random Forest - 알고리즘 여러 개의 의사결정나무(Decision Tree) 모델을 배깅(bagging) 앙상블한 모델 bagging : training data로부터 랜덤하게 추출하여 동일한 사이즈의 데이터셋을 여러개 만들어 독립적인 트리를 구성 각 트리마다 변수들이 랜덤하게 사용(subsampling) > 개별 트리들의 상관성을 줄여 일반화 성능 확보 - 장점 일반화 및 성능 우수 파라미터 조정 쉬움 데이터 scaling 불필요 - 단점 샘플을 계속 추출하다 보면 비슷한 데이터가 만들어질 확률이 증가 해석이 어려움(앙상블 모형의 특징) 변수가 너무 적은 경우 랜덤성이 부족하여 성능 떨어짐 훈련시 메모리 소모 큼 2.XGBoost - 알고리즘 여러 개의 의사결정나무(Decision Tre..

[머신러닝] Kernel/Kernel trick(커널, 커널트릭)

0.개요 앞서, Support Vector Machine은 다음과 같은 제약식이 있는 최적화 문제를 라그랑주 문제로 풀었다. $$\text {max}\quad L_D(\alpha_i)=\sum^n_{i=1}\alpha_i - \frac {1}{2}\sum^n_{i=1}\sum^n_{j=1}\alpha_{i}\alpha_{j} y_i y_j x^{T}_ix_j$$ $$\text {subject to} \quad \sum^n_{i=1}\alpha_i y_i = 0, \ 0 \leq \alpha_i \leq C, \quad i = 1, \dots , n $$ 그러나 분류모델로 선형 SVM을 가정했을 때 soft margin을 사용해 어느 정도 오분류를 허용하더라도 다음과 같은 input space에서 데이터를..

[머신러닝]Support Vector Machine(SVM)에 대해 알아보자

0.History 서포트 벡터 머신(support vector machine; svm) 알고리즘은 Vapnik, Chervonenkis(1963)에 의해 고안됐다. 1992년 커널 트릭(kernel trick) 방법론을 적용해 마진(margin)을 최대화하는 초평면(hyperplane)을 찾는 비선형 분류기로 확장했으며, 1995년에는 소프트 마진(sorft margin) 개념을 도입해 svm의 분류기의 성능을 높였다. 1.SVM - 초평면(hyperplane), 마진(margin) 우선, 여기서 svm은 지도학습 분류기로 이진 분류만 고려하기로 한다. 주어진 훈련데이터(training observation)를 이용하여 마진(margin)을 최대화하는 초평면(hyperplane)을 찾는 분류기이다. $$..