전체 글

개발자를 꿈꾸는 블로그입니다.
프로그래밍 공부/인공지능

MNIST 데이터 셋과 t-SNE, PCA, LLE, MDS 차원 축소

머신러닝의 수 많은 알고리즘은 고차원의 공간에 벡터 형식으로 정보를 저장하곤 하는데, 수 백 천 만 되가는 차원을 그대로 이해하기엔 인간의 뇌는 버겁다. 그래서 이를 해결하려고 고차원 공간을 2차원으로 압축하고 시각화 할 수 있는 임베딩 방법들이 이용되고는 한다. 임베딩 방법은 현재도 많이 연구되고 있으며, 제목에 적혀있듯 t-SNE, PCA, LLE, MDS 이 네 가지 방법을 살펴보도록 하려고 합니다. 우선 간단하게 각 임베딩 방법을 설명하자면 t-SNE: t-Stochastic Neighbor Embedding, t-분포 확률적 임베딩, 2008년에 제안된 방법이며 Student 라는 가명의 학자가 발표한 t-분포에서 이름을 따왔다고 한다. t-SNE는 고차원의 벡터로 표현되는 데이터 간의 neig..

프로그래밍 공부/인공지능

엑스트라 트리 모델 직접 구현해보기

엑스트라 트리(Extra Tree)란? 이전 글에 랜덤 포레스트가 특성을 기반으로 결정 트리를 무작위로 선택하는 것이였다면, 엑스트라 트리는 특성 또한 무작위로 선택하게 된다. 즉 무작위성을 더 추가한다는 뜻 어렵게 말하면 후보 특성을 무작위로 분할하여 최적의 분할을 찾는 것이다. 이렇게 진행하면 랜덤 포레스트 모델보다 특성에 대한 중요도(의존도)가 커져 성능은 낮아질 지 언정, 과대적합을 방지하고 검증 세트 점수를 향상시킬 수 있다. 무작위성이 더 크기 때문에 속도도 빠르다. 이 정도만 알고 가도 코드 이해하는 데는 문제가 없을 것 같으니 바로 구현으로~~ 기본 설정 필수 모듈 불러오기 그래프 출력 관련 기본 설정 지정 In [ ]: pip install mglearn In [ ]: # 파이썬 ≥3.5..

프로그래밍 공부/인공지능

랜덤 포레스트, 스태킹 모델 직접 구현해보기

설명하기 앞서 랜덤 포레스트와 스태킹 모델에 대해서 설명하자면 다음을 이해하면 된다. 랜덤포레스트(Random Forest)란? 우리는 머신러닝으로 데이터 속 특성(Feature)을 수정하거나 결정하는 것을 알 수 있다. 이 특성 정보를 기반으로 데이터를 분리하는 과정을 의사 결정 트리(Decision Tree)라고 한다. 보통 나무(Tree)들이 모여있는 장소를 숲(Forest)이라고 하는데, 랜덤 포레스트(Random Forest)는 이런 의사 결정 트리(Decision Tree)가 모여있는 장소라고 생각하면 된다. 의사 결정 트리에서 한 두가지 요소로 결정하는 것 보다 여러가지 요소를 통해 결정할수록 더 자세한 예측을 할 수 있을 것이다. 그치만 수많은 요소(Feature)들을 가지고 하나의 결정 ..

프로그래밍 공부/인공지능

낮, 밤, 실내, 실외 구분 모델 구현(진짜 맛보기)

기본 설정 필수 모듈 불러오기 그래프 출력 관련 기본 설정 지정 In [ ]: # 파이썬 ≥3.5 필수 import sys assert sys.version_info >= (3, 5) # 사이킷런 ≥0.20 필수 import sklearn assert sklearn.__version__ >= "0.20" # 공통 모듈 임포트 import numpy as np import os # 노트북 실행 결과를 동일하게 유지하기 위해 np.random.seed(42) # 깔끔한 그래프 출력을 위해 %matplotlib inline import matplotlib as mpl import matplotlib.pyplot as plt mpl.rc('axes', labelsize=14) mpl.rc('xtick', lab..

티키택
택택