클러스터링의 문제점, 주의점
5026 단어 파이썬scikit-learn기계 학습클러스터링
소개
언어 처리를 위한 기계 학습 입문의 3.6 「클러스터링의 문제점이나 주의점」을 읽고, 비망록으로서 클러스터링을 취급하는 자신의 연구 메모도 함께 정리한다.
언어 처리를 위한 기계 학습 입문 (자연 언어 처리 시리즈)
클러스터링이란?
비슷한 것끼리를 같은 그룹에 정리하는 처리.
주어진 데이터로부터 어떤 모델이나 처리 수단을 도출하는 교사 없는 학습의 일종.
데이터로부터 어떤 그룹을 할 수 있는지는 모르고, 완성된 클러스터를 보고 처음으로 클러스터에 대한 유추를 할 수 있다.
처음부터 목적의 그룹이 있어, 각 데이터를 어느 그룹에 속하는지를 나누는 「분류」와는 다르다.
클러스터링의 문제점, 주의점
문제점
클러스터 수 클러스터링은 분류와 달리 비슷한 것을 그룹화하는 목적이기 때문에 어느 정도까지 비슷한 것을 하나의 그룹으로 만드는 기준이나 클러스터 수를 몇 개로 하는지에 대한 일반적인 해가 존재하는 것은 아니다.
클러스터 수를 결정하는 방법으로 최소 기술 원리 등에 기초한 방법 가 예로서 들었지만, 응용에 최적인 클러스터수를 항상 결정해 주는 것은 아니다.
실제로, 태스크나 데이터에 맞추어 교차 검정 등의 꾸준한 방법으로 결정하는 경우가 많다.
결과가 초기 값에 따라 달라집니다.
k-means나 EM 알고리즘과 같은 반복에 기초한 클러스터링 기법에서는 결과가 초기값에 크게 의존한다.
이러한 접근법에서 초기 값은 난수로 결정되는 경우가 많으며 몇 가지 초기 값으로 실험해야합니다.
자신의 연구에서 이용하는 수법도 EM 알고리즘을 이용한 k-means이지만 초기값에 따라서는 드물게 상상도 하지 않는 클러스터가 출력되어 버리기도 한다.
계산 시간
클러스터링은 알고리즘에서 모든 조합을 고려하거나 반복 계산을 수행하기 때문에 계산에 시간이 많이 걸립니다.
따라서 당연히 알고리즘에서 가능한 한 계산 수를 줄여야합니다.
반복적으로 계산할 필요가 없는 공식은 먼저 한 번만 계산하거나 필요 이상으로 반복하지 않는 것입니다.
또한, 전술 한 초기 값도 계산 시간에 크게 관련되어있다. 처음에 주어진 초기 클러스터가 수렴에 가까워지면 반복하지 않고 즉시 계산이 끝나지만 적당히 흩어진 초기 값이 주어지면 적절한 클러스터를 만드는 데 많은 반복 계산이 필요합니다.
주의점
작은 값을 다룰 때 언더 플로우를 일으키기 쉽습니다.
확립값의 곱을 할 때 등, 매우 작은 값을 취급하는 경우 언더 플로우를 일으키기 쉽기 때문에, 그 값을 로그에 취한 값으로 변환한다.
대수로서 이용하므로 곱할 때는 덧셈으로 좋지만, 곱할 때에는 logsumexp 등이라는 알고리즘을 이용하는 등의 궁리가 필요하게 된다.
분명히 파이썬 라이브러리에서 직접 사용할 수있는 것 같습니다.
logsumexp
scipy.misc.logsumexp
평가가 어렵다
클러스터링은 일반적으로 정밀도 평가가 어렵다.
평가의 하나로서 정답 클러스터 데이터를 준비하고, 실험에 의한 클러스터링에 의해 얼마나 재현할 수 있는지의 지표를 이용하는 경우도 있다. 이것은 분류의 평가 지표에 가깝다.
다만, 이러한 지표가 자신이 미리 정답 데이터를 준비하기 때문에, 결국 자신이 기대하는 클러스터가 되어 있는지의 측면적인 평가가 된다.
자신의 연구에서는 NMI(Normalize Mutual Information)를 이용하여 클러스터링 평가를 하였다. 일본어에서는 정규화 상호 정보량으로 번역되어 정답 데이터를 준비하고 결과 데이터와의 상호 정보량을 이용하여 정보론적으로 평가하는 수단이다.
구현에서는 Python의 기계 학습 라이브러리 scikit-learn의 normalized_mutual_info_score을 이용했다.
이 지표가 나쁘더라도, 다른 측면에서 보면 아주 좋은 클러스터를 만들 수 있을지도 모른다.
이것은 클러스터링을 연구하는 데 매우 중요합니다.
실험에 의한 지표가 좋지 않아도 실패라고 단정해 버리지 않고, 한 번 관점을 바꾸어 생각해 보는 것이 중요.
클러스터링을 직접 평가하는 것이 아니라, 획득한 클러스터가 다른 태스크에 도움이 된다는 것을 표시함으로써 간접적으로 클러스터링을 평가하는 것도 효과적인 수단이다.
정성적인 평가로서 이쪽도 중요. 결과로도 알기 쉽다.
요약
클러스터링을 다룰 때는 여러 가지 점에 민감하게 생각할 필요가 있다.
특히 가장 일반적인 클러스터링 기법 k-means에서는 어리석게 계산을 하면 계산량은 O(N^2)가 된다.
스케일링하기 위해서는 궁리가 필요하다. (고전적인 개선 방법에서는 초기치 결정에도 계산 처리를 실시하는 k-means++등이 있다)
Reference
이 문제에 관하여(클러스터링의 문제점, 주의점), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kotap15/items/38289edfe822005e1e44
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(클러스터링의 문제점, 주의점), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kotap15/items/38289edfe822005e1e44텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)