import pandas as pd
import matplotlib.pyplot as plt
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.cluster import KMeans
# Sayısal ve kategorik sütunları ayır
numeric_cols = df_cl.select_dtypes(include=['int64', 'float64']).columns
categorical_cols = df_cl.select_dtypes(include=['object', 'category']).columns
# Ön işleme
preprocessor = ColumnTransformer([
("num", StandardScaler(), numeric_cols),
("cat", OneHotEncoder(), categorical_cols)
])
# Veriyi dönüştür
X_processed = preprocessor.fit_transform(df_cl)
# Sparse matrisi dense yap
X_processed = X_processed.toarray()
# Elbow yöntemi
wcss = []
K = range(1, 11)
for k in K:
kmeans = KMeans(
n_clusters=k,
init='k-means++',
random_state=42,
n_init=10
)
kmeans.fit(X_processed)
wcss.append(kmeans.inertia_)
# Grafik
plt.figure(figsize=(8,5))
plt.plot(K, wcss, marker='o')
plt.title("Elbow Method")
plt.xlabel("Küme Sayısı")
plt.ylabel("WCSS")
plt.xticks(K)
plt.grid(True)
plt.show()
Elbow Method
0 Beğeni
39 okunma

