인공지능 27

[인공지능] unsupervised Clustering의 Hierarchical Clustering _이론편 : Dendrogram 이용하기

Hierarchical 은 계급, 계층의란 뜻으로 Hierarchical Clustering은 눈사람 만드는것을 생각하면 쉽다. 작은 눈조각을 굴려 큰 눈사람을 만드듯이, 데이터와 데이터 사이의 거리를 계산해서 가장 가까운 데이터를 한군데에 묶는다. 그 뒤 다시 거리를 재어 가장 가까운 데이터를 한군데에 묶는 작업을 반복한다. 한덩어리가 되면 알고리즘이 종료된다. x축이 데이터 , y축이 데이터 간의 거리로 설정하여 Dendrogram 을 그리면, 몇개의 cluster로 나누는 것이 좋을 지 추측할 수 있다. 아래의 예제를 보자. 예제 데이터는 표와 같다. 자습시간과 성적으로 구성되어 있다. 이 데이터를 가지고 Dendrogram을 그려보았다. Dendrogram 에서 가로선을 그려서 그룹을 나누어보자...

인공지능 2021.11.28

[인공지능] unsupervised Clustering의 K-means_이론편 : WCSS와 Elbow Method를 이용해 K값 정하기

** 이론편에서는 설명을 위해 컬럼을 두개만 썼다. K-means 의 K는 hyper parameters(하이퍼 파라미터)로 사람이 정해주어야 하는 파라미터인데, 몇 개의 집단으로 clustering을 할 것인가를 정하는 파라미터이다. 즉 K가 2라면 2개의 집단(군집)으로, K가 5라면 5개의 군집으로 나누는 것이다. 그러면 데이터가 있을 때 몇개의 군집으로 나누는게 좋을지는 어떻게 알 수 있을 까? unsupervised 의 특성상 답은 없더라도, 아예 무작위로 추측할수는 없는 노릇이다. 따라서 WCSS( within-cluster sums of squares ) 를 Elbow Method라는 방법을 이용해 시각화한 자료로 K값에 대한 추측을 한다. WCSS는 군집 내 제곱합 이라는 뜻인데, 군집내 ..

인공지능 2021.11.28

[인공지능] supervised Classification 의 K-NN(K-Nearest Neighbor)_코드편

** 이 방법을 쓸 때는 사이킷런(sklearn)이 깔려있어야 한다. **이 포스팅은 코드만 쓴 포스팅으로 설명을 보고싶으면 이론편으로 가면 된다. 0. 기본 준비 import numpy as np import matplotlib.pyplot as plt import pandas as pd from sklearn.preprocessing import StandardScaler, MinMaxScaler 1. Feature Scaling : 둘중 하나 선택 -Standardisation (표준화) scaler = StandardScaler() X = scaler.fit_transform(X) -Normalisation (정규화) scaler = MinMaxScaler() X = scaler.fit_trans..

인공지능 2021.11.27

[인공지능] Feature Scaling을 하는 2가지 방법 : Standardisation(표준화), Normalisation (정규화) _코드편

** 이 방법을 쓸 때는 사이킷런(sklearn)이 깔려있어야 한다. **이 포스팅은 코드만 쓴 포스팅으로 설명을 보고싶으면 이론편으로 가면 된다. 0. 기본준비 import numpy as np import matplotlib.pyplot as plt import pandas as pd from sklearn.preprocessing import StandardScaler, MinMaxScaler 1. Standardisation(표준화) s_scaler = StandardScaler() X = s_scaler.fit_transform(X) X 에 표준화할 데이터 프레임을 넣어주면 된다. 2. Normalisation (정규화) m_scaler = MinMaxScaler() X = m_scaler.fi..

인공지능 2021.11.27

[인공지능] Categorical Data를 숫자 데이터로 바꾸는 방법 2가지 : Lable Encoding, One Hot Encoding_코드편

** 이 방법을 쓸 때는 사이킷런(sklearn)이 깔려있어야 한다. **이 포스팅은 코드만 쓴 포스팅으로 인코딩에대한 설명을 보고싶으면 이론편으로 가면 된다. 0. 기본 준비 import numpy as np import matplotlib.pyplot as plt import pandas as pd from sklearn.preprocessing import LabelEncoder, OneHotEncoder from sklearn.compose import ColumnTransformer 1. Lable Encoding encoder = LabelEncoder() X['카테고리컬 데이터'] = encoder.fit_transform(X['카테고리컬 데이터']) X자리에 바꾸고 싶은 데이터 프레임을 '..

인공지능 2021.11.27

[인공지능] Categorical Data를 숫자 데이터로 바꾸는 방법 2가지 : Lable Encoding, One Hot Encoding_이론편

인공지능은 넘파이로 학습을 하기에 문자열 데이터를 바로 학습시킬 수는 없다. 이러한 문자열 데이터를 숫자 데이터로 바꾸는 방법 두가지를 소개하겠다. 1. Lable Encoding 유니크한 카테고리컬 데이터를 알파벳 순서로 정렬하여 순서대로 0부터 숫자를 붙여주는 것이다. 다만 레이블 인코딩의 경우, 3개 이상의 카테고리컬 데이터는 학습이 잘 되지 않는다. 따라서 2개의 카테고리컬 데이터는 레이블 인코딩을, 3개 이상의 카테고리컬 데이터는 One-Hot Encoding 을 사용하면 좋다. 2. One Hot Encoding 원 핫 인코딩의 경우 카테고리컬 데이터의 유니크한 값을 하나하나를 컬럼으로 만드는 것이다. 위의 예제의 경우 아보카도인 경우에는 [1, 0, 0, 0] , 치즈인 경우에는 [0, 1,..

인공지능 2021.11.26