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..
스택 & 큐¶ 스택(stack)¶ 나중에 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조로 Last In First Out (LIFO)로 구현됨 Data의 입력을 Push, 출력을 Pop라 한다. exmaple1 In [1]: a = [1,2,3,4,5] 리스트 a에 10을 넣자 In [2]: a.append(10) 리스트 a에 20을 넣자 In [3]: a.append(20) 리스트 a에서 마지막에 넣은 값을 출력하자 In [5]: a.pop() Out[5]: 20 리스트 a에서 마지막에 넣은 값을 출력하자 In [6]: a.pop() Out[6]: 10 example2 In [8]: word = input('Input a word: ') world_list = list(word) fo..
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..
[서울시 먹거리 분석 – 3] 전체 판매업종 이용 통화량 분석¶ sk datahub에서 배달 업종 데이터를 한번에 모아 분석해 보았다. 해당 자료는 경제/사회>경제에 있으며 링크는 https://www.bigdatahub.co.kr/product/list.do?menu_id=1000153 이다. 처음에는 데이터가 480만개 정도 됐는데, 데이터들을 처리하는 과정에서 groupby를 해버렸더니 18만개 정도로 줄어버렸다. 우선 이 정도 해놓고 시간이 날 때 다른 데이터들과 결합해서 분석해보겠다. In [2]: import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib as mpl import seaborn ..
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}..