- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在事先不知道聚类数量的情况下执行聚类。簇的数量可以是 1 到 5,因为我可能会发现所有样本都属于同一实例或属于有限数量的组的情况。我认为亲和性传播可能是我的选择,因为我可以通过设置首选项参数来控制集群的数量。但是,如果我人工生成了一个集群,并且我将偏好设置为节点之间的最小欧几里德距离(以最小化集群数量),那么我会因为集群而变得很糟糕。
"""
=================================================
Demo of affinity propagation clustering algorithm
=================================================
Reference:
Brendan J. Frey and Delbert Dueck, "Clustering by Passing Messages
Between Data Points", Science Feb. 2007
"""
print(__doc__)
import numpy as np
from sklearn.cluster import AffinityPropagation
from sklearn import metrics
from sklearn.datasets.samples_generator import make_blobs
from scipy.spatial.distance import pdist
##############################################################################
# Generate sample data
centers = [[0,0],[1,1]]
X, labels_true = make_blobs(n_samples=300, centers=centers, cluster_std=0.5,
random_state=0)
init = np.min(pdist(X))
##############################################################################
# Compute Affinity Propagation
af = AffinityPropagation(preference=init).fit(X)
cluster_centers_indices = af.cluster_centers_indices_
labels = af.labels_
n_clusters_ = len(cluster_centers_indices)
print('Estimated number of clusters: %d' % n_clusters_)
print("Homogeneity: %0.3f" % metrics.homogeneity_score(labels_true, labels))
print("Completeness: %0.3f" % metrics.completeness_score(labels_true, labels))
print("V-measure: %0.3f" % metrics.v_measure_score(labels_true, labels))
print("Adjusted Rand Index: %0.3f"
% metrics.adjusted_rand_score(labels_true, labels))
print("Adjusted Mutual Information: %0.3f"
% metrics.adjusted_mutual_info_score(labels_true, labels))
print("Silhouette Coefficient: %0.3f"
% metrics.silhouette_score(X, labels, metric='sqeuclidean'))
##############################################################################
# Plot result
import matplotlib.pyplot as plt
from itertools import cycle
plt.close('all')
plt.figure(1)
plt.clf()
colors = cycle('bgrcmykbgrcmykbgrcmykbgrcmyk')
for k, col in zip(range(n_clusters_), colors):
class_members = labels == k
cluster_center = X[cluster_centers_indices[k]]
plt.plot(X[class_members, 0], X[class_members, 1], col + '.')
plt.plot(cluster_center[0], cluster_center[1], 'o', markerfacecolor=col,
markeredgecolor='k', markersize=14)
for x in X[class_members]:
plt.plot([cluster_center[0], x[0]], [cluster_center[1], x[1]], col)
plt.title('Estimated number of clusters: %d' % n_clusters_)
plt.show()
我使用亲和性传播的方法有什么缺陷吗?相反,亲和性传播是否不适合这项任务,那么我应该使用其他方法吗?
最佳答案
不,没有任何缺陷。 AP 不使用距离,但要求您指定相似度。我不太了解 scikit 实现,但根据我读到的内容,它默认使用负平方欧几里得距离来计算相似度矩阵。如果将输入首选项设置为最小欧几里德距离,您将获得正值,而所有相似度均为负值。因此,这通常会产生与样本一样多的聚类(注意:输入偏好越高,聚类越多)。我宁愿建议将输入首选项设置为最小负平方距离,即数据集中最大距离的平方的-1倍。这将为您提供数量少得多的集群,但不一定是一个集群。我不知道 preferenceRange() 函数是否也存在于 scikit 实现中。 AP 主页上有 Matlab 代码,它也在我维护的 R 包“apcluster”中实现。该函数允许确定输入偏好参数的有意义的界限。我希望这会有所帮助。
关于machine-learning - 亲和性传播首选项初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33187354/
我只能在线找到有关将 pods 附加到基于标签的节点的文档。 有没有一种方法可以根据标签和计数将 pods 附加到节点上-那么只有带有标签y的x pods 吗? 我们的方案是,我们只想在每个节点上运行
假设一台机器上有两个处理器。线程 A 在 P1 上运行,线程 B 在 P2 上运行。 线程 A 调用 Sleep(10000); 是否有可能当线程 A 再次开始执行时,它在 P2 上运行? 如果是,谁
我想创建一个 C++11 线程,我希望它在我的第一个核心上运行。我发现 pthread_setaffinity_np 和 sched_setaffinity 可以改变线程的 CPU affinity
我正在从事计算密集型 C# 项目,该项目实现了多种算法。问题是,当我想分析我的应用程序时,特定算法所需的时间会有所不同。例如,有时运行该算法 100 次大约需要 1100 毫秒,而另一次运行 100
我想将父进程关联到一个特定的核心。在下面的代码中,变量 core 是用户提供的参数。之后,我想创建 NUM_CHILDREN 个进程,并且每个进程都以循环方式关联到其中一个核心。子进程跳出循环并执行更
我很少有与线程和进程调度相关的问题。 当我的进程进入休眠状态并唤醒时,它是否总是会被调度到之前调度的同一个 CPU 上? 当我从进程中创建一个线程时,它是否也总是在同一个 CPU 上执行?即使其他 C
我有一个服务器进程,它派生出许多子进程。服务器进程与 CPU 核心具有亲和性,但我不希望子进程继承这种亲和性(操作系统应该处理运行这些进程的位置)。有没有一种方法可以根据 cpu 亲和性解除父子进程的
尝试在 Amazon EC2 等虚拟化环境中的多核处理器上高效使用 L2 缓存时,CPU 关联性任务集是否适用? 最佳答案 不,尤其是对于较小的实例,CPU 共享量很大,您依赖于其他实例对 CPU 的
sched_setaffinity 或 pthread_attr_setaffinity_np 是否可以在 OpenMP 下设置线程关联? 相关:CPU Affinity 最佳答案 是的,命名调用将用
所以我有 4 个节点。 1是System,1是Dev,1是Qa,1是UAT。 我的亲和性如下: apiVersion: apps/v1 kind: Deployment metadata: nam
我找不到指定当附属部署使用多个副本扩展时 Kubernetes 服务行为方式的文档。 我假设有某种负载平衡。是否与服务类型有关? 此外,我希望在服务转发的请求中具有某种关联性(即,如果可能,所有具有特
我想获取有关启用了 ARR Affinity 和自动缩放的应用程序行为的详细信息? 假设我在 Azure Web App 上部署有状态 ASP.NET Web 应用。因此我启用了 ARR Affini
R 2.14.0 或更高版本包括 R package parallel它提供了对并行计算的支持。 在 类 Unix 下,此软件包提供 facility for setting CPU affinity
我想获取有关启用了 ARR Affinity 和自动缩放的应用程序行为的详细信息? 假设我在 Azure Web App 上部署有状态 ASP.NET Web 应用。因此我启用了 ARR Affini
在 Qt5 中使用线程,如何设置单个线程的 CPU affinity ? 我想指定线程可以在其下运行的可用 CPU 内核的掩码。 换句话说,Qt5相当于Posix线程的pthread_setaffin
我想通过以下方式将进程绑定(bind)到特定的核心#0(cpu 亲和性) taskset -c 0 ./run_prog 当它自己的程序在核心 #0 上运行时,操作系统可能会决定将其他后台和事件进程运
我刚刚发现了 Node.js 的worker_threads 模块,它看起来很有前途! 问题:将worker_threads与集群结合起来是否有趣/高效,或者创建的线程是否自动分布在机器的不同CPU上
我想测试在基于 64 位、2 CPU、16 核 Intel Xeon 5500 CPU 的服务器的不同物理 CPU 和不同嵌入式内存 Controller 分配和访问内存时可能发生的性能变化。 (戴尔
非常简单的问题 - 有没有办法通过 PHP 设置 CPU 亲和性?以下任何一项都可以: 通过 PHP 调用设置当前进程的亲和性。 通过 PHP 调用设置特定 PID 的亲和性。 作为最后的手段,通过命
我需要创建一个内核模块,在计算机的每个内核上启用 ARM PMU 计数器。我在设置 cpu 亲和性时遇到问题。我试过 sched_get_affinity,但显然,它只适用于用户空间进程。我的代码如下
我是一名优秀的程序员,十分优秀!