목록PYTHON (60)
도찐개찐
Hierarchical clustering (한글 : 계층적 군집 분석) 은 비슷한 군집끼리 묶어 가면서 최종 적으로는 하나의 케이스가 될때까지 군집을 묶는 클러스터링 알고리즘이다. ex) “진돗개,세퍼드,요크셔테리어,푸들, 물소, 젖소" 를 계층적 군집 분석을 하게 되면 첫번째는 중형견, 소형견, 소와 같은 군집으로 3개의 군집으로 묶일 수 있다. 이를 한번 더 군집화 하게 되면 [진돗개,셰퍼드] 와 [요크셔테리어,푸들] 군집은 하나의 군집(개)로 묶일 수 있다. 마지막으로 한번 더 군집화를 하게 되면 전체가 한군집(동물)으로 묶이게 된다. 이렇게 단계별로 계층을 따라가면서 군집을 하는 것을 계층적 군집 분석이라고 한다. 계층적 군집 분석은 Dendrogram이라는 그래프를 이용하면 손쉽게 시각화 할 ..
덴드로그램 클러스터링의 결과를 시각화하기 위한 대표적인 그래프 중 하나. 계층적 군집분석(hierachical clustering) 방식에 대해 시각화 하는 그래프로 많이 활용 되고 있음. 가까운 두점 혹은 점과 그룹을 묶어 나가면서 그룹을 이루어 나가는 과정을 기각화 한 그래프 Hierarchical clustering (한글 : 계층적 군집 분석) 은 비슷한 군집끼리 묶어 가면서 최종 적으로는 하나의 케이스가 될때까지 군집을 묶는 클러스터링 알고리즘이다. ex) “진돗개,세퍼드,요크셔테리어,푸들, 물소, 젖소" 를 계층적 군집 분석을 하게 되면 첫번째는 중형견, 소형견, 소와 같은 군집으로 3개의 군집으로 묶일 수 있다. 이를 한번 더 군집화 하게 되면 [진돗개,셰퍼드] 와 [요크셔테리어,푸들] 군집..
머신러닝의 종류 지도학습 - 데이터와 정답을 이용해서 패턴/규칙 파악 비지도 학습 - 데이터만을 이용해서 유사도에 따른 패턴/규칙 파악 비지도학습의 대표적인 분석방법 : 군집 k-means 서로 유사성이 높은 것끼리 관측값을 묶어 다수의 그룹으로 만듦 즉, 동일 그룹내 구성원간의 유사성은 높지만 다른 그룹의 구성원과의 유사성은 거의 없도록 하는 것 군집분석 SSW, SSB prototype based 군집 - 여러번 시도후 완성 각 군집이 처음부터 완성(고정)되어 있는 것은 아니고 군집화 시도 횟수에 따라 군집의 유형이 변함 활용분야 소비자유형 파악 - 타겟 마케팅 적용 범죄율이 높은 지역 검출 이미지/얼굴/손글씨 인식 - SVM 유전자 검사/지리정보를 이용해서 지형 탐사 import numpy as n..
■ 데이터를 보다 잘 이해하기 위해 하는 클러스터링(Clustering) 클러스터링은 어떤 데이터가 주어졌을 때 1) 하나의 군집에 있는 각 데이터 포인트가 서로 비슷하고 2) 다른 군집에 있는 데이터와는 다르게 데이터를 분류해주는 작업이다. 이미 주어져 있는 데이터를 가지고 군집을 만들기 때문에 기술(descriptive)적인 분석을 가능하게 해준다. 아래 그림에서 오른쪽은 색깔로 레이블이 표시된 실제 데이터이다. 그렇지만 만약 각 데이터의 정체를 모른다면? 그림의 왼쪽과 같이 가까운 데이터끼리 묶는 작업이 필요하다. 물론 현실에서 데이터가 저렇게 예쁘게 거리를 두고 있기 만무하지만, 하나의 군집 내 데이터끼리의 거리를 최소화(빨간 화살표의 길이)하고, 각 군집끼리의 거리(파란 화살표의 길이) 를 최대..
부스팅boosting 배깅처럼 무작위로 표본을 추출해서 분석하는 것보다 약간의 가능성이 높은 규칙들을 결합시켜 보다 정확한 예측모델을 만들어 내는 것을 의미 즉, 약한 모델 여러개를 결합시켜 강한 모델을 만들어 냄 배깅은 여러 분류기를 병렬적으로 연결해서 각 분류기로 부터 얻어진 결과를 한번에 모두 고려 => 각 분류기가 학습시 상호 영향을 주지 않음 부스팅은 순차적으로 연결해서 전 단계 분류기의 결과가 다음 단계 분류기의 학습과 결과에 영향을 미침 부스팅 기법 종류 AdaBoost : 가중치 기반 부스팅 기법 Gradientboost : 잔여오차 기반 부스팅 기법 XGBoost : GB 개량 부스팅 기법 (추천!) LightGBM : XGB 개량 부스팅 기법 (추천!) import numpy as np..
랜덤포레스트 앙상블 학습 알고리즘 중 대표적인 학습 알고리즘 여러 개의 의사결정나무들을 생성한 다음, 각 개별 트리의 예측값들 중에서 가장 많이 선택된 클래스로 예측하는 알고리즘 물론, 배깅분류기에 의사결정트리를 넣는 대신 결정트리에 최적화되어 있는 포레스트분류기를 사용 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selection import train_test_split from sklearn.ensemble import VotingClassifier from sklearn.ensemble import RandomForestClassifier fr..
배깅bagging boostrap aggregating 보통 구축한 트리에는 랜덤성이 없는데 랜덤한 데이터를 이용해서 트리를 구성하는 방법은? 훈련 데이터셋에서 중복을 허용하여 무작위 추출sampling => 배깅 통계학에서 샘플데이터의 수가 적거나 샘플이 치우쳐 있는 경우에는 과적합의 문제 발생 머신러닝의 경우에도 학습데이터의 양이 작거나 너무 학습데이터에 특화해서 학습하게 되면 학습데이터에 대해 좋은 결과를 내지만 실제 데이터에서는 성능이 좋지 않게 나올수 있음(과적합) 부트스트래핑boostraing 전체 모집단의 분포를 확실하게 알 수 없는 경우에 표본을 취한후 그 표본이 전체 집단을 대표한다는 가정하에 전체 분포를 유추하는 방법 이때 표본으로부터 많은 횟수에 걸쳐 샘플을 복원추출한 후 각 샘플에 ..
앙상블 기법 무작위로 선택된 수천명의 사람들에게 복잡하거나 어려운 질문을 하고 대답을 모은다고 가정 이렇게 모아진 답은 한명의 전문가의 답보다 나을 수 있음 집단지성, 대중의 지혜 이처럼 일련의 분석기/예측기로 부터 예측을 수집하면 가장 좋은 하나의 모델보다 더 좋은 예측을 얻을 수 있음 일련의 분석기/예측기 => 앙상블 앙상블을 통해 학습 => 앙상블 학습 앙상블 학습 알고리즘 => 보팅, 베깅, 부스팅, 스태킹 머신러닝 경진대회(kaggle, 공모전)에서 우승하고 싶다면? => 여러 앙상블 방법을 이용! 투표기반 분류기votting 정확도가 좋은 분류기 여러개를 이용해서 학습시킴 => 로지스틱/SVM/랜덤포레스트/K최근접이웃 등등 각 분류기로 부터 예측을 모아 가장 많이 선택된 클래스를 예측함 => ..