ML in Python(40)
-
[Data Analysis 개념] k-Fold Cross Validation
머신러닝을 실행시키다 보면 크게 나타나는 문제 중 1. 과적합 문제 해결 2. Sample loss 문제 해결 을 위해서 존재하는 검증법이 바로 Cross Validation(교차검증법)이다. 먼저, Sample Loss 문제는 Train-(Validation)-Test 으로 데이터 셋을 나눌 때, 데이터를 나누면서 학습데이터가 적어지는 데이터 소실 문제가 발생한다. 그렇다고 온전히 갖고 있는 데이터셋을 모두 Train Set으로 돌리고 학습을 시키자니, Train(학습)데이터에만 성능이 좋은 Overfitting(과적합)이 발생한다. 이러한 상황속에서, 학습이 발생시키는 Error를 과소추정하지 않으면서 데이터의 소실을 최소화하는 방법이 바로 Cross Validation(교차검증법)이다. k-Fold..
2020.07.03 -
[Data Analysis 개념] KNN(K-Nearest-Neighbors)알고리즘
※ 이 게시글은 KNN분류에 대한 이론만 게시된 게시글입니다. KNN이란, K-Nearest-Neighbors의 약자로, 간단하게 말해서 K개의 이웃한 데이터를 기반으로 대상을 분류/회귀하는 것이다. KNN은 직관적으로 이해하기 쉽고, 수학적으로 풀어도 충분히 이해하기 쉬운 머신러닝 모델이다. 이번 게시글에서는 KNN의 원리에 대해 알아보자. 직관적 방법론 만약 아래와 같은 그림이 있다고 하자. 우리가 보고있는 녹색 점을 빨간색 또는 파란색으로 분류하려면 어떤 방식을 통해서 분류를 해야할까? 여러 방법이 있겠지만, 이 위의 데이터를 산점도의 샘플이라고 생각한다면, 녹색점이 녹색점 주변의 다른 점들과 유사한 특징을 지닌다고 생각하고, 이를 기반으로 주변 샘플들의 정보를 이용해서 녹색점을 어떤 색으로 분류할..
2020.07.03 -
[Python] Gaussian/Multinomial Naive Bayes Classification(가우시안/다항 나이브 베이즈 분류) 실습
나이브 베이즈 모델은 데이터가 적을 때, 간단한 학습으로도 효율적인 성능을 낼 수 있는 기본적인 머신러닝 모형이다. https://todayisbetterthanyesterday.tistory.com/17 [Data Analysis 개념] NaiveBayes(나이브 베이즈) 모델 - 조건부 확률 / 베이즈 정리 / Multinomial, Gaussian, Be 나이브 베이즈 분류 예시) 테니스를 좋아하는 한 사람이 있다고 하자. 만약, 이 사람이 1. 날씨가 좋고 2. 습도가 낮은 날에 테니스를 칠 확률은 얼마나 되는가? 주어진 데이터에 따라 경우가 �� todayisbetterthanyesterday.tistory.com 나이브 베이즈의 이론에 대한 설명은 위의 링크를 통해 살펴보면 된다. 이 게시글에..
2020.07.02 -
[Data Analysis 개념] NaiveBayes(나이브 베이즈) 모델 - 조건부 확률 / 베이즈 정리 / Multinomial, Gaussian, Bernoulli NaiveBayes
※ 이 게시글은 나이브 베이즈 분류에 대한 이론만 게시된 게시글입니다. 만약 파이썬을 통한 구현에서만 알아보고 싶다면 아래 링크를 통해 실습과정을 확인해주시면 됩니다. https://todayisbetterthanyesterday.tistory.com/18?category=821465 [Python] Gaussian/Multinomial Naive Bayes Classification(가우시안/다항 나이브 베이즈 분류) 실습 *아래 학습은 Fastcampus의 "머신러닝 A-Z까지"라는 인터넷 강의에서 실습한 내용을 복습하며 학습과정을 공유하고자 복기한 내용입니다. 나이브 베이즈 모델은 데이터가 적을 때, 간단한 학습으�� todayisbetterthanyesterday.tistory.com 나이브 베이..
2020.07.02 -
[Python] - PCA(주성분분석) 실습
PCA는 Principal component analysis의 약자로 차원의 저주를 해결하기 위한 방법 중 하나이다. 많은 변수들 사이에서 수학적인 연산을 통해 PC score를 얻어내고, 높은 PC score를 기반으로 LogisticRegression회귀분석을 진행한다. 이번 게시글에서는 이를 Python으로 실습하는 과정을 풀어나갈 것이다. 만약 이론과 원리에 대해 알고 싶다면 아래 링크를 통해 확인하길 바란다. https://todayisbetterthanyesterday.tistory.com/22 [Data Analysis] 차원 축소법 - PCA(주성분 분석) 이 게시글은 PCA의 이해와 수학적 과정만을 다룬다. Python 실습코드를 따라가보면 훨씬 이해가 잘 될 것이다. 아래 링크를 남겨놓..
2020.06.30 -
[Data Analysis 개념] 차원의 저주
차원의 저주? " 차원이 커질수록 데이터가 Sparse하게 존재하는 문제로 인해, 학습 데이터의 대표성을 잃고 모델 학습의 성능을 저하시키는 현상 "이라고 생각한다. 그림을 통해 알아보자. 선을 보면 선의 50%가 해당되는 영역이나 2차원 평면으로 차원이 확대되었을 때, 기존의 선이 나타낼 수던 영역이 넓이로 표현되었을 때 25%로 줄어든다. 이는 3차원 공간으로 이동하면 12.5%만 해당되는 부분으로 축소된다. 이처럼 차원이 높아질 수록 분포하는 데이터의 대표성이 줄어드는 현상이 발생한다. 이는 곧 학습/예측 성능의 저하를 불러일으킨다. 더 쉽게 알아보자. 첫 번째 선에서 별(데이터)이 5개 분포하고 있다. 이는 10개 중 5개로 50%에 해당한다. 하지만, 2차원에서 이 데이터가 분포한다면, 같은 범..
2020.06.25