[英]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.