如何对NetLogo海龟进行基于密度的聚类评估?
我在netlogo 6.0.1中有以下代码,使用dbscan(基于密度的聚类)扩展来测量世界界面上海龟之间的聚类效果和聚类分布属性如何对NetLogo海龟进行基于密度的聚类评估?,netlogo,Netlogo,我在netlogo 6.0.1中有以下代码,使用dbscan(基于密度的聚类)扩展来测量世界界面上海龟之间的聚类效果和聚类分布属性 extensions [ dbscan ] to setup clear-all ask patches [ set pcolor white ] create-turtles 1000 [ set color black set label-color blue setxy random-xcor random-ycor
extensions [ dbscan ]
to setup
clear-all
ask patches [ set pcolor white ]
create-turtles 1000 [
set color black
set label-color blue
setxy random-xcor random-ycor
]
ask n-of 5 turtles [
ask turtles in-radius 3 [
set color one-of [red grey]
]
]
end
to-report radial-extent [ cluster ]
report max map [
a -> max map [
b -> [
distance a ] of b
]
cluster
]
cluster
end
to find-clusters
let red-grey-turtles turtles with [ member? color [red grey] ]
let clusters dbscan:cluster-by-location red-grey-turtles 3 3
(foreach clusters range length clusters [ [c i] ->
foreach c [
t -> ask t [
set label i
]
]
])
let num-clust length clusters
let max-clust-count max map length clusters
let mean-clust-count mean map length clusters
let var-clust-count variance map length clusters
let stdev-clust-count standard-deviation map length clusters
let max-clust-size mean map radial-extent clusters
let mean-clust-size mean map radial-extent clusters
let var-clust-size variance map radial-extent clusters
let stdev-clust-size standard-deviation radial-extent clusters
end
但是,当我运行代码时,我不断得到以下错误:
期望输入成为一个或多个代理集,但得到了列表[(海龟3)(海龟19)(海龟93)(海龟186)(海龟239)(海龟243)(海龟322)(海龟326)(海龟528)(海龟587)(海龟610)(海龟712)(海龟719)(海龟736)(海龟754)(海龟799)(海龟873)(海龟874)(海龟887)(海龟889)(海龟963)乌龟18乌龟140乌龟156乌龟530乌龟557乌龟605乌龟687乌龟919乌龟979乌龟252乌龟506乌龟978乌龟989乌龟14乌龟534乌龟586乌龟658乌龟133乌龟606乌龟702乌龟995乌龟597乌龟949乌龟160乌龟244乌龟703(海龟742)(海龟902)]取而代之。
显然,由于使用of
操作符来确定簇外半径,径向范围函数将海龟簇视为列表而不是代理集
有没有办法解决这个问题?好消息:你的记者没事 …请更正最后一行
let stdev-clust-size standard-deviation radial-extent clusters
要映射
报告者浏览集群
:
let stdev-clust-size standard-deviation map radial-extent clusters