Introduction to Machine Learning with Python¶Chapter 3. 비지도 학습과 데이터 전처리¶ 주성분 분석 (PCA)¶ 개념¶ PCA : Principal Component Analysis 기존의 데이터는 속성 하나하나가 좌표축으로 이루어진 다차원 공간에 위치하고 있습니다. 속성들은 둘 간에 서로 연관되어 있는데 이를 수치화한 것을 상관계수(Correlation Coefficient) 라고 합니다. 이를 확장하여 모든 속성들을 고려했을 때, 가장 전체 데이터를 잘 표현할 수 있는 방향(벡터)를 찾을 수 있을 것입니다. 이렇게 모든 속성에서 가장 중요한 방향(주성분)을 찾아 나가는 것을 PCA 라고 합니다. 다르게 표현하면 전체 데이터에서 가장 분산이 큰 방향 을 찾는 ..
Introduction to Machine Learning with Python¶Chapter 3. 비지도 학습과 데이터 전처리¶ DBSCAN 군집화¶ DBSCAN 은 반지름과 샘플갯수가 주어지면 그 반지름 안에 해당 샘플갯수만큼 있는 이웃을 확장해 나가는 군집 알고리즘이다. 아래 그림은 샘플갯수가 4개, 반지름이 $\epsilon$ 인 경우이다. 빨간 점은 핵심샘플, 노란 점은 경계샘플, N은 잡음샘플 이다. (출처: https://en.wikipedia.org/wiki/DBSCAN) In [1]: import numpy as np import numpy as pd import matplotlib.pyplot as plt In [2]: from sklearn.datasets import make_blo..
Introduction to Machine Learning with Python¶Chapter 3. 비지도 학습과 데이터 전처리¶ 군집 (Clustering)¶ 군집은 비지도 학습의 대표적인 방법이다. 많은 데이터가 주어졌을 때, 이들을 특징적인 몇몇 그룹으로 구분해 주는 기술이다. 사실 군집은 지도학습 보다 먼저 수행되는 것이라고 할 수 있다. 역사적으로 초기 공룡 연구자 들이라면 여러 공룡 화석을 수집한 다음 이를 적절히 군집 기술을 이용해 구분함으로서 공룡의 이름을 부여할 수 있었을 것이다. 이렇게 이름(타겟값)을 지정한 다음에 새로운 화석이 나타나면 회귀나 분류를 이용하여 이 화석을 구분할 수 있었을 것이다. 특징적인 그룹으로 구분해 주는 여러가지 군집 모델들 (출처: wikipedia) k-me..
Introduction to Machine Learning with Python¶Chapter 3. 비지도 학습과 데이터 전처리¶ 스케일 조정¶ 커널 SVM 을 배우면서, 데이터 속성들의 스케일 조정이 중요하다는 점을 강조했습니다. 일반적으로 다차원 공간상의 거리(distance) 가 중요한 모델에서는 모두 스케일 조정이 필요합니다. 구체적인 데이터를 다룰 때, 스케일 조정이 필요한지 아닌지 판단하는 것이 가장 우선되어야 할 요소입니다. 대표적인 스케일 조정 방식¶ StandardScaler : 각 속성들을 평균이 0, 표준편차가 1이 되도록 조정 MinMaxScaler : 최소값이 0, 최대값이 1이 되도록 비율을 조정 Normalizer : 속성(열)이 아니라 각각의 샘플(행)의 유클리디안 길이가 1..
Introduction to Machine Learning with Python¶Chapter 2. 지도학습¶ 비선형 회귀¶ In [2]: import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split In [3]: from sklearn.datasets import load_breast_cancer cancer = load_breast_cancer() In [4]: col1 = 0 col2 = 6 plt.scatter(cancer.data[:,col1], cancer.data[:,col2], c= cancer.target, alpha=0.3) O..
Introduction to Machine Learning with Python¶ Chapter 2. 지도학습¶ 선형회귀의 개선 모델들 (릿지와 라쏘)¶ 선형회귀에서는 MSE(Mean Sqaured Error) 를 최소화 하는 기울기(w)와 절편(b) 를 찾는다고 했다. 릿지(Ridge) 와 라쏘(Lasso) 는 오차값에 규제(Regulation) 항 또는 벌점(Penalty) 항을 추가해서, 좀 더 단순화된 모델 또는 일반화된 모델을 제공하는 방법이다. 이렇게 단순하거나 일반화된 모델에서는 훈련세트에 덜 과대적합되어, 테스트세트에 좀 더 적합한 모델을 만들 수 있습니다. $ MSE = {1 \over N} \sum_{i=0}^{N-1} (y_i - \hat{y}_i)^2 $ $ = {1 \over N}..
Introduction to Machine Learning with Python¶ Chapter 2. 지도학습¶ 경사 하강법 (Gradient Descent)¶ 경사하강법은 예측함수를 만들고, 훈련데이터에 대한 예측결과 오류를 점점 줄여나가는 방법이다. 선형회귀에서 속성이 하나일 때, 즉 키가 입력값이고 몸무계가 목표값일 때를 예로 들자. $ \hat{y} = w x + b $ 이 경우, 목표값인 $ y $ 에 예측값인 $ \hat{y} $ 가 최대한 근접하도록 $w$ 와 $b$ 값을 구해야 한다. $y$ 와 $\hat{y}$ 의 오류를 수치화한 값이 앞에서 배운 MSE(Mean Squared Error) 이다. $ MSE = {1 \over N} \sum_{i=0}^{N-1} (y_i - \hat{y}..
Introduction to Machine Learning with Python¶ Chapter 2. 지도학습¶ 나이브 베이즈 (Naive Bayes)¶ 나이브 베이즈는 통계수학에 기반한 머신러닝 알고리즘 입니다. 핵심 이론은 베이즈 방정식입니다. 집합 A 와 B 의 교집합 $ A \cap B $ $ A \cap B = P(A \vert B) P(B) = P(B \vert A) P(A) $ $ P(A \vert B) = { {P(A) P(B \vert A)} \over P(B) }$ 나이브 베이즈에서는 각 속성을 독립적이라고 가정한다. 자세한 공식은 아래와 같다. (출처 : http://scikit-learn.org/stable/modules/naive_bayes.html) 나이브 베이즈는 언어와 관련된..