MathematicaのAgglomerateのバグ


Mathematica 8.0, 9.0, 10.0, 10.1, 10.2, 10.3, 10.4.1, 11.2 for Microsoft Windows (64-bit)と10.0.0, 10.3.1 for Linux ARM (32-bit)でのことです。

Mathematicaには、階層的クラスタリングができる関数が3つ用意されています。FindClustersAgglomerateClusteringComponentsです。3つもあるのが問題な気もしますが、とりあえずそれはよしとして・・・

FindClustersにはバグがあることを以前報告しました。

ですから、階層的クラスタリングをしたいときは、AgglomerateかClusteringComponentsを使わなければなりませんが、残念なことに、Agglomerateにもバグがあります。FindClustersの場合と同様、このデータと次のコードで再現できます(RSSリーダーでは表示されないかもしれません)。Assertによる警告は表示されませんが、UMMでも動きます。

クラスタリング結果にはすべての要素(この例では63個)が入っていなければなりませんが、結果を数えてみると足りません(この例では38個)。このバグは報告済みですが、解決方法はわかっていません。バグが修正されたバージョンを受け取るために、プレミアユーザになっています。

FindClustersとAgglomerateが使えないとなると、残るはClusteringComponentsだけになるわけですが、これにもちょっと問題があります(MathematicaのClusteringComponentsの困ったところ)。

というわけで、階層的クラスタリングをしたいときはRを使うのがよさそうです(参考)。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です