Bilişim dünyasına kaliteli, özgün ve Türkçe içerikler kazandırmayı hedefleyen bir platform..

friends friends friends

K-modes

K-modes algoritması: Makine öğrenmesi kümeleme işlemlerinde tüm veriler kategorik olduğunda kullanılır.

Kategorik veri kümeleri için özelleşmiştir ve kategorik veri kümeleri üzerinde daha verimli sonuçlar verir.

K-modes Data
Veri Kümesi: veriler_kmode.csv (indirmek için tıklayınız)
#importing necessary libraries
from scipy.spatial.distance import pdist, squareform
import pandas as pd  # Veri manipülasyonu ve analiz için pandas kütüphanesini içe aktarıyor
import numpy as np  # Sayısal işlemler için numpy kütüphanesini içe aktarıyor
# !pip install kmodes  # Gerekli kütüphaneyi yüklemek için (ilk kullanımda) bu satır aktif hale getirilebilir
from kmodes.kmodes import KModes  # Kategorik veri kümeleri için K-modes algoritmasını içe aktarıyor
import matplotlib.pyplot as plt  # Grafikler oluşturmak için matplotlib.pyplot'u içe aktarıyor
from sklearn.preprocessing import LabelEncoder
# Grafiklerin Jupyter Notebook'ta direkt görüntülenmesini sağlıyor
%matplotlib inline  

veriler=pd.read_csv(veriler_kmode.csv)
print(veriler)
# Create toy dataset
hair_color = veriler.iloc[:, 1]  
eye_color = veriler.iloc[:, 2]  
skin_color = veriler.iloc[:, 3]  
person = veriler.iloc[:, 0]

#print(person)
data = pd.DataFrame({'person':person, 'hair_color':hair_color, 'eye_color':eye_color, 'skin_color':skin_color})  # Verileri bir DataFrame'e aktarıyor
data = data.set_index('person')  # 'person' sütununu DataFrame'in indeksine ayarlıyor
print(data)  # DataFrame'i ekrana yazdırıyor

# pdist fonksiyonu kategorik veri ile çalışmadığı için kategorik verileri sayısal değerlere dönüştürüyoruz, 
le = LabelEncoder()  # LabelEncoder nesnesi oluşturuyoruz
for col in data.columns:
    data[col] = le.fit_transform(data[col])  # Her kategorik sütunu sayısal değerlere dönüştürüyoruz


# Kategorik veriler üzerinde Hamming mesafe matrisini oluşturuyoruz
# Her iki satır arasındaki hamming mesafesini ölçüyoruz
hamming_distances = pdist(data.values, metric='hamming')  # Hamming mesafelerini vektör olarak hesaplar

hamming_matrix = squareform(hamming_distances)  # Vektörü kare matris formuna çevirir

# Hamming mesafe matrisini bir DataFrame olarak düzenliyoruz
hamming_df = pd.DataFrame(hamming_matrix, index=data.index, columns=data.index)
print(hamming_df)


# Elbow curve to find optimal K
cost = []  # Farklı küme sayılarının maliyetlerini saklamak için boş bir liste oluşturuyor
K = range(1,5)  # Küme sayısını 1'den 4'e kadar denemek için bir aralık belirliyor
for num_clusters in list(K):  # Her küme sayısı için döngü başlatıyor
    kmode = KModes(n_clusters=num_clusters, init="random", n_init=5, verbose=1)  # K-modes algoritmasını, belirtilen küme sayısı ve rastgele başlangıçla tanımlıyor
    kmode.fit_predict(data)  # K-modes algoritmasını veri üzerinde çalıştırarak kümeleri oluşturuyor
    cost.append(kmode.cost_)  # Her küme sayısı için maliyeti (inertia) 'cost' listesine ekliyor
    
plt.plot(K, cost, 'bx-')  # Küme sayısına karşılık gelen maliyet değerlerini grafikle gösteriyor
plt.xlabel('No. of clusters')  # X eksenine 'No. of clusters' etiketini ekliyor
plt.ylabel('Cost')  # Y eksenine 'Cost' etiketini ekliyor
plt.title('Elbow Method For Optimal k')  # Grafiğe başlık ekliyor
plt.show()  # Grafiği görüntülüyor


# Assign clusters to each row
clusters = kmode.fit_predict(data)  # Her satır için küme etiketlerini alıyoruz
data['Cluster'] = clusters  # 'Cluster' adlı yeni bir sütun olarak DataFrame'e ekliyoruz
print("uğruna talan olsun vay servetim külli varım:", clusters)

# Display the data with cluster assignments
print(data)  # Her satırın ait olduğu kümeyi gösteren tabloyu ekrana yazdırıyoruz
K-Modes
K-Modes
0 Beğeni
Makine Öğrenmesi
Önceki Yazı

KLING AI

04 Kas. 2024 tarihinde yayınlandı.
Sonraki Yazı

XGBoost

04 Kas. 2024 tarihinde yayınlandı.
arrow