from sklearn.cluster import KMeans
import numpy as np
# 데이터 생성
data = np.array([[1, 2], [5, 8], [1.5, 1.8], [8, 8], [1, 0.6], [9, 11]])
# k-평균 군집화 모델 생성
kmeans = KMeans(n_clusters=2)
kmeans.fit(data)
# 각 데이터 포인트의 소속 군집 확인
labels = kmeans.labels_
print(labels)
from sklearn.decomposition import PCA
import numpy as np
# 데이터 생성
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# PCA 모델 생성
pca = PCA(n_components=2)
reduced_data = pca.fit_transform(data)
# 차원 축소된 데이터 확인
print(reduced_data)
<와인데이터>
<예제 코드>
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans
import numpy as np
# 데이터 생성
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 주성분 분석 (PCA)을 사용하여 데이터 차원 축소
pca = PCA(n_components=2)
reduced_data = pca.fit_transform(data)
# k-means 군집화 모델 생성
kmeans = KMeans(n_clusters=2)
kmeans.fit(reduced_data)
# 각 데이터 포인트의 소속 군집 확인
labels = kmeans.labels_
print(labels)
-> 그래서 이 코드로 변환해서 적용했는데 실패함, 한번 더 시도해보겠음
<시도한 코드>
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
# 데이터 준비 (X는 특성 행렬)
X = df.drop(['quality'], axis=1)
# 데이터 표준화
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# K-means 클러스터링
kmeans = KMeans(n_clusters=3, random_state=42) # 원하는 클러스터 수로 설정
kmeans_labels = kmeans.fit_predict(X_scaled)
# 클러스터링 결과 시각화를 위한 PCA
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)
# 클러스터별로 색깔을 다르게 표시하여 시각화
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=kmeans_labels, cmap='viridis', edgecolor='k', s=50)
plt.title('K-means 클러스터링 결과 (PCA)')
plt.xlabel('Principal Component 1')
plt.ylabel('Principal Component 2')
plt.show()