분류 전체보기

    [클러스터링] GMM(Gaussain Mixture Model)

    [클러스터링] GMM(Gaussain Mixture Model)

    1. 정의 GMM은 데이터가 여러 개의 가우시안 분포(Gaussian Distribution)을 가진 데이터 집합들이 섞여서 생성된 것이라는 가정하에 클러스터링을 수행하는 방식이다. 가우시안 분포 흔히 정규 분포로 알려져 있으며 좌우 대칭형의 종 형태를 가진다. 평균 $\mu$를 중심으로 높은 데이터 분포를 가지며 평균이 0이고, 표준편차가 1이다. 4개의 데이터 세트가 있다면, 위와 같이 나타날 것이고 수행 방식은 다음과 같다. 1) GMM으로부터 개별 정규 분포의 평균과 분산 추정 2) 각 데이터가 어떤 정규 분포에 해당되는지의 확률 추정 위 과정을 모수 추정이라고 하고 이를 위해 GMM은 EM(Expectation and Maximaization) 방법을 적용한다. 2. 사용법 iris 데이터셋을 ..

    [클러스터링] 평균 이동(Mean Shift)

    1. 정의 평균 이동은 K-Means와 유사하게 중심을 군집의 중심을 지속적으로 움직이면서 클러스터링을 수행한다. 다만, 평균 이동은 중심을 데이터가 모여 있는 밀도가 가장 높은 곳으로 이동시킨다. 데이터의 분포도를 이용해 중심점을 찾는데, 확률 밀도 함수를 이용하고 이를 찾기 위해서 KDE(Kernel Density Estimation)을 이용한다. KDE 커널함수를 통해 어떤 변수의 확률 밀도 함수를 추정하는 대표적인 방법. 관측된 데이터 각각에 커널 함수를 적용한 값을 모두 더한 뒤 데이터 건수로 나눠 확률 밀도 함수를 추정한다. 대표적인 커널 함수로 가우시안 분포 함수가 적용된다. 그리고 KDE의 식은 아래와 같다. $$ \mathrm{KDE}=\frac{1}{n} \sum_{i=1}^{n} K_..

    [클러스터링] K-Means 알고리즘

    1. 정의 K-Means 알고리즘은 주어진 데이터를 k개의 클러스터로 묶는 알고리즘으로 각 클러스터와 거리 차이의 분산을 최소화하는 방식으로 동작한다. (출처:위키피디아) 수행 과정은 아래와 같다. 1) 임의의 군집 중심점(centroid)를 설정 2) 각 데이터는 가장 가까운 중심점에 소속됨 3) 중심점에 할당된 데이터들의 평균 중심으로 중심점 이동 4) 이동된 중심점으로 각 데이터 소속 변경 5) 4번에서 소속변경이 없다면 멈추고 계속 있다면 소속변경이 없을 때까지 3~4번을 반복 2. 특징 2-1. 장점 일반적으로 많이 사용되는 알고리즘으로 쉽고 간결하다. 2-2. 단점 거리 기반 알고리즘으로 속성의 개수가 많다면 정확도가 떨어진다. 반복을 수행하는데, 반복 횟수가 많을 경우 수행 시간이 느리다. ..

    [머신러닝] PCA (주성분 분석)

    0. 들어가기전에 [머신러닝] 차원의 저주와 차원 축소에서 이어집니다. 1. PCA (Principal Component Analysis) PCA는 가장 대표적인 차원 축소 기법으로 여러 변수 간에 존재하는 상관관계를 이용해 이를 대표하는 주성분(Principal Component)을 추출해 차원을 축소하는 기법이다. 목적 1. 고차원의 데이터를 저차원으로 줄인다. 2. 공통된 (상관관계가 높은) 변수들을 줄여서 주성분을 찾는다. 1-1. 방법 1. 기존 데이터의 정보 유실을 최소화하기 위하여 가장 높은 분산을 가지는 데이터의 축을 찾아 해당 축으로 차원을 축소한다. (분산이 데이터의 특성을 가장 잘 나타내는 것으로 간주) 2. 첫 번째 축에서 직교하는 축을 선정하여 해당 축으로 차원을 축소한다. (직교..

    [머신러닝] 차원의 저주와 차원 축소

    1. 차원의 저주 (Curse of dimensionality) 데이터 학습을 위해 차원이 증가하면서 학습데이터 수가 차원의 수보다 적어져 성능이 저하되는 현상 일반적으로 차원이 증가할수록 데이터 포인트 간의 거리가 기하급수적으로 멀어지게 되고, 희소(sparse)한 구조를 가지게 된다. 피처가 많을 경우, 개별 피처간에 상관관계가 높을 가능성이 높고 다중 공선성 문제를 야기한다. 다중 공선성 문제 독립변수들 간에 강한 상관관계가 나타나는 문제 2. 차원 축소 차원의 저주를 해결하는 방법 중 하나이다. 일반적으로 피처 선택(feature selection)과 피처 추출(feature extraction)으로 나뉜다. 피처 선택: 종속성이 강한 불필요한 피처는 제거하고, 데이터의 특징을 잘 나타내는 주요 ..

    [통계] 1종 오류와 2종 오류 & 오차행렬(confusion matrix)

    [통계] 1종 오류와 2종 오류 & 오차행렬(confusion matrix)

    1. 정의 위키피디아에 따르면 다음과 같이 정의된다. 1종 오류: 귀무가설이 실제로 참이지만, 이에 불구하고 귀무가설을 기각하는 오류 2종 오류: 귀무가설이 실제로 거짓이지만, 이에 불구하고 귀무가설을 기각하지 못하는 오류 2. 설명 귀무가설은 아무일도 일어나지 않았음을 의미한다. 따라서 다음과 같이 생각할 수 있다. 1종 오류: 실제로는 아무 일도 일어나지 않았지만, 어떤일이 발생했을 것이라고 예측하는 오류 2종 오류: 실제로는 어떤 일이 발생했지만, 아무 일도 일어나지 않았을 것이라고 예측하는 오류 2-1. 예시 몇가지 예시를 들어본다. 화재 경보 - 귀무 가설: 아파트에 불이 나지 않았다. - 1종 오류: 실제로는 아파트에 불이 나지 않았지만, 화재 경보가 울린 경우 - 2종 오류: 실제로는 아파트..

    [IT 도서 리뷰] 읽기 좋은 코드가 좋은 코드다 (Part. 4)

    Part.4 선택된 주제들 14. 테스트와 가독성 테스트 코드에 대한 가독성에 대해 다룬다. 여기서 핵심은 다른 프로그래머가 수정하거나 새로운 테스트를 더하는 걸 쉽게 느낄 수 있도록 읽기 쉬워야 한다는 점이다. 14-1. 이 테스트를 더 읽기 쉽게 만들기 덜 중요한 세부 사항은 사용자가 볼 필요 없게 숨겨서 더 중요한 내용이 눈에 잘 띄게 해야 한다. 이 부분은 앞파트에서 배웠던 함수를 분리하는 것과 비슷한 이치인듯 하다. 14-2. 읽기 편한 메시지 만들기 assert를 호출할 때 무슨의미인지 알려주도록 해야 한다. 코딩을 시작하고 항상 에러가 뜨면, 무슨에러인지 몰라서 구글링하기 바빴던 기억이 있다. 에러를 보자마자 어떤 에러인지 알 수있다면 더욱 도움이 될 것이다. 특히, 파이썬같은 경우에 uni..

    [HDF5] HDF5 소개 및 h5py 사용법

    1. HDF5란? 1-1. 정의 HDF는 계층적 데이터 형식(Hierarchical Data Format)의 약자로 대용량의 데이터를 저장하기 위한 파일 형식이다. HDF4와 HDF5가 있지만, HDF5가 현재 표준이다. 파이토치에서는 텐서를 호환 가능한 형태로 저장해야 할 때 사용할 수 있다. 1-2. 장점 XML과 동일하게 자기기술적으로 구성되어 있어 데이터 형식을 파일 안에 기술 가능하다. 자기기술적: 데이터의 내용과 구조를 모두 표현 많은 양의 데이터를 저장 가능하다. 검색 속도가 빠르다. 병렬 입출력을 지원한다. 데이터의 무작위 조회(Random Access)가 가능하다. 20여년 이상 개발되어온 포맷으로 안정적이다. 수많은 프로그래밍 언어와 오픈소스 라이브러리르 통한 API가 지원된다. 2. ..

    [IT 도서 리뷰] 읽기 좋은 코드가 좋은 코드다 (Part. 3)

    Part 3. 코드 재작성하기 10. 상관없는 하위문제 추출하기 대표적인 예시 해당 코드부분에서 주요 목적과 상관없는 하위 문제라면 별도의 함수로 추출해준다. 코드를 작성할 때, 어디까지 함수화해야할지 고민이 될 때가 있었는데, 이를 명심한다면 고민이 줄어들 것이다. 가독성 이외에도 얻는 장점이 많다. 독립적인 테스트도 용이하며 함수 재사용성이 높아지며 손쉽게 개선할 수 있다. 다만, 너무 자잘한 부분까지 하려할 필요는 없다. (오히려 가독성을 해칠 수도 있음) 11. 한 번에 하나씩 ch.10과 이어지는 내용인듯 하다. 한 번에 여러 가지 일을 수행하는 코드는 이해하기 어렵다. 따라서 작업을 분리하는 것이다. 코드가 복잡하고 읽기 어렵다면, 많은 논리가 어우러져있다는 뜻이고 이는 보통 작업이 뒤엉켜있는..

    [통계] 귀무가설과 대립가설

    1. 들어가기전에 통계를 공부하다보면 p-value, 검정력, 1종 오류, 2종 오류 등등 어려운 단어가 너무 많이 나온다. 이들을 알아보기전에, 기본이 되는 귀무가설과 대립가설을 알 필요가 있다. 2. 정의 2-1. 귀무가설 귀무 가설은 영어로 null hypothesis라고 하는데, 처음부터 버릴 것을 예상하는 가설이다. 따라서 새로울 게 없다는 뜻으로 기존에 존재하는 가설이다. 2-2. 대립가설 귀무 가설에 대립되는 가설로 연구자가 입증되기를 주장하는 가설이다. 3. 의미 일반적으로 참이 아님을 증명하는 것이 참임을 증명하는 것보다 쉽다. 그렇기 때문에 귀무가설이 아님을 증명하는 방식으로 진행한다고 생각하면 되겠다. 따라서 정리하면, 연구자는 대립 가설을 세우고 실험을 통해 대립 가설을 입증하고자 ..