머신러닝교과서 18

5.3 커널 PCA를 사용하여 비선형 매핑, 머신러닝교과서, python

*본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. 5.3 커널 PCA를 사용하여 비선형 매핑 실전 애플리케이션에서는 비선형 문제를 더 자주 맞닥뜨린다. 이런 비선형 문제를 다루어야 한다면 PCA와 LDA 같은 차원 축소를 위한 선형 변형 기법은 최선의 선택이 아니다. 5.3.1 커널 함수와 커널 트릭 3장에서 커널 SVM에 관해 배운 것을 떠올려 보면 비선형 문제를 해결하기 위해 클래스가 선형으로 구분되는 새로운 고차원 특성 공간으로 투영할 수 있다. 즉, 커널 PCA를 통한 비선형 매핑을 수행하여 데이터를 고차원 공간으로 변환한다. 그 다음 고차원 공간에 표준 PCA를 사용하여 샘플이 선형 분류기로 구분될 수 있는 저차원 공간으로 데이터를 투영한다. 이 방식의 단점은 계산 비용이 아주 비싸다는 것..

5.차원 축소를 사용한 데이터 압축, 머신러닝교과서, python

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. 5.1 주성분 분석을 통한 비지도 차원 축소 특성 선택 vs 특성 추출 - 원본 특성을 유지한다면 특성 선택 - 새로운 특성 공간으로 데이터를 변환하거나 투영한다면 특성 추출 특성 추출은 대부분의 관련 있는 정보를 유지하면서 데이터를 압축하는 방법이다. 이는 저장 공간을 절약하거나 학습 알고리즘의 계산 효율성을 향상시키고 차원의 저주(curse of dimensionality) 문제를 감소시켜 예측 성능을 향상시키기도 한다. 5.1.1 주성분 분석의 주요 단계 PCA : 비지도 선형 변환 기법 PCA를 많이 사용하는 애플리케이션에는 탐색적 데이터 분석과 주식 거래 시장의 잡음 제거, 생물정보학 분야에서 게놈(genome) 데이터나 유전자 발현(ge..

Chapter3.7 k-최근접 이웃: 게으른 학습 알고리즘, 머신러닝교과서, python

* 본 포스팅은 머신러닝교과서를 참고하여 작성되었습니다. 3.7 k-최근접 이웃: 게으른 학습 알고리즘 이번 장에서 언급할 마지막 지도 학습 알고리즘은 k-최근접 이웃(K-Nearest Neighbor, KNN)이다. KNN은 전형적인 게으른 학습기(lazy learner)이다. 단순하기에 게으르다고 말하는 것이 아니라 알고리즘은 훈련 데이터에서 판별 함수(discriminative functioin)를 학습하는 대신 훈련 데이터셋을 메모리에 저장하기 때문이다. KNN 알고리즘은 매우 간단해서 다음 단계로 요악할 수 있다. 숫자 k와 거리 측정 기준을 선택한다. 분류하려는 샘플에서 k개의 최근접 이웃을 찾는다. 다수결 투표를 통해 클래스 레이블을 할당한다. - 선택한 거리 측정 기준에 따라 KNN 알고리..

Chapter 3.6 결정 트리 학습, 머신러닝교과서, pyhon

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다 3.6 결정 트리 학습 결정 트리(decision tree) 분류기는 설명이 중요할 때 아주 유용한 모델이다. 결정 알고리즘을 사용하면 트리의 루트(root)에서 시작해서 정보 이득(Information Gain)이 최대가 되는 특성으로 데이터를 나눈다. 반복 과정을 통해 리프 노드(leaf node)가 순수해질 때까지 모든 자식 노드에서 이 분할 작업을 반복한다. 트리의 최대 깊이를 제한하여 가지치기(pruning)를 한다. 3.6.1 정보 이득 최대화: 자원을 최대로 활용 import matplotlib.pyplot as plt import numpy as np def gini(p): return p * (1 - p) + (1 - p) * (1 ..

Chapter 3.4 서포트 벡터 머신을 사용한 최대 마진 분류, 머신러닝교과서, python

* 본 포스팅은 머신러닝 교과서를 참고하여 작성되었습니다. 3.4 서포트 벡터 머신을 사용한 최대 마진 분류 서포트 벡터 머신(Support Vector Machine, SVM) : SVM은 퍼셉트론의 확장으로 생각 할 수 있다. SVM의 최적화 대상은 마진을 최대화 하는 것이다. 3.4.1 최대 마진 큰 마진(large margin)의 결정 경계를 원하는 이유는 일반화 오차가 낮아지는 경향이 있기 때문이다. 반면 작은 마진의 모델은 과대적합되기 쉽다. 3.4.2 슬랙 변수를 사용하여 비선형 분류 문제 다루기 슬랙변수 : 오류를 허용하는 '직선', 소프트 마진 분류(soft margin classification) 슬랙 변수는 선형적으로 구분되지 않는 데이터에서 선형 제약 조건을 완화할 필요가 있기 때문..

Chapter3.3 로지스틱 회귀 모델을 사용한 클래스 확률 모델링, 머신러닝 교과서, python

으* 본 포스팅은 머신러닝 교과서를 참조하여 작성되었습니다! 3.3 로지스틱 회귀 모델을 사용한 클래스 확률 모델링 퍼셉트론 규칙은 머신 러닝 분류 알고리즘을 배우기에 간단하고 좋은 모델이지만 가장 큰 단점은 클래스가 선형적으로 구분되지 않을 때 수렴할 수 없다. 여전히 간단하지만 선형 이진 분류 문제에 더 강력한 다른 알고리즘은 로지스틱 회귀(logistic Regression)을 살펴보자. * 이름이 회귀이지만 로지스틱 회귀는 회귀가 아니라 분류모델이다! 3.3.1 로지스틱 회귀의 이해와 조건부 확률 오즈비(odds ratio) : 오즈는 특정 이벤트가 발생할 확률이다. - logit 함수는 0과 1 사이의 입력값을 받아 실수 범위 값으로 반환한다. - 이 함수를 로지스틱 시그모이드 함수(logist..

Chapter3 머신러닝 교과서, python

본 포스팅은 머신러닝 교과서를 참고하여 작성되었습니다. 3.1 분류 알고리즘 선택 알고리즘을 훈련하기 위한 다섯 가지 주요 단계 특성을 선택하고 훈련 샘플을 모은다. 성능 지표를 선택한다. 분류 모델의 최적화 알고리즘을 선택한다. 모델의 성능을 평가한다. 알고리즘을 튜닝한다. 3.2 사이킷런 첫걸음 : 퍼셉트론 훈련 사이킷런 라이브러리를 사용해 퍼셉트론 훈련을 해보자 150개의 꽃 샘플에서 꽃잎 길이와 꽃잎 너비를 특성 행렬 X에 할당하고 꽃 품종에 해당하는 클래스 레이블을 벡터 y에 할당한다. from sklearn import datasets import numpy as np iris = datasets.load_iris() X = iris.data[:, [2,3]] y = iris.target pr..

머신러닝 교과서, 2.2, python

*본 포스팅은 머신러닝 교과서를 참고하여 작성되었습니다~! 2.2 파이썬으로 퍼셉트론 학습 알고리즘 구현 2.2.1 객체 지향 퍼셉트론 API import numpy as np class Perceptron(object): """퍼셉트론 분류기 매개변수 --------------- eta : float 학습률 (0.0과 1.0 사이) n_iter : int 훈련 데이터셋 반복 횟수 random_state : int 가중치 무작위 초기화를 위한 난수 생성기 시드 속성 --------------- w_ : 1d-array 학습된 가중치 errors_ : list 에포크마다 누적된 분류 오류 """ def __init__(self, eta=0.01, n_iter=50, random_state = 1): sel..