有人能告诉我这个算法的名称吗?如果它存在的话或者告诉我如何找到它?

2024-04-26 22:31:04 发布

您现在位置:Python中文网/ 问答频道 /正文

想法如下:

有一个巨大的2D数据集(250000个数据点)。 我需要在不破坏数据结构的情况下去掉90%的数据点。这意味着(我相信)要除掉最接近的。密度必须降低。。。你知道吗

考虑到我们需要保留结构-我们不能随意删除90%,因为这可能会导致偏见。这里面可能有一点随机因素,但不会太多。 我可以把数据放在二维矩阵中,然后分成单元格。一些单元格将有更多的数据点,一些单元格将有更少的数据点,而一些单元格将没有数据点。你知道吗

我需要的算法,将这些数据点或我的矩阵中的单元分组成段,所有这些段都将有相对接近的数据点数量。“新”矩阵中的那些片段或单元可以是不同的大小(我相信这就是这个算法的要点)。你知道吗

我画了一幅画。它不准确,但我希望它能使这个想法更清楚一点。你知道吗

我还用python编码:^)

谢谢你!!你知道吗

Diagram


Tags: 数据算法数据结构编码数量情况矩阵结构
1条回答
网友
1楼 · 发布于 2024-04-26 22:31:04

您正在搜索的算法是一种无监督学习方法,最著名的是python上的kmeans。你知道吗

您可以在这里找到文档:https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html

以下是数组的代码示例:

from sklearn.cluster import KMeans
import numpy as np
X = np.array([[1, 2], [1, 4], [1, 0],
               [10, 2], [10, 4], [10, 0]])
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
kmeans.labels_

如果必须为数据帧(df)调整它,则如下所示:

from sklearn.cluster import KMeans
X = df[['column A',..., 'column D']]
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
kmeans.labels_

输出标签是您的集群。你知道吗

相关问题 更多 >