상관관계 이해 일단 피어슨 상관관계를 이해하기 위해서, 간단히 상관관계에 대해서 알아보도록 해보자. 대표적으로 상관관계를 이해할 땐 키와 몸무게의 데이터를 활용하곤 한다. 인간은 키가 커지면, 몸무게 또한 커지기 마련인데 이처럼 두 값이 같은 방향으로 커지는 것을 양의 상관관계라고 한다. 반대로 음의 상관관계는 값이 커지면 다른 값이 작아지는 경우를 뜻하는데 술을 많이 마신다던가, 담배를 많이 필경우 기대 수명이 줄어드는 경우가 있는데 이렇게 두 값이 같은 방향으로 가지 않으면 음의 상관관계라고 한다. 위 그림을 보면, r이 1에 가까울수록 우상향의 선형 모양이 나오게 되며, r이 -1에 가까울수록 우하향의 선형 모양이 나오게 된다. 그리고 0에 가까울 경우 완전히 패턴을 찾기 힘든 모습이 나오게 되는데..
이번 포스팅은 DBSCAN 클러스터링을 구현하는 내용이며, DBSCAN에 대해서 이해를 하고 싶을 경우 이전에 작성한 포스팅을 참고하면 좋을 것 같다. DBSCAN clustering 이해하기 DBSCAN의 개념 DBSCAN은 Density-Based Spatial Clustering of Applications with Noise의 약자로, 한국말로 풀이하면 노이즈를 적용한 밀도 기반 공간 클러스터링이라고 해석할 수 있다. 한마디로 Density-Based.. needjarvis.tistory.com 본 포스팅에 있는 코드는 IBM의 코세라(coursera) 강의 내용과 사이킷런의 데모 페이지의 코드를 섞어서 만든 예제이다. DBSCAN 클러스터링 예제 라이브러리 import numpy as np fr..
DBSCAN의 개념 DBSCAN은 Density-Based Spatial Clustering of Applications with Noise의 약자로, 한국말로 풀이하면 노이즈를 적용한 밀도 기반 공간 클러스터링이라고 해석할 수 있다. 한마디로 Density-Based 알고리즘이기 때문에, "밀도 기반"으로 클러스터링을 하게 된다는 의미이다. K-Means의 문제점 DBSCAN을 이해하기에 앞서, 대표적인 클러스터 알고리즘인 K-Means을 떠올려보자. K-Means은 이상치(outlier)가 있어도 이상치 값을 이해 할 수 없으며, 이상치가 심지어 K-Means를 자신의 주변으로 끌고 와서 centroid값을 바꿔버릴 수 있다. 이는 클러스터의 품질을 심하게 망칠 수 있는 critical risk이다...
K-means 자체에 대해서 아직 이해가 부족하신 분은 예전 포스팅에 자세히 적은 것이 있기 때문에 이전 포스팅을 먼저 보면 될 것 같으며 아래 링크를 확인하면 된다. 클러스터링(Clustering)을 통한 데이터 분류기법, K-평균(K-Means) 알고리즘 K-평균(K-Means) 알고리즘은 기계학습(머신러닝, machine learning), 데이터마이닝에서 활용하고 있는 기법으로서, 대표적인 비지도학습이다. 비지도학습이란 어떤 결과를 예측하지 못해야 되는 것으 needjarvis.tistory.com K-means를 알고 계신 분들에게 다시 한번 간단히 상기시키면 다음과 같은 순서로 클러스터링이 작동된다. 중심점인 K를 지정한 후, 이 값은 무작위의 좌표값으로 시작된다. 데이터 요소들과 무작위의 중..
KNN 알고리즘 개념 k최근접 알고리즘(k-nearest neighbors algorithm, KNN) 알고리즘은 분류(classify) 문제에도 사용할 수 있고, 회귀(Regression) 문제에도 사용할 수 있으며, 수많은 알고리즘의 중간 과정(예를 들어 추천 알고리즘인 CF에서도 사용)에서도 자주 쓰이는 알고리즘이다. KNN의 k라는 것은 숫자를 뜻하며 여기에 숫자는 이웃이고, k만큼의 이웃을 지정하여 그 이웃들의 값을 토대로 계산한다. KNN은 쉽게 생각하면 유사 알고리즘과 같다 컬럼별로 유사한 이웃들을 찾아서 값을 계산하고, 이를 통해 최종적으로 분류 및 회귀 문제를 풀기 때문이다. 키와 몸무게를 기반으로 헌병과 그외의 보직을 예측한다고 가정을 해보자. 이는 실제 데이터가 아니라 어디까지나 예시..
결정 트리 혹은 의사결정 나무(Decision Tree) 분류기는 무언가를 설명할 때, 매우 유용한 퍼포먼스를 보여주는 모델이다. 최근에는 설명 가능한 인공지능(Explainable AI, XAI)이라는 것이 이슈이며, 몇몇 국회의원은 IT 기업들의 알고리즘을 공개해야 된다는 이야기까지 나오기도 하였다. 또다른 관점으로는 새로운 서비스의 창출이다. 예를 들어, 설명을 할 수 있을 정도의 모델이라면 리포트(Report)를 보여준다던지, 설명 값을 토대로 다른 서비스를 만들 수도 있을 것이다. 결정 트리는 바로 이러한 방식에 특화된 알고리즘이며, 설명이 가능한 것을 제외하고 나쁘지 않을까 생각할 순 있지만, 아직도 많이 사용될 정도로 성능 또한 뒤쳐지지 않는다. 결정 트리의 구성도 일단 결정 트리인 이유는 ..
해밍 거리(Hamming Distance)는 리차드 웨슬리 해밍이라는 수학자가 만든 같은 크기를 가진 데이터를 놓고, 같은 위치에 있는 값들끼리 비교를 하는 매우 직관적인 알고리즘이다. 해밍거리 예시 "머신러닝"과 "머신건"이 얼마나 유사한지 해밍 거리로 비교를 해보자. 머 신 러 닝 머 신 건 O O X X 위와 같이 총 2개가 유사하고, 2개는 다르기에 둘간의 거리는 즉 2가 된다. 여기서 머신건은 3글자이고 머신러닝은 4글자이기 때문에 부족한 글자는 공백으로 치환을 하고 계산을 해야 한다. 계산을 할 때 공백을 추가하지 않을 경우 에러가 발생된다. 글자수가 다를 경우 에러 화면 Traceback (most recent call last): File "E:/Python/Post/similar/hamm..
자카드 유사도(Jaccard Similarity)니, 자카드 계수(Jaccard Coefficient)니 자카드 지수(Jaccard Index)니 사실 다 같은 말이지만 여기서는 제목을 자카드 유사도로 지정하였고, 많은 사람들이 자카드 다음에 유사도를 더 많이 검색을 하는 것 같아서 본 포스팅은 자카드 유사도로 용어를 통일하도록 한다. 유사도(Similairy) 유사도란 A라는 아이템과 B라는 아이템이 얼마나 유사한가를 수치로 표현한 값이다. 유사도 측정 방법에는 유클리디안 거리, 맨하튼 거리, 피어슨 상관 계수, 코사인 유사도, 자카드 유사도, 타니모토 유사도 등이 있으며 가장 보편적으로 유클리디안, 자카드, 피어슨 상관 계수, 코사인 등을 활용하고 있다. 사실 자카드 유사도라는 것을 설명해야 될 것인..
트랜스퍼 러닝(Transfer Learning) 즉 전이 학습은 특정 태스크에서 학습된 모델을 이용하여 다른 태스트에 재사용하는 기법을 말한다. 전이 학습은 최근 들어 자연어 처리 분야에 상당 부문 많이 활용이 되고 있는데 BERT(Bidirectional Encoder Representations from Transformers)나 GPT(Generative Pre-trained Transformer)와 같은 모델을 이용하여 대규모의 데이터셋을 학습하고 이 학습된 모델을 토대로 다른 분야에 많이 활용 되곤 한다. 전이학습을 사용하는 이유 일반적으로 전이학습이 없이 모두 한번에 학습하는 일반적인 방식은 속도도 매우 오래 걸리고, 태스크(Task)간의 최적화를 이루어낼 수 없다. 이를 현실 세계로 예시를 ..
모멘텀(Momentum) 모멘텀이란 물리학에서 쓰이는 용어인 운동량, 동력을 뜻하며 이를 옵티마이저 개념에 적용한 것이 모멘텀 옵티마이저이다. 우선 모멘텀을 이해하기 위해서는 이전에 등장한 경사하강법 계열들을 이해해야 하는데 이 개념이 나온 이유가 바로 경사하강법 특히 확률적 경사하강법(Stochastic Gradient Descent, SGD)에서 나온 개념이기 때문이다. SGD의 지그재그로 움직이며 최적화되는 것을 해결하기 위해서 나왔으며 너무 왔다갔다 해서 지역 최소값(local minimum)에 갇혀 빠져나오지 못하는 경우가 많은데 이를 위해 관성과 가속도 넣어서 지그재그가 아니라 한 방향으로 좀 더 이동할 수 있게 한 것이다. 현재 이동하는 방향과는 별개로 과거에 이동을 했었던 방향을 기억하여 ..
확률적 경사하강법은 대표적이고 인간에게 아담과 같은 존재인 경사 하강법(Gradient Descent, GD)에게서 파생된 최적화 알고리즘(Optimizer, 옵티마이저)이다. 일단 본 포스팅에 앞서 경사 하강법에는 Mini Batch Gradient Descent도 있지만 보통 mini batch를 SGD를 포함시켜서 mini batch의 특징도 SGD로 설명 하였다. 경사 하강법의 단점과 확률적 경사하강법의 원리 그러나 GD에게는 치명적인 단점이 있는데 바로 한스텝 내딛을 때마다 전체 데이터를 이용하는 단점이 있다. 이를 등산으로 비교하자면, 내가 한걸음 옮길 때마다 지도랑 나침반보고 갈길 정한다는 것과 같다. 대충 들어도 엄청 비효율적인것 같지만 반면에 성능자체는 꽤 괜찮게 나올 수 있다는 것도 대..
기계학습(Machine Learning, 머신러닝)과 딥러닝(Deep Learning)이 현재 이정도까지 수준까지 발전하기에는 수많은 사람들의 노력과 정교한 수학적 모델들이 계속 고도화되었으며 많은 사람들이 실제 프로젝트에 활용하면서 무엇이 어떤 상황에 좋고 나쁨을 피드백하거나 논문등으로 발표하기 때문일거라 생각한다. 머신러닝의 성능 개선법 머신러닝, 딥러닝의 성능을 좌우하는 녀석 중에 옵티마이저(Optimizer, 최적화)가 있는데 DB를 잘아는 사람들은 옵티마이저가 최소의 Cost로 결과를 찾아주는 것으로 알고 있을 것이다. 사실 DB와 머신러닝, 딥러닝에서 말하는 옵티마이저의 궁극적인 목적은 동일할 것이다. DB에서 최소의 코스트로 결과를 찾는 개념과 신경망의 모델이 실제 결과와 예측 결과의 차이를..