我对 HDBSCAN 中以下参数之间的差异感到困惑
如我错了请纠正我。
对于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
我的困惑主要在于理解单例变量。
我想noDupl/2在Prolog中实现谓词。该谓词可用于识别列表中仅出现一次的数字,即没有重复的数字。的第一个参数noDupl是要分析的列表。第二个参数是不重复的数字列表,如下所述。例如,对于列表[2, 0, 3, 2, 1],[0, 3, 1]将计算结果(因为2重复)。在我的实现中,我使用了预定义的成员谓词,并使用了一个称为helper的辅助谓词。
我将用伪代码解释我的逻辑,以便您可以帮助我确定我哪里出错了。
T,请在列表的其余部分,第一个元素H和新列表上调用helper方法。助手方法,如果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)在编写代码时,在选择新变量或使用谓词参数中定义的变量(特别是关于自由变量)时总是遇到麻烦。谢谢。