忘记Bunch
对象。这只是加载与 scikit-learn 捆绑的玩具数据集的一个实现细节。
在现实生活中,您只需直接调用真实数据即可:
km = KMeans(n_clusters).fit(my_document_features)
然后从以下位置收集集群分配:
km.labels_
my_document_features
是一个 2D 数据结构:一个 numpy 数组或一个 scipy.sparse 矩阵与 shape (n_documents, n_features)
。
km.labels_
是一个形状为 的一维 numpy 数组(n_documents,)
。因此,第一个元素是特征矩阵labels_
第一行中描述的文档簇的索引。my_document_features
通常你会my_document_features
用一个TfidfVectorizer
对象构建:
my_document_features = TfidfVectorizer().fit_transform(my_text_documents)
my_text_documents
如果您直接读取文档(例如,从数据库或单个 CSV 文件中的行或任何您想要的文件),或者是一个列表 python unicode 对象,或者其他方式:
vec = TfidfVectorizer(input='filename')
my_document_features = vec.fit_transform(my_text_files)
wheremy_text_files
是硬盘驱动器上文档文件路径的 python 列表(假设它们使用 UTF-8 编码进行编码)。
my_text_files
or列表的长度my_text_documents
应该是直接n_documents
的映射km.labels_
。
由于 scikit-learn 不仅仅用于对文档进行聚类或分类,因此我们使用名称“sample”而不是“document”。这是您将看到我们使用n_samples
而不是n_documents
记录库中所有估计器的参数和属性的预期形状的方式。