Python。如何将我自己的数据集导入 "k means" 算法
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-means 算法可以使用的数字。
例如:
I ride a bike and I like it.
1 2 3 4 5 1 6 7 # <- number ids
之后,您的数据集有了新的嵌入,您可以应用 k-means。如果你想要你的样本具有均匀的外观,你必须将它们转换为单热表示(即你为每个样本创建一个 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)
...
我想将我自己的数据(位于 .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-means 算法可以使用的数字。
例如:
I ride a bike and I like it.
1 2 3 4 5 1 6 7 # <- number ids
之后,您的数据集有了新的嵌入,您可以应用 k-means。如果你想要你的样本具有均匀的外观,你必须将它们转换为单热表示(即你为每个样本创建一个 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)
...