【发布时间】:2021-02-16 00:12:45
【问题描述】:
我正在使用 scikit 的 silhouette_score 层次聚类。我不是来自数据科学背景,也不是 python。但是我确实知道一些其他语言并且知道层次聚类逻辑是如何工作的。我被告知使用 scikit 的剪影分数来计算剪影分数。此代码返回错误
ValueError: Found input variables with inconsistent numbers of samples: [149, 150]
使用的数据为 csv,包含 151 行,第一行为数据类型。所以总共有150个数据。
这是我的代码
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.cluster.hierarchy import dendrogram, linkage, fcluster
from sklearn.metrics import silhouette_score
iris = pd.read_csv("Iris.csv")
#iris hierarichal
iris_df = iris.iloc[:, 1:5]
plt.figure(figsize=(10, 7))
plt.title("Iris Dendograms Average Method")
link = linkage(iris_df, method='average')
dend = dendrogram(link)
plt.show()
clusters = fcluster(link, 3, criterion='maxclust')
print(silhouette_score(link, clusters))
【问题讨论】:
标签: python scikit-learn