小编Hod*_*oda的帖子

HDBSCAN参数区别

我对 HDBSCAN 中以下参数之间的差异感到困惑

  1. 最小簇大小
  2. 最小样本数
  3. cluster_selection_epsilon

如我错了请纠正我。

对于min_samples,如果设置为 7,则形成的簇需要有 7 个或更多点。因为cluster_selection_epsilon如果设置为 0.5 米,则任何相距超过 0.5 米的簇都不会合并为一个。这意味着每个簇仅包含相距 0.5 米或更小的点。

这与 有何不同min_cluster_size

cluster-analysis machine-learning hierarchical-clustering scikit-learn hdbscan

8
推荐指数
1
解决办法
7554
查看次数

我想在Prolog中实现谓词noDupl / 2并遇到单例变量的问题

我的困惑主要在于理解单例变量。

我想noDupl/2在Prolog中实现谓词。该谓词可用于识别列表中仅出现一次的数字,即没有重复的数字。的第一个参数noDupl是要分析的列表。第二个参数是不重复的数字列表,如下所述。例如,对于列表[2, 0, 3, 2, 1][0, 3, 1]将计算结果(因为2重复)。在我的实现中,我使用了预定义的成员谓词,并使用了一个称为helper的辅助谓词。

我将用伪代码解释我的逻辑,以便您可以帮助我确定我哪里出错了。

  1. 首先,如果第一个元素不是列表其余部分的成员,则将第一个元素添加到新结果List中(以其开头)。
  2. 如果第一个元素是的成员T,请在列表的其余部分,第一个元素H和新列表上调用helper方法。
  3. 助手方法,如果H在尾部找到,则返回不带的列表H,即Tail

    noDupl([],[]).
    noDupl([H|T],L) :-
       \+ member(H,T),
        noDupl(T,[H|T]).
    noDupl([H|T],L) :-
       member(H,T),
       helper(T,H,L).
    
    helper([],N,[]).
    helper([H|T],H,T). %found place of duplicate & return list without it
    helper([H|T],N,L) :-
       helper(T,N,[H|T1]).%still couldn't locate the place, so add H to the new List as it's not a duplicate
    
    Run Code Online (Sandbox Code Playgroud)

在编写代码时,在选择新变量或使用谓词参数中定义的变量(特别是关于自由变量)时总是遇到麻烦。谢谢。

list prolog

6
推荐指数
2
解决办法
325
查看次数