handson-ml 6

[요약] 핸즈온 머신러닝 - 06. 결정 트리

(이진)결정트리 개념 매 노드마다 참 / 거짓을 분류하는 2진 트리를 만든다. 부모 노드는 어떤 특성에 대한 조건을 만들고 이에 대한 참 / 거짓 자식 노드를 가진다. 만약 자식 노드에서 참 / 거짓을 분류할 적절한 조건을 찾지 못했다면 리프노트가 되며 class 를 예측한다. 이 과정을 모든 자식 노드가 리프노드가 될때 까지 또는 지정한 depth 에 도달할 때 까지 반복한다. 노드의 구성 sample : 노드에 해당하는 훈련 샘플 개수. value : 노드에 속한 샘플의 클래스별 개수. gini : 불순도. 특징 직관적이고, 시각적이며, 결정의 사유가 명확하다(= 화이트박스 모델). 데이터 전처리가 거의 필요하지 않다. 학습이 완료되기 전 까지 클래스의 개수를 예측할 수 없다. 불안정하다 샘플 데이터..

[요약] 핸즈온 머신러닝 - 05. SVM

SVM 기본 성질과 특성 클래스 사이에 가장 넓은 마진을 가지는 분류기를 찾는 과정 (= large margin clasification). 결정경계는 경계에 위치한 샘플에 의해 전적으로 결정 : 이 샘플이 서포트 벡터 SV. 마진 밖에 위치한 훈련 샘플은 결정 경계에 영향을 주지 않음. 스케일에 민감 : 스케일링에 따라 SV 의 개수가 달라질 수 있고, 마진의 폭이 달라질 수 있으며, 결정경계의 기울기가 달라진다. 구분 하드 마진 분류 모든 샘플이 마진 영역 밖에 위치. 이상치에 민감 하드 마진 분류가 불가능 할 수 있다. 일반화가 어려운 결정경계가 성립할 수 있다. 소프트 마진 분류 마진의 크기와 마진오류의 트레이드 오프. 마진 오류가 있더라도 일반화가 쉬운 적절한 결정 경계를 구함. "최적 해"를 ..

개발/머신러닝 2022.05.24

[요약] 핸즈온 머신러닝 - 04. 모델 훈련

선형 회귀 정의 선형 회귀 모델의 예측 정의 $\hat{y} = \theta_{0} + \theta_{1}x_{1} + \theta_{2}x_{2} + ... + \theta_{n}x_{n} = \sum_{i=0}^{n}\theta_{i}x_{i} = h_{\theta}(\textbf{x}) = \Theta\cdot\textbf{x}$ $\hat{y}$ = 예측값. $x_{i}$ =$i$ 번째 특성 값. 단 $x_{0} = 1$. $\theta_{i}$ =$i$ 번째 모델 파라미터. $\theta_{0}$ 은 편향 또는 bias 라 부른다. $h_{\theta}(\textbf{x})$ = 가설함수. 벡터 표현 머신러닝에서는 계산의 편의를 위해 변수를 열벡터로 나타낸다. 따라서 모든 훈련 세트 $X$ 에 ..

개발/머신러닝 2022.05.06

[요약] 핸즈온 머신러닝 - 03. 분류

MNIST MNIST 는 손으로 쓴 숫자 70000개 데이터로 ML 계의 hello world 라고 할 법 하다. 70,000개 (훈련 60천개, 테스트 10천개)의 28 * 28 이미지와 레이블로 구성되어있다. https://openml.org 을 통해 제공받을 수 있다. sklearn 은 fetch_openml 함수를 제공한다. 이진 분류기 훈련 확률적 경사하강법 (SGD) 경사하강법의 한계 인식 학습률 작으면 : 시간 많이 걸리고, 지역 최적값에 수렴할 위험. 학습률이 크면 : 시간이 적게 걸리지만, 발산할 위험 있음. 매 배치마다 랜덤하게 선택한 점을 대상으로 경사 하강법을 수행. 경사하강법 대비 매우 빠르지만, 매우 불안정함. 불안정한 대신 지역 최적값을 회피할 가능성이 높음. 랜덤 데이터 --..

카테고리 없음 2022.05.04

[요약] 핸즈온 머신러닝 - 02. 머신러닝 프로젝트 처음부터 끝까지

예제 시나리오를 통해 머신러닝의 일반적인 프로젝트 진행 순서를 훑어본다. 1. 큰 그림을 본다. 2. 데이터를 구한다. 3. 데이터를 탐색하고 시각화 하여 특성을 파악한다. 4. 데이터를 정제한다. 5. 모델을 선택하고 훈련한다. 6. 모델을 튜닝한다. 7. 솔루션을 제시한다. 8. 운영, 유지 그리고 보수. 큰 그림을 본다 문제 정의 목적을 정확히 파악한다. 현재 시스템이 어떻게 구성되어있는지를 파악한다. 문제 유형을 파악한다 : 지도여부는? 알고리즘 유형은? 학습형태는? 성능 측정 지표 선택 RMSE MAE 아니면 다른것? 가정 검사 "내가 내린 가정"이 머신러닝 파이프라인에 어떤 영향을 주고 받을지를 미리 검토해본다. 입력 데이터가 예상과 다르게 들어올 수 도 있고, 출력 데이터를 사용하는 시스템에..

개발/머신러닝 2022.04.21

[요약] 핸즈온 머신러닝 - 01. 한눈에 보는 머신러닝

머신러닝의 공학적 정의 어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정P에 대해 경험 E로 학습한 것이다. by Tom Mitchell, 1997 머신러닝을 사용하는 이유 규칙이 동적으로 변할 필요가 있는 문제를 풀때. 전통적인 방식으로는 너무 복잡하거나, 알고리즘이 없는 문제를 해결할때. 대용량 데이터를 분석하여 보이지 않는 규칙을 도출할때. 머신러닝 시스템의 종류 사람의 감독 여부 머신러닝 시스템을 훈련하기 위한 데이터들(훈련 세트)이 주어질때 각 데이터에 정답을 표기한 경우 그 정답을 레이블 이라고 한다. 구분 비지도 학습 준지도 학습 지도학습 강화 학습 레이블 없다 일부 있다 전부 있다 계속 추가한다. ..

개발/머신러닝 2022.04.14