소소하지만 소소하지 않은 개발 공부 26

8.2 BoW 모델 소개, 머신러닝교과서, python

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com 8.2.1 단어를 특성 벡터로 변환 사이킷런에 구현된 CounterVectorizer 클래슬르 사용하여 각각의 문서에 있는 단어 카운트를 기반으로 BoW 모델을..

7. 다양한 모델을 결합한 앙상블 학습, 머신러닝교과서, python

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com 7.1 앙상블 학습 앙살블 학습(ensemble learning)의 목표는 여러 분류기를 하나의 메타 분류기로 연결하여 개별 분류기보다 더 좋은 일반화 성능을 ..

6.2 k-겹 교차 검증을 사용한 모델 성능 평가

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. * https://github.com/rickiepark/python-machine-learning-book-3rd-edition GitHub - rickiepark/python-machine-learning-book-3rd-edition: 의 코드 저장소 의 코드 저장소. Contribute to rickiepark/python-machine-learning-book-3rd-edition development by creating an account on GitHub. github.com 모델이 너무 간단하면 과소적합(높은 편향)이 문제가 되고 너무 복잡하면 훈련 데이터에 과대 적합(높은 분산)이 될 수 있다. 적절한 편향-분산 트레이드오프를 찾..

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..

4.6 랜덤 포레스트의 특성 중요도 사용, 머신러닝교과서, python

* 본 포스팅은 머신러닝교과서를 참조하여 작성되었습니다. 4.6 랜덤 포레스트의 특성 중요도 사용 랜덤 포레스트를 사용하면 앙상블에 참여한 모든 결정 트리에서 계산한 평균적인 불순도 감소로 특성 중요도를 측정할 수 있다. 편리하게도 사이킷런의 랜덤 포레스트의 구현은 특성 중요도 값을 이미 수집하고 있다. RandomForestClassifier 모델을 훈련한 후 feature_importances_ 속성에서 확인할 수 있다. 다음 코드에서 Wine 데이터셋에서 500개의 트리를 가진 랜덤 포레스트를 훈련하고 각각 중요도에 따라 13개의 특성에 순위를 매긴다. * 트리 기반 모델은 표준화나 정규화를 할 필요가 없다. from sklearn.ensemble import RandomForestClassifie..

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..