전체 글

공부한 걸 정리하고 공유하며 틀린 부분을 함께 고쳐나가는 블로그입니다.
자주 보이는 성능 지표는 아니지만 분류 목적에 있어서 가끔 사용되는 plot중 하나로 calibration plot이 있다. Calibration plot(캘리브레이션 플롯)은 머신러닝 모델의 예측 정확도와 신뢰도를 시각적으로 평가하는데 사용되는 도구이다. 모델이 예측한 확률과 실제 결과 간의 일치 정도를 평가함으로써, 모델의 성능을 직관적으로 이해할 수 있게 해준다. 특히, 분류 문제에서 모델의 예측 확률이 실제 발생 확률과 얼마나 잘 맞는지를 검증함으로써, 모델의 신뢰성을 검증 할 수 있다. 📌 Calibration plot 우선 우리가 적합한 모델이 있다고 가정합시다. 그렇다면 이 모델로 인하여 나온 데스트 세트의 각 샘플에 대한 예측 확률이 계산되었을 것이다.(분류니까 각 클래스에 속할 확률이라고..
앞서 불균형 데이터 처리의 중요성과 간단한 방법들에 대해 알아보았습니다. 임계값(threshold)를 조정하는 법, 그리고 랜덤 오버샘플링(Random Oversampling), 랜덤 언더샘플링(Random Undersampling)을 보았습니다. 링크 : 임계값 조정법, ROS/RUS 이번엔 또 다른 접근법으로 소수 클래스의 샘플을 증가시키는 SMOTE(Synthetic Minority Over sampling Technique), ADASYN(Adaptive Synthetic Sampling)에 대해 알아보겠습니다. 간단하게, SMOTE는 소수 클래스의 샘플을 인위적으로 생성하여 데이터 세트의 균형을 개선하는 방법으로, 랜덤 오버샘플링과 같이 분포안에서 랜덤하게 추가 데이터를 생성하는게 아닌 샘플 간..
저번 포스팅에서 불균형 데이터에 대한 접근법으로 임계값 조정을 확인하였습니다. 불균형 데이터 접근법 : 임계값 조정 불균형 데이터(Imbalanced Data) 접근법 : 임계값(threshold) 조정 불균형 데이터(Imbalaned Data)는 데이터 마이닝 세계에서 생각보다 흔히 마주치는 도전 과제이다. 예를 들면, 자살 예측 혹은 질병 예측과 같은 부분에서 흔하다. 자살 시도 혹은 자살 생각을 하는 datanovice.tistory.com 임계값 조정법은 모델을 적합한 이후에 성능을 확인 한 후 적용하는 방법이었습니다. 이번엔 오버 샘플링과 언더 샘플링입니다. 매우 간단한 방법으로, 오버 샘플링(over sampling)은 소수 클래스의 데이터를 다수 클래스만큼 가상 데이터를 만드는 접근법이며, ..
불균형 데이터(Imbalaned Data)는 데이터 마이닝 세계에서 생각보다 흔히 마주치는 도전 과제이다. 예를 들면, 자살 예측 혹은 질병 예측과 같은 부분에서 흔하다. 자살 시도 혹은 자살 생각을 하는 이들을 비교적 많지 않기에 자살 생각이 있다는 Y = 1인 사람이 30명 없다는 Y = 0인 사람이 300명이 있는 경우이다. 이 경우, 모델을 적합할 때 자살 생각이 없다는 300명의 데이터의 패턴을 더 많이 학습하기 때문에 자살 생각을 예측하기 쉽지 않다. 이렇게 예측 모델링에서 클래스 간 불균형은 모델의 학습 능력에 큰 영향을 미칠 수 있으며, 이를 해결하기 위한 전략이 필요하다. 본 글에서는 가장 간단한 방법으로 임계값(Threshold)를 조정하는 방법을 소개하려고 한다. 아마 머신러닝에 관심..
우선, 작성자는 머신러닝에 대해 그리 많은 지식과 경험은 없다. 하지만, 많은 공부와 서적을 함하여 얻은 지식 중 하나는 머신러닝이 모든 것에 대한 정답이 아니란 것이다. 머신러닝은 우리가 데이터를 보기위한 도구 중 하나이다. 결론을 보고 해석하고 적용하는 것은 결국(아직까진?) 인간의 몫이다. 하고싶은 말은 머신러닝은 코드 몇 줄로 내가 얻고싶은 결과를 얻을 수 있는 것이 아니란 것이다. 머신러닝의 세계에서 "No Free Lunch" (NFL) 이론은 중요한 원칙 중 하나로, 이는 모든 최적화 문제에 대해 일관되게 우월한 알고리즘이 존재하지 않는다는 개념을 담고 있다. 이 이론은 데이비드 H. 울퍼트(David H. Wolpert)에 의해 1990년대에 처음 소개되었으며, 머신러닝 알고리즘의 선택과 ..
📌 조건부 추론 나무(Conditional Inference Trees) Conditional Inference Trees (CIT)는 통계적 학습의 한 분야에서 비교적 새로운 접근 방식으로, 전통적인 의사결정 나무 모델들이(벌써 의사결정 나무가 전통적인 방법이 되었네요 ㅜ) 직면하는 몇 가지 문제를 해결하고자 하기위해 등장했다. 이 방법론은 의사결정 나무를 구축하는 과정에서 통계적 검정을 사용하여 분할을 결정하는 것이 특징이다. 이러한 접근 방식은 데이터 내의 구조를 탐색할 때 발생할 수 있는 과적합과 변수 선택 편향 문제를 줄이는 데 도움을 준다. 의사결정 나무 생성 알고리즘으로 가장 많이 사용되는 CART 알고리즘은 과적합 방지를 위한 Prunning 그리고 gini index를 이용하는 생성 방법..
📌 의사결정 나무와 알고리즘들 의사결정 나무(Decision Tree)는 데이터 과학의 강력한 도구로, 복잡한 데이터 세트로부터 의미 있는 정보를 추출하고 예측 모델을 구축하는 데 널리 사용된다. 실제로 우리 Data mining, ML에 관해 공부할 때 거의 기초 수준으로 공부하고 볼 수 있는 모델이다. 이 방법론은 그 이름에서 알 수 있듯이, 결정 규칙을 나무 구조로 조직화하여 결과를 도출한다. 각 분기는 데이터의 특성에 따른 결정 과정을 나타내며, 최종적으로 리프 노드에 도달하여 결론을 내린다. 이러한 과정은 복잡한 의사 결정 과정을 직관적이고 이해하기 쉬운 방식으로 시각화할 수 있게 해준다.(가장 큰 장점) 의사결정 나무의 핵심 가치는 그 간결함에 있다. 데이터의 내재된 패턴을 명확하게 파악할 수..
이미 통계 학습 카테고리에서 소개한 방법이지만 Resampling의 파트에서도 자세히 소개해보고자 합니다. - LOO and K-fold 아래에서 설명하는 내용은 모두 Train set를 이미 따로 둔 상태를 가정하고 설명하는 겁니다. 📌 Hold-out Hold-out방법의 경우 간단합니다. 보통 50:50을 사용하고 주어진 데이터를 랜덤하게 Train set, Validation set로 나눕니다. with R # Auto data의 mpg 사용. library(ISLR) set.seed(42) data = Auto$mpg dim(data.frame(data)) >> 392 1 # caret이용 library(caret) train = createDataPartition(data, p=0.5) dim..
📌 Bootstrap 부트스트랩? 최대우도? 부트스트랩 방법은 복잡한 데이터 세트의 추정치를 분석하고 이해하기 위해 널리 사용되는 강력한 재표본 추출 기술입니다. 이 접근법을 통해 연구자들은 원본 데이터 세트에서 복원 추출을 수행하여, 모집단의 실제 특성을 모르는 상황에서도 통계적 추정치의 신뢰성과 정확성을 높일 수 있습니다. 부트스트랩의 핵심은 간단합니다. 주어진 데이터 세트에서 무작위로 샘플을 복원 추출함으로써, 새로운 "부트스트랩 샘플"을 생성하고, 이를 통해 원본 데이터의 통계적 추정치를 다시 계산합니다. 이 과정을 여러 번 반복하면, 추정치의 분포를 얻을 수 있으며, 이를 통해 실제 모수에 대한 근사치를 더 정확하게 추정할 수 있습니다. 우리는 실제 모수에 대한 정보를 알 수 없습니다. 그래서 ..
📌 Jackknife Jackknife기법입니다. 우리에게는 leave-one-out과 비슷한 것으로 많이 알려져 있죠? 추정치의 편향을 감소시키기 위해 개발되었습니다. LOO처럼 데이터에서 한 번에 하나의 관측값을 제외하면서 통계량을 recompute하는 방법입니다. 이를 통해 우리는 통계량의 변동성(Variability)를 추정할 수 있습니다. Jackknife 방법론은 통계학에서 편향성 감소와 데이터의 변동성 추정을 위해 널리 활용되는 재표본추출 기법입니다. 이 방식은 전통적인 leave-one-out 교차 검증과 유사한 절차를 따르면서, 단일 데이터 세트로부터 다양한 통계적 추정치의 분포를 파악할 수 있는 효율적인 접근법을 제공합니다. 어떤식으로 jackknife가 진행되는지 아주 간단하게 본다면..
Data_novice
데이터 노트 📝