ฉันใช้ฟังก์ชันการจัดกลุ่ม sklearn และ agglomerative ฉันมีข้อมูลแบบผสมซึ่งรวมถึงคอลัมน์ข้อมูลทั้งตัวเลขและระบุ คอลัมน์ที่ระบุของฉันมีค่าเช่น "เช้า" "บ่าย" "เย็น" "กลางคืน" ถ้าฉันแปลงข้อมูลที่ระบุเป็นตัวเลขโดยกำหนดค่าจำนวนเต็มเช่น 0,1,2,3; ระยะทางยุคลิดจะคำนวณเป็น 3 ระหว่าง "กลางคืน" และ "เช้า" แต่ 1 ควรส่งคืนค่าเป็นระยะทาง
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)))
นี่คือรหัสของฉัน
ฉันจะปรับแต่งฟังก์ชันระยะทางใน sklearn หรือแปลงข้อมูลที่ระบุเป็นตัวเลขได้อย่างไร