Saya menggunakan fungsi pengelompokan sklearn dan aglomeratif. Saya memiliki data campuran yang mencakup kolom data numerik dan nominal. Kolom nominal saya memiliki nilai seperti "Pagi", "Siang", "Malam", "Malam". Jika saya mengubah data nominal saya menjadi numerik dengan menetapkan nilai integer seperti 0,1,2,3; jarak euclidean akan dihitung sebagai 3 antara "Malam" dan "Pagi", namun, 1 harus menjadi nilai kembalian sebagai jarak.
X = pd.read_csv("mydata.csv", sep=",", header=0, encoding="utf-8")
X = StandardScaler().fit_transform(X)
print("n_samples: %d, n_features: %d" % X.shape)
km = AgglomerativeClustering(n_clusters=5, affinity='euclidean', linkage='average')
km.fit(X)
print("k = %d, Silhouette Coefficient: %0.3f" % (x,
metrics.silhouette_score(X, km.labels_, sample_size=None)))
Ini kode saya.
Bagaimana cara menyesuaikan fungsi jarak di sklearn atau mengubah data nominal saya menjadi numerik?