elki - k - クラスタリングを意味します。
-
21-12-2019 - |
質問
i 'コマンドラインでelki kを意味するのが好きです。
Runing TimeがRプログラミングと比較して短すぎるようです。私はkを実行しようとしたRでクラスタリングを実行しようとしました、そしてそれから約100秒かかりました。 さらに、k= 5、k= 10などの変化はない。
file.tsv
には60,000行と25列があります。
START=$(date +%s)
k=5
java -jar elki.jar KDDCLIApplication \
-dbc.in "file.tsv" \
-dbc.parser NumberVectorLabelParser \
-parser.colsep "\t" \
-algorithm clustering.kmeans.KMeansLloyd \
-kmeans.k $k \
-kmeans.initialization KMeansPlusPlusInitialMeans \
-kmeans.maxiter 9999 \
-resulthandler ResultWriter -out.gzip false \
-out output/k-$k \
END=$(date +%s)
DIFF=$(( $END - $START ))
echo "It took $DIFF seconds"
.
出力は"It took 5 seconds"
START=$(date +%s)
k=10
java -jar elki.jar ...
...
END=$(date +%s)
DIFF=$(( $END - $START ))
echo "It took $DIFF seconds"
.
この場合、k=10
も"It took 5 seconds"
です。
クラスタサイズに変化がないのはなぜですか?コードに問題がありますか?
解決
5秒はおそらくあなたに信頼できる測定を得るために速すぎる。
さらに、より大きな一般的な繰り返しの繰り返しで収束することがあります。
k
を使用して、実際のアルゴリズムを実行するのに必要な時間を確認できます。方法では、解析との書き込みは、非無視の衝撃を与えます。-time
は出力を無効にします。これはベンチマークにも妥当です。
-resulthandler DiscardResultHandler
を設定する必要はありません。デフォルトでは、ELKIはコンバージェンスまでkを実行します。
私は、k平均++の初期化において実装の弱さがあると信じています。たぶん初期化、解析、書き込み、あなたの総ランタイムに大きな貢献します。
-kmeans.maxiter 9999
を使用して、Parserが意図したようにファイルを理解していることを確認してください(次元を確認してください)。
所属していません StackOverflow