머신러닝 교과서 with 파이썬, 사이킷런, 텐서플로(9)
-
[9] 누락된 데이터 다루기 (파이썬 데이터분석, 머신러닝)
누락된 데이터 다루기 - 누락된 데이터는 크게 두 가지 방식으로 다룰 수 있다. 1. 누락된 데이터가 있는 표본(Row, Sample)이나 열(Column, feature)을 삭제한다. 2. 보간기법을 사용해 누락된 데이터를 예측한다. - 평균, 중간값, 빈도수, 상수 등을 사용한다. 코드를 활용해 한번 확인해보자. 0. 누락된 데이터가 포함된 데이터 프레임 생성 필요한 라이브러리 불러오기 import pandas as pd # 데이터프레임 만들 때 사용 import numpy as np # 벡터연산을 위해 사용 from sklearn.impute import SimpleImputer # 보간기법에 사용 from io import StringIO # 데이터프레임 만들 때 활용 누락된 데이터가 포함된 데이..
2021.02.05 -
[8] K-최근접 이웃(KNN) 이해하기
KNN KNN은 전형적인 게으른 학습기(Lazy learner)에 속한다. 즉, 훈련데이터에서 판별함수를 학습하는 대신 훈련 데이터셋을 메모리에 저장하여 학습을 진행한다. 덕분에 학습 과정에서 비용이 전혀 들지 않는다. 대신 예측 단계에서의 계산 비용이 높다. 메모리 기반 방식의 분류기는 수집된 새로운 훈련 데이터에 즉시 적응할 수 있다는 장점이 있다. 하지만 대규모 데이터 셋에서 작업한다면 저장 공간에 문제가 생길 수 있다. 모수 모델과 비모수 모델 모수 모델은 새로운 데이터 포인트를 분류할 수 있는 함수를 학습하기 위해 훈련 데이터셋에서 모델 파라미터를 추정(타깃을 예측)하는 모델을 말한다. 대표적인 모수 모델에는 퍼셉트론, 로지스틱 회귀, 선형 SVM이 있다. 비모수 모델은 고정된 개수의 파라미터로..
2021.01.17 -
[7] 랜덤 포레스트에 대해서
랜덤포레스트는 의사결정나무의 앙상블로 생각할 수 있다. 개개의 의사결정나무는 분산이 높은 문제가 있기 때문에 여러 의사결정나무의 평균을 내어 일반화 성능을 높이고 과대적합의 위험을 줄이는 것이 랜덤포레스트의 목표이다. 랜덤포레스트의 학습 과정 1. 훈련세트에서 중복을 허용하여 n개의 랜덤한 부트스트랩 샘플을 뽑는다. 2. 부트스트랩 샘플에서 의사결정나무를 학습한다. a. 중복을 허용하지 않고 랜덤하게 d개의 특성을 선택한다. b. 정보 이득과 같은 목적 함수를 기준으로 최선의 분할을 만드는 특성을 사용해 노드를 분할한다. 3. 1, 2번의 단계를 k번 반복한다. 4. 각 의사결정나무의 예측을 모아 다수결 투표로 클래스 레이블을 할당한다. 랜덤포레스트의 특징 - 의사결정나무와는 다르게 학습 시 랜덤한 d개..
2021.01.07 -
[6] 의사결정나무의 정보이득과 불순도
의사결정나무는 일정 기준을 통해 클래스를 분류해나가는 모양이 나무와 같다고 해서 붙여진 이름이다. 의사결정나무의 분류 기준은 정보 이득(information gain)이다. 정보 이득은 불순도를 토대로 결정지을 수 있다. 이름에서도 알 수 있듯이 불순도는 해당 노드(node)에 얼마나 다양한 클래스가 섞여있는지에 대한 지표이다. \( IG(D_p,f) = I(D_p) - \sum_{j=1}^{m}\frac{N_j}{N_p}I(D_j) \) 정보 이득 f : 분할에 사용할 특성 \(D_p\)와 \(D_j\) : 부모와 j번째 자식 노드의 데이터셋 I : 불순도 지표 \(N_p\) : 부모 노드에 있는 샘플 개수 \(N_j\) : j번째 자식 노드에 있는 샘플 개수 간단하게 설명하자면 자식 노드들의 불순도 ..
2021.01.06 -
[5] 커널 SVM을 활용한 비선형 문제 해결하기
선형 SVM과 회귀분석과 같은 알고리즘은 비선형으로 구별되는 클래스를 구분 짓지 못한다. 이때 매핑함수\(\phi\)를 활용한 커널 방식을 사용한다면 비선형 문제를 해결할 수 있다. 매핑 함수를 활용해 원본 특성의 비선형 조합을 선형적으로 구분되는 고차원 공간에 투영시키고 이 공간에서의 초평면을 구분한 뒤 다시 원본 특성 공간으로 돌리면 비선형 결정 경계를 구분 지을 수 있게 된다. Ex) \(\phi(x_1,x_2) = (z_1,z_2,z_3) = (x_1,x_2,x_1^2+x_2^2)\) '2차원 -> 3차원 -> 2차원'의 투영 과정을 통해 결정 경계를 정의할 수 있다. 다만 매핑 함수의 문제점은 새로운 특성을 만드는 계산 비용이 매우 비싸다는 점이다. 특히 고차원 데이터일 경우에는 계산 비용이 더..
2021.01.04 -
[4] 서포트 벡터 머신(SVM) 원리 이해하기 (선형)
SVM의 최적화 대상은 마진을 최대화하는 것이다. 마진 : 클래스를 구분하는 초평면(결정 경계)과 이 초평면에 가장 가까운 훈련 샘플 사이의 거리 * 결정 경계 : 클래스를 구분짓는 경계 큰 마진의 결정경계는 일반화 오차가 낮아지는 경향이 있다. 반면 작은 마진의 결정경계는 과대적합되기 쉽다. 때문에 클래스를 구분짓는 경계와 이 경계와의 거리가 가장 가까운 훈련 샘플 사이의 거리가 멀도록 하는 것이 최적화의 목적이다. 다시 말해, 클래스를 잘 구분 지을 수 있는 경계를 찾는 것이 SVM의 역할이다. 결정 경계와 나란히 놓인 초평면 $$ (1) 결정 경계 W^t X = 0 $$ $$ (2) 양성 샘플쪽의 초평면 W^T X_{pos} = 1 $$ $$ (3) 음성 샘플쪽의 초평면 W^T X_{neg} = -..
2020.12.31