- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我正在将旧的数据可视化转换为新平台,但我对他们的社区排序功能有点困惑。在原始代码中,作者似乎使用了带有余弦相似度计算器的凝聚聚类。我认为在 Javascript 中解决这个问题的最佳方法是使用 clusterfck 制作一棵树,使用我的自定义余弦相似度函数作为度量。对于我传递的每组数据,树几乎都能正确排序。 (但由于项目规范,“几乎”还不够好)。我检查了我的算法,一切看起来都正确,但是当我使用余弦相似度和欧氏距离比较我的结果时,我得到了相同的排序结果。
这可能是什么原因造成的?我想我可能传递了一些错误的东西,而 clusterfck 默认传递了 euclidean。下面是我的代码块。有人可以验证吗? (另外,有没有更简单的方法来计算余弦相似度?我不认为 JS 有内置的点积)。
clusters = clusterfck.hcluster(relationArray, clusterfck.cosSim2, clusterfck.SINGLE_LINKAGE);
postOrder(clusters);
function postOrder(t) {
i++;
if (t == null) {
return;
} else {
postOrder(t.left);
postOrder(t.right);
if (t.left == null && t.right == null) {
communityArr.push(t.canonical[0]);
} else {
return;
}
}
}
function cosSim2(arr1, arr2) {
var d1 = 0,
d2 = 0,
cos = 0;
for(var i = 0; i < arr1.length; i++) {
d1 += Math.pow(arr1[i], 2);
}
for(var j = 0; j < arr2.length; j++) {
d2 += Math.pow(arr2[j], 2);
}
d1 = Math.sqrt(d1);
d2 = Math.sqrt(d2);
for(var j = 0; j < arr2.length; j++) {
if (arr1[j] == null) {
cos += 0;
} else {
cos += arr1[j] * arr2[j];
}
}
var cosSimilarity = cos / (d1 * d2);
return cosSimilarity;
}
最佳答案
我想这个回复对你来说太晚了。但如果其他人偶然发现了这一点:
问题是您使用参数 clusterfck.cosSim2
作为距离度量来调用 clusterfck.hcluster
。但由于您的实际距离函数只是 cosSim2
,您可以使用未定义的距离函数有效地调用 clusterfck.hcluster
,并且 clusterfck 求助于默认的距离函数,即“euclidean”。 ..
另请注意,您的函数确实测量向量之间的相似性,而不是它们的距离。即:余弦相似度越大,向量越相似(即它们之间的夹 Angular 越小)。
但是 clusterfck.hcluster
需要一个真正的距离度量。也就是说,相反的情况应该是正确的:距离度量的值越大,向量越远(即向量越不相似)。
用您的函数调用 clusterfck.hcluster
会产生这样的效果,最不相似 的项目聚集在一起。
您可以轻松地从余弦相似度函数导出距离函数,如下所示:
function cosDist(arr1, arr2) {
return 1 - cosSim2(arr1, arr2);
}
这个新函数 cosDist
的值介于 0 到 2 之间,相同的向量将具有 0 的距离(如预期的那样),最远(即不同)的向量将具有距离 2。
还有一个注意事项:维基百科文章 http://en.wikipedia.org/wiki/Cosine_similarity指出这个 cosDist 在数学意义上不是一个适当的距离度量(三 Angular 不等式在这里通常不成立)但根据我的经验,当使用这个函数进行层次聚类时,这在实践中不是问题。它经常以这种方式使用。然而,有一种方法可以从余弦中推导出真正的距离度量,在同一篇维基百科文章中也提到过:https://en.wikipedia.org/wiki/Cosine_similarity#Angular_distance_and_similarity
关于Javascript Clusterfck 指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11655021/
我在 Azure 中找不到几个 SQL 指标。任何人都可以帮助如何设置以下主题的指标。 1)产能利用率不足 2)池外的数据库数量 3)扩大规模 4)连接超时 提前致谢。 最佳答案 实际上,这些并不是
我要监控的应用程序提供了一个用于健康检查的 api 端点,它以 json 格式响应指标。例如: $ curl https://example.com/api/stats {"status":"suc
我正在考虑用于分析软件开发工作的软件指标。当我考虑在面向对象的软件中使用类似功能点的指标时,我遇到了一个有趣的挑战/问题。 考虑一个业务规则引擎。它是一种应用程序,由运行业务规则所需的组件组成,然后将
我要监控的应用程序提供了一个用于健康检查的 api 端点,它以 json 格式响应指标。例如: $ curl https://example.com/api/stats {"status":"suc
因此,我正在将旧的数据可视化转换为新平台,但我对他们的社区排序功能有点困惑。在原始代码中,作者似乎使用了带有余弦相似度计算器的凝聚聚类。我认为在 Javascript 中解决这个问题的最佳方法是使用
我不是专业程序员,但我正在尝试改变一些技术指标在名为 TradeStation 的金融图表包中的显示方式(与特定图表供应商无关)。 这就是问题所在:大多数指标都是围绕零点绘制的,有时它们会靠近零点摆动
我们存储了大量来 self 们服务的指标(大约 8000 万个事件)。我们必须根据数据生成报告。 我的问题比较笼统,哪些工具可以满足您的指标/报告需求?有什么推荐的吗? 我们使用 Apache 编写日
我们网站上的页面的 CLS 一直接近于零。这是有道理的,因为它们是服务器呈现的 HTML 页面,具有简单的静态布局。 最近我们添加了 content-visibility: auto 的使用,如下所示
我能想到几种方法来转这种类型的矩阵(数据框): dat = data.frame( x1 = rep(c('a', 'b'), 100), x2 = rep(c('x', 'y
我正在使用 codahale 指标(现在是 dropwizard 指标)来监控我系统中发生的一些“事件”。我正在使用 counters跟踪“事件”发生次数的指标。 我检查了记者为我的计数器指标打印的值
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 11 个月前关闭。 Improve this que
在不使用 Heapster 的情况下,有没有办法收集有关 Kubernetes 集群中节点的 CPU 或磁盘指标? Heapster 最初是如何收集这些指标的? 最佳答案 Kubernetes 监控在
对于二元分类问题,我有一个略微不平衡的数据集,正负比为 0.6。 我最近从这个答案中了解到了 auc 指标:https://stats.stackexchange.com/a/132832/12822
为了做一些参数调整,我喜欢用 Keras 循环一些训练函数。但是,我意识到在使用 tensorflow.keras.metrics.AUC() 时作为度量,对于每个训练循环,都会将一个整数添加到 au
我使用 Azure,现在我想在特定情况下添加短信通知。 当我使用基于日志的指标时,它效果很好,但我想针对特定异常创建通知。 下一个流程:抛出异常 => Azure 知道识别它 => Azure 发送有
我正在尝试访问给定cloudService的指标 我有以下代码: var metricsClient = new MetricsClient(new CertificateCloudCredentia
我正在尝试使用 R 和 xgboost 来研究我的模型。训练模型总体上效果很好,但对于插入符来说,度量存在一些问题。 我尝试为类列设置一个因子,但仍然没有结果。 我的数据 ID var1var2TA
我对编程还很陌生,有时它会用非常基本的概念来困扰我。我在我的 tableviewcontroller 中定义了一个 Activity 指示器作为 Outlet。 @IBOutlet weak var
我正在训练一个进行序列预测的模型。例如,给定某人之前写过的 10 个单词,我正在训练 LSTM 来预测他们将写的下一个单词。我有一个有时可以工作的模型,因此我想创建一个指标来跟踪模型通过词性标签预测下
我正在尝试使用 hystrix 来监控某个网络调用。但我尝试监控的所有指标始终为空。我做错了什么? 我通过实现一个(某种程度上)RESTful 接口(interface)来模拟网络调用,该接口(int
我是一名优秀的程序员,十分优秀!