首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >监督聚类

监督聚类
EN

Data Science用户
提问于 2019-09-22 18:46:34
回答 4查看 959关注 0票数 2

我正在处理一个聚类问题。我有一个训练集,它由一组已知聚类的点组成,我希望在测试数据集中找到好的集群。这是一种监督聚类。

我找了一些关于监督聚类的文章,但是我没有找到很多信息。有“半监督聚类”,它包括使用关于点对(必须链接或不链接关系)的信息,但是,在我的任务中,我没有这样的信息。还有一种“度量学习监督聚类”,它使用标记化的聚类来估计使用k均值生成给定聚类的度量。这种技术可以帮助我,但关于它的文章不多,我想知道我是不是没有找到好的关键字或其他什么。

使用标记数据对数据点进行聚类的技术/算法是什么(使用已知集群的训练点)?

EN

回答 4

Data Science用户

发布于 2019-09-22 18:55:10

你要找的是KNN algorithm,也知道它是k近邻.这是一种有监督的算法,在这种算法中,给出了点和它们的聚类,然后使用它们来学习测试点的模式。

票数 1
EN

Data Science用户

发布于 2019-09-22 22:01:17

这是分类,不是吗?

你已经给训练数据贴上标签了。您希望相应地标记您的测试集。用分类器..。

票数 1
EN

Data Science用户

发布于 2020-02-27 17:56:59

老实说,直到现在我才听说过“半监督聚类”。有相当多的集群技术存在。这里有7个流行的聚类茶具。我为您整理了一些示例代码(如下)。我使它尽可能自动化(只需复制/粘贴)。希望这能让你朝着正确的方向前进。只需将您自己的数据输入X变量(确保它是一个数组)。

所以:X = df['A'].to_numpy()

代码语言:javascript
复制
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
#%matplotlib inline
from sklearn import datasets#Iris Dataset
iris = datasets.load_iris()
X = iris.data#KMeans
km = KMeans(n_clusters=3)
km.fit(X)
km.predict(X)
labels = km.labels_#Plotting
fig = plt.figure(1, figsize=(7,7))
ax = Axes3D(fig, rect=[0, 0, 0.95, 1], elev=48, azim=134)
ax.scatter(X[:, 3], X[:, 0], X[:, 2],
          c=labels.astype(np.float), edgecolor="k", s=50)
ax.set_xlabel("Petal width")
ax.set_ylabel("Sepal length")
ax.set_zlabel("Petal length")
plt.title("K Means", fontsize=14)
代码语言:javascript
复制
########################################

from sklearn.mixture import GaussianMixture
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
%matplotlib inline
from sklearn import datasets#Iris Dataset
iris = datasets.load_iris()
X = iris.data#Gaussian Mixture Model
gmm = GaussianMixture(n_components=3)
gmm.fit(X)
proba_lists = gmm.predict_proba(X)#Plotting
colored_arrays = np.matrix(proba_lists)
colored_tuples = [tuple(i.tolist()[0]) for i in colored_arrays]
fig = plt.figure(1, figsize=(7,7))
ax = Axes3D(fig, rect=[0, 0, 0.95, 1], elev=48, azim=134)
ax.scatter(X[:, 3], X[:, 0], X[:, 2],
          c=colored_tuples, edgecolor="k", s=50)
ax.set_xlabel("Petal width")
ax.set_ylabel("Sepal length")
ax.set_zlabel("Petal length")
plt.title("Gaussian Mixture Model", fontsize=14)
代码语言:javascript
复制
########################################

import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import sklearn.cluster as cluster
import time
#%matplotlib inline
sns.set_context('poster')
sns.set_color_codes()
plot_kwds = {'alpha' : 0.25, 's' : 80, 'linewidths':0}

data = X

plt.scatter(data.T[0], data.T[1], c='b', **plot_kwds)
frame = plt.gca()
frame.axes.get_xaxis().set_visible(False)
frame.axes.get_yaxis().set_visible(False)


def plot_clusters(data, algorithm, args, kwds):
    start_time = time.time()
    labels = algorithm(*args, **kwds).fit_predict(data)
    end_time = time.time()
    palette = sns.color_palette('deep', np.unique(labels).max() + 1)
    colors = [palette[x] if x >= 0 else (0.0, 0.0, 0.0) for x in labels]
    plt.scatter(data.T[0], data.T[1], c=colors, **plot_kwds)
    frame = plt.gca()
    frame.axes.get_xaxis().set_visible(False)
    frame.axes.get_yaxis().set_visible(False)
    plt.title('Clusters found by {}'.format(str(algorithm.__name__)), fontsize=24)
    plt.text(-0.5, 0.7, 'Clustering took {:.2f} s'.format(end_time - start_time), fontsize=14)


plot_clusters(data, cluster.KMeans, (), {'n_clusters':5})
代码语言:javascript
复制
plot_clusters(data, cluster.AffinityPropagation, (), {'preference':-5.0, 'damping':0.95})
代码语言:javascript
复制
plot_clusters(data, cluster.MeanShift, (0.175,), {'cluster_all':False})
代码语言:javascript
复制
plot_clusters(data, cluster.SpectralClustering, (), {'n_clusters':6})
代码语言:javascript
复制
plot_clusters(data, cluster.AgglomerativeClustering, (), {'n_clusters':6, 'linkage':'ward'})
代码语言:javascript
复制
plot_clusters(data, cluster.DBSCAN, (), {'eps':0.025})
票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/60598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档