我正在做聚类工作,我有90个特征,有13500个数据点,去除了相关变量,其中皮尔逊相关性超过90%,我的特征空间减少到70个。而且,几乎所有我最初的90个特性都有大量的零值(超过70%-80%的数据点)。我在算法实现方面所做的是:
Ran K-通过根据轮廓指数选择聚类数来表示原始数据的70个特征(均为数字)。
Ran K-通过根据剪影索引选择簇数将维度降到2。
我所观察到的和我相应的问题是:
K-表示pca减少的数据提供了更好的聚类。有什么办法可以让我用这个集群来解释吗?就像从pca分配聚类标签一样,将数据减少到原始数据
原始数据上的K-均值和pca上的K-均值是如何不同的?我知道pca会将数
我在Python中有一个聚类算法,我正试图将其转换为PySpark (用于并行处理)。
我有一个包含区域的数据集,并在这些区域中存储。我想对单个区域中的所有存储执行我的聚类算法。
在进入ML之前,我有几个for循环。如何修改代码以删除PySpark中的for循环?我在PySpark中读过for循环通常不是一个好的实践,但我需要能够在许多子数据集上执行模型。有什么建议吗?
作为参考,我目前正在循环(通过Pandas DataFrames),如下所示:
for region in df_region:
for distinct stores in region:
[
我想通过q-gram距离或简单的"bag距离“或Python中的Levenshtein距离来聚类大约100,000个短字符串。我计划填写一个距离矩阵(100,000选择2个比较),然后使用进行分层聚类。但我还没上路就遇到了一些记忆问题。例如,距离矩阵对于numpy来说太大了。
aa = numpy.zeros((100000, 100000))
ValueError: array is too big.
这看起来是合理的做法吗?或者,在这个任务中,我注定会出现内存问题?谢谢你的帮助。
我正在通过查看文档的结构来对文档进行聚类。
我在下面的代码中提取了BERT嵌入变量X中的结构。
我正在尝试的是:
for num_clusters in np.arange(2,200):
model = KMeans(n_clusters=num_clusters)
model.fit(X)
pred = model.predict(X)
centers = model.cluster_centers_
cluster_sum = 0
for i , c in enumerate(centers):
use = []