我想在R中评估和比较我的社区检测算法的结果。我的算法不允许重叠,并且有一些节点没有被处理。例如,对于 Zachary Karate 俱乐部,我有 1 个节点未治疗。我找到了很多指标(NMI、ARI、Modulaity(Q)、纯度、Rank Index...),但我不知道哪些是最好的。目前,我正在使用模块化、纯度和排名索引。
这些选择的评估指标是否足够?
例如,对于排名索引为 RI(P,R)= (a+d)/(a+b+c+d),其中 a、b、c 和 d 分别是位于根据 P 和 R 在同一社区中,根据 P 在同一社区中但根据 R 在不同社区中,在 P 给定的不同社区中但根据 R 给定的同一社区中,以及根据 P 和 R 两者在不同社区中R, 且 P = {p1, p2, . 。。, pk} 是应用于图 G =< V,E > 和 R = {r1, r2,... 的社区检测算法的输出。。。, rn} 是真实的社区结构。
那么,如果我处理一个大图,我该如何计算这些值?在哪里可以找到R(真实的社区结构)?
我已阅读所有指南、视频和所有内容,但我不知道如何将我的功能集转换为 ELWC 数据表格式以解决 TF-Rank ListWise 问题。没有对该结构的描述。
例如,学生档案是:
Student ID age grade math% physics% english% art% math_competit language_competit Rank
14588 16 k12 98 67 88 100 first_place very_good 5
Run Code Online (Sandbox Code Playgroud)
如果我在同一个班级有 20 名学生,我如何转换这些数据以便能够对每个年级进行列表预测(理论上每个年级有 3 个班级,有 20 名学生)
我有一个以用户排名为中心的网站,但是用户数已经增长到超过50,000,并且它正在给服务器带来压力,以便每隔5分钟更新所有这些.是否有更好的方法可用于至少每5分钟轻松更新一次排名?它不一定是用PHP,它可能是像perl脚本运行的东西或类似的东西能够更好地完成工作(虽然我不知道为什么会这样,只是离开我的选项在这里打开).
这是我目前更新排名的方法:
$get_users = mysql_query("SELECT id FROM users WHERE status = '1' ORDER BY month_score DESC");
$i=0;
while ($a = mysql_fetch_array($get_users)) {
$i++;
mysql_query("UPDATE users SET month_rank = '$i' WHERE id = '$a[id]'");
}
Run Code Online (Sandbox Code Playgroud)
更新(解决方案):
这是解决方案代码,执行和更新所有50,000行所需的时间不到1/2秒(根据Tom Haigh的建议将等级作为主键).
mysql_query("TRUNCATE TABLE userRanks");
mysql_query("INSERT INTO userRanks (userid) SELECT id FROM users WHERE status = '1' ORDER BY month_score DESC");
mysql_query("UPDATE users, userRanks SET users.month_rank = userRanks.rank WHERE users.id = userRanks.id");
Run Code Online (Sandbox Code Playgroud) 为Solr/Lucene实现自定义排名算法的正确方法是什么?
我读到Zvents为与特定地理区域中的事件相对应的文档实施距离加权排名系统(http://www.lucidimagination.com/Community/Hear-from-the-Experts/Articles/Zvents).
我想做类似的事情:我在不同的城市中对广告进行索引,并希望在给定特定位置的情况下提高最近广告的相关性.
我想根据元素在每个列表中出现的频率对多个列表进行排名.例:
list1 = 1,2,3,4
list2 = 4,5,6,7
list3 = 4,1,8,9
结果= 4,1,2,3,4,5,6,7,8(4次计数3次,1次2次,其余1次)
我已经尝试了以下但我需要一些更聪明的东西,我可以用任何大量的列表.
l = []
l.append([ 1, 2, 3, 4, 5])
l.append([ 1, 9, 3, 4, 5])
l.append([ 1, 10, 8, 4, 5])
l.append([ 1, 12, 13, 7, 5])
l.append([ 1, 14, 13, 13, 6])
x1 = set(l[0]) & set(l[1]) & set(l[2]) & set(l[3])
x2 = set(l[0]) & set(l[1]) & set(l[2]) & set(l[4])
x3 = set(l[0]) & set(l[1]) & set(l[3]) & set(l[4])
x4 = set(l[0]) & set(l[2]) & set(l[3]) …Run Code Online (Sandbox Code Playgroud) 我想通过客户端1,2,3,然后再次客户端1,2,3等来订购我的结果.
有没有办法在不使用for循环或进行三次单独查询的情况下执行此操作?不仅如此,我正在使用分页数据,因此它需要返回x结果,但始终如一.
有任何想法吗?可能是GROUP BY?
client_id project_id project_name
---------- ---------- ------------
1 42 project abc
2 49 project xyz
3 41 project 123
1 22 project apple
2 29 project orange
3 21 project banana
Run Code Online (Sandbox Code Playgroud) 我有一个包含博客文章的数据库表.我想在主页上显示每个类别的一个(或多个)帖子,例如按日期排序.
所以我的帖子表看起来像这样: id | title | description | cat | filename | date
我该如何创建这样的查询?我曾经想过使用group-by或subselect但是我不确定它是否对性能有好处......表中有大量的记录.
我有一个排行榜,其中有一个"得分"列.我在得分列上也有一个索引,这使得我可以非常快速地按照分数对表格进行排序,甚至可以排除前十或任意数量的分数 - 即使有500万行!
但是,我真正想要的是在排行榜中显示球员"排名".我已经尝试了一些方法,但是当处理超过100000行时,它们似乎都没有堆叠(它们开始占用超过半秒,考虑到我期待数百名cuncurrent用户,这太长了).
我目前正在使用以下查询来确定一个用户的排名,然后在我的输出中为这些用户增加simlpy - 但这很慢.
SELECT tro.score, tro.userId,
(
SELECT count(*)
FROM scoreboard tri
WHERE tri.score >= :score
) AS rank
FROM test_tracks tro
WHERE userId = :userID");
Run Code Online (Sandbox Code Playgroud)
我正在考虑生成一个排名表,以便在他们将新分数插入记分板时"缓存"用户排名,但即使生成这个也需要很长时间(分钟,可能是几小时).
有谁知道建立排名的任何好的指南或技巧?我希望能够对结果进行总结,但即使只是建立当前的排名也足够了!
提前致谢!
我有几个学生在php数组中得分.
$ firstarray:
Array (
[0] => Array (
[6] => Array ( //I want to skip this student from ranking
[ENGLISH] => 45.00
[MATHEMATICS] => 5.00
[SCIENCE] => 40.00
)
)
[1] => Array (
[7] => Array (
[ENGLISH] => 41.00
[MATHEMATICS] => 40.00
[SCIENCE] => 47.00
)
)
)
[2] => Array (
[8] => Array (
[ENGLISH] => 42.00
[MATHEMATICS] => 44.00
[SCIENCE] => 40.00
)
)
[3] => Array (
[9] => Array (
[ENGLISH] …Run Code Online (Sandbox Code Playgroud) 我正在尝试根据年和月确定排名。我有类似的记录
产品展示
ProdID Years Months Quantity
--------------------------------
1652 2018 10 2
1010 2018 9 2
2236 2018 10 2
2236 2018 10 2
1445 2019 5 2
1789 2019 12 2
1232 2018 12 2
Run Code Online (Sandbox Code Playgroud)
我尝试了以下查询
SELECT
ProdID, Years, Months, Quantity,
DENSE_RANK()OVER (Partition By Years Order By Months) Ranks
FROM Products
Run Code Online (Sandbox Code Playgroud)
显然,结果将是
ProdID Years Months Quantity Ranks
---------------------------------------
1010 2018 9 2 1
1652 2018 10 2 2
2236 2018 10 2 2
2236 2018 10 2 2
1232 2018 …Run Code Online (Sandbox Code Playgroud) ranking ×10
mysql ×4
php ×3
sql ×3
arrays ×1
database ×1
dense-rank ×1
detection ×1
evaluation ×1
list ×1
lucene ×1
modularity ×1
optimization ×1
python ×1
rank ×1
set ×1
solr ×1
sorting ×1
spatial ×1
sql-server ×1
tensorflow ×1