繁体   English   中英

蟒蛇。 如何将自己的数据集导入“ k均值”算法

[英]Python. How to import my own dataset to “k means” algorithm

我想将自己的数据(位于.txt文件中的句子)导入此示例算法,该算法可在以下网址找到: https : //scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_silhouette_analysis.html

问题是该代码使用了make_blobs数据集,我很难理解如何用.txt文件中的数据替换它。

我所预测的是,我需要在这里替换这段代码:

X, y = make_blobs(n_samples=500,
          n_features=2,
          centers=4,
          cluster_std=1,
          center_box=(-10.0, 10.0),
          shuffle=True,
          random_state=1)  # For reproducibility

我也不理解这些变量X,y 我假设X是一个数据数组,那么y呢?

我是否应该像这样将所有内容分配给X,该示例代码就能工作? 但是那些make_blobs功能(例如中心,n_features等)呢? 我是否需要以不同的方式指定它们?

# open and read from the txt file
path = "C:/Users/user/Desktop/sentences.txt"
file = open(path, 'r')
# assign it to the X
X = file.readlines() 

任何帮助表示赞赏!

首先,您需要创建单词到k均值算法可以使用的数字的映射。

例如:

I ride a bike and I like it.
1   2  3  4    5  1  6   7  # <- number ids

之后,您将为数据集进行新的嵌入,并且可以应用k均值。 如果您希望样本具有均质的外观,则必须将其转换为一个热表示(这是您为每个样本创建一个N长度的数组,其中N是您所拥有的唯一词的总数,其中一个为与样本索引相同的相应位置)。

N = 7的上述示例为

1 -> 1000000
2 -> 0100000
...

因此,现在您可以拥有一个X变量,该变量包含正确格式的数据。 您不需要y ,它是样本的相应标签。

clusterer = KMeans(n_clusters=n_clusters, random_state=10)
cluster_labels = clusterer.fit_predict(X)
silhouette_avg = silhouette_score(X, cluster_labels)
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM