일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 손실함수
- Python
- 지도학습
- 시계열 데이터
- time series
- LogisticRegression
- 하이퍼파라미터
- 결정계수
- 선형회귀분석
- dataframe
- machinelearning
- 의사결정나무
- 데이터전처리
- 분류
- scikitlearn
- GridSearchCV
- 비지도학습
- OrdinalEncoder
- 딥러닝
- LinearRegression
- ML
- deeplearning
- 데이터분석
- 단순선형회귀분석
- 시계열데이터
- 로지스틱회귀분석
- 잔차분석
- 다중선형회귀분석
- RegressionTree
- DataScience
- Today
- Total
IE가 어른이 되기까지
[Machine Learning] 군집분석 Scikit Learn으로 구현하기 본문
https://piscesue0317.tistory.com/49
[Machine Learning] 군집분석 (비지도학습 / 데이터 축소)
이번 글에서는 '군집분석' 알고리즘에 대해 알아보도록 하겠습니다. 군집분석이란 ? 군집분석은 y 레이블이 없는 비지도 학습니다. 위 그림을 통해 알아봅시다. 원 안의 점들은 어떠한 색을 띄지
piscesue0317.tistory.com
먼저, 위 글은 군집분석에 대한
이론을 설명하고 있습니다.
https://piscesue0317.tistory.com/32
[Machine Learning] Scikit - Learn을 이용한 데이터 분석 (지도학습 / 분류)
Machine Learning (머신러닝) 이란 기계가 스스로 학습하는 것을 의미합니다. 특히 사람이 지정해준 규칙이나 모델을 스스로 학습하게 됩니다. https://piscesue0317.tistory.com/27 [Data Science] 지도학습과 비지
piscesue0317.tistory.com
또한, 위 글은 본 알고리즘 모델링을
하기 이전의 과정입니다.
해당 과정을 수행하여야 앞으로 진행되는
모델링이 가능합니다.
Scikit - Learn에서는 모델 선택과 훈련을 시킬 때
fit (학습)과 predict (적용) 의 순서를 따릅니다.
군집분석 알고리즘의 경우,
최적의 하이퍼파라미터 탐색이 필요합니다.
* 하이퍼파라미터 : 모델링 시 사용자가 직접 지정해주어야 하는 옵션
모델 선택, 학습, 적용
from sklearn.cluster import KMeans
# 1. Define
kmeans = KMeans(n_clusters=2, random_state=0)
# 2. Fit (학습)
kmeans.fit(X)
# 3. Transform (적용) : cluster 결과
predicted_clusters = kmeans.predict(X)
# predicted_clusters = kmeans.labels_
display(predicted_clusters)
# cluster 중심확인
cluster_centers = kmeans.cluster_centers_
display(cluster_centers)
sklearn.cluster 모듈에서 KMeans을 호출합니다.
K-means Clustering (비계층적 군집분석)
# SSE (개별 클러스터 중심으로부터 해당 클러스터에 속한 관측치까지의 거리제곱 합)
SSE = []
K = range(1,15)
for k in K:
kmeans = KMeans(n_clusters=k)
kmeans.fit(X)
SSE.append(kmeans.inertia_)
import matplotlib.pyplot as plt
plt.plot(K, SSE, 'bx-')
plt.xlabel('k')
plt.ylabel('Sum_of_squared_distances')
plt.title('Elbow Method For Optimal k')
plt.show()
모델 적용 및 성능평가
from sklearn.metrics import silhouette_score
from sklearn.cluster import KMeans
# 1. Define
kmeans = KMeans(n_clusters=5, random_state=0)
# 2. Fit (학습)
kmeans.fit(X)
# 3. Transform (적용)
predicted_clusters = kmeans.predict(X)
# 4. 클러스터링 결과 평가 (silhouett)
silhouette_score_kmeans = silhouette_score(X, predicted_clusters)
print(silhouette_score_kmeans.round(2))
위에서 찾은 최적의 클러스터 개수 K로
'.predict( )' 함수를 통해 예측을 진행합니다.
마지막으로 군집분석의 성능지표인 실루엣을 통해
모델을 평가하면 됩니다.
Hierarchical Clustering (계층적 군집분석)
from sklearn.metrics import silhouette_score
from sklearn.cluster import AgglomerativeClustering
# 1. Define ('single', 'complete', 'average')
hclust = AgglomerativeClustering(n_clusters=5, affinity='euclidean', linkage='complete')
# 2. Fit (학습)
hclust.fit(X)
# 3. Transform (적용)
# predicted_clusters = hclust.predict(X) # 작동안함
predicted_clusters = hclust.labels_
# 4. 클러스터링 결과 평가 (silhouett)
silhouette_score_hclust = silhouette_score(X, predicted_clusters)
print(silhouette_score_hclust.round(2))
'ML > Python' 카테고리의 다른 글
[Machine Learning] 주성분분석 Scikit Learn으로 구현하기 (0) | 2023.02.14 |
---|---|
[Machine Learning] 로지스틱 회귀분석 Scikit Learn으로 구현하기 (0) | 2023.01.17 |
[Machine Learning] KNN Scikit Learn으로 구현하기 (0) | 2023.01.12 |
[Machine Learning] 의사결정나무 (CART) Scikit Learn으로 구현하기 (0) | 2023.01.12 |
[Machine Learning] 회귀분석 Scikit Learn으로 구현하기 (0) | 2023.01.09 |