- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在编写一种遗传算法,尝试选择一组数据点以最大化簇间距离,同时保持两个簇之间的簇内距离较小。
我认为某些聚类有效性度量(例如 Davies-Bouldin 指数)将是一个很好的适应度函数,但我正在努力寻找用伪代码或 Java 代码实现的算法。
谁能帮我解决这个问题?
谢谢。
最佳答案
我已经基于https://en.wikipedia.org/wiki/Davies%E2%80%93Bouldin_index用Python实现了它
def davies_bouldin(X, labels, cluster_ctr):
#get the cluster assignemnts
clusters = set(labels)
#get the number of clusters
num_clusters = len(clusters)
#array to hold the number of items for each cluster, indexed by cluster number
num_items_in_clusters = [0]*num_clusters
#get the number of items for each cluster
for i in range(len(labels)):
num_items_in_clusters[labels[i]] += 1
max_num = -9999
for i in range(num_clusters):
s_i = intra_cluster_dist(X, labels, clusters[i], num_items_in_clusters[i], cluster_ctr[i])
for j in range(num_clusters):
if(i != j):
s_j = intra_cluster_dist(X, labels, clusters[j], num_items_in_clusters[j], cluster_ctr[j])
m_ij = np.linalg.norm(cluster_ctr[clusters[i]]-cluster_ctr[clusters[j]])
r_ij = (s_i + s_j)/m_ij
if(r_ij > max_num):
max_num = r_ij
return max_num
def intra_cluster_dist(X, labels, cluster, num_items_in_cluster, centroid):
total_dist = 0
#for every item in cluster j, compute the distance the the center of cluster j, take average
for k in range(num_items_in_cluster):
dist = np.linalg.norm(X[labels==cluster]-centroid)
total_dist = dist + total_dist
return total_dist/num_items_in_cluster
希望对你有帮助
关于java - Java 中的 Davies-Bouldin 指数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4919962/
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 去年关闭。 社区2 个月前审核了是否
我正在尝试评估对某些数据进行聚类所需的正确聚类数量。 我知道使用 Davies–Bouldin 指数 (DBI) 可以实现这一点。 要使用 DBI,您必须针对任意数量的集群进行计算,并且最小化 DBI
我正在使用 Jason Davies 的示例词云生成器代码来创建词云。我能够绘制它,但我想要的词云的形状是椭圆形/圆形。我知道有人对 Jason Davies 的词云的圆形形状有疑问,但他们都在谈论对
我可以使用 davisjs 作为 AMD 模块和 requirejs 吗?我尝试过,但也许我忘记了需要配置中的某些内容? requirejs([ "jquery", "davis" ],
我正在编写一种遗传算法,尝试选择一组数据点以最大化簇间距离,同时保持两个簇之间的簇内距离较小。 我认为某些聚类有效性度量(例如 Davies-Bouldin 指数)将是一个很好的适应度函数,但我正在努
我正在尝试计算 Davies-Bouldin Index在 Python 中。 下面是代码尝试重现的步骤。 5 个步骤: 对于每个簇,计算每个点到质心之间的欧氏距离 对于每个集群,计算这些距离的平均值
如何禁用 Chrome 的 pushstate(用于测试目的)? 如果您知道可以轻松切换的插件,将获得奖励 :) 我正在使用 davis.js对于我的推送状态逻辑。 最佳答案 history.push
我正在学习如何使用 ALSA API 轮询/等待填充声卡缓冲区。我想知道 Paul Davis(JACK 的作者)2002 年标题为“A Minimal Interrupt-Driven Progra
所有这 3 个库都允许操作历史对象。好的,backbone 做的更多,但我们只考虑它的历史部分。 http://documentcloud.github.com/backbone/#History h
我正在使用 Joshua Davies 的“使用密码术和 PKI 实现 SSL/TLS”一书实现一个 HTTPS 客户端/服务器示例,只是为了学习目的。它包含一个带有 C 源代码的示例实现。我只是尝试
我是一名优秀的程序员,十分优秀!