クラスタリングのためにトレーニングセットとテストセットを設定する必要がありますか?


10

分類と回帰を行う場合、通常、モデルの構築と改善に役立つテストとトレーニングセットを設定します。

ただし、クラスタリングを行う場合、テストセットとトレーニングセットも設定する必要がありますか?どうして?


はい-分類/回帰と同様の理由で。作成したモデル(たとえば、エルボプロットがk平均クラスタリングでk = 3であることを示している)が、目に見えないデータに依然として適切であることを確認したいとします。
イランマン2017年

ilanmanをありがとう;)また、kmeansなどのクラスタリングを実行するときに、実際のクラスタ数を決定する方法について何か推奨事項はありますか?
rz.He 2017年

回答:


6

はい、クラスタリングも過剰適合問題に悩まされる可能性があるためです。たとえば、クラスターの数を増やすと、常に「パフォーマンスが向上します」。

以下は、K-Meansクラスタリングを使用した1つのデモです。

K-meansの目的関数は(表記の詳細はここにあります

J=Σ=1kΣj=1バツjcj2

そのような目的では、が低いほど「より良い」モデルを意味します。J

次のデータ(irisデータ)があるとします。クラスターの数をに選択すると、クラスターの数を選択するよりも常に「優れています」。次に、クラスターを選択する方がクラスターよりも優れています。このトラックを続けて、コストで終了できます。クラスターの数をデータポイントの数と等しくし、すべてのクラスターの中心を対応するポイントに配置します。3 5 4454J=0

d=iris[,c(3,4)]

res4=kmeans(d, 4,nstart=20)
res3=kmeans(d, 3,nstart=20)


par(mfrow=c(1,2))
plot(d,col=factor(res4$cluster),
		 main=paste("4 clusters J=",round(res4$tot.withinss,4)))
plot(d,col=factor(res3$cluster),
		 main=paste("3 clusters J=",round(res3$tot.withinss,4)))

ここに画像の説明を入力してください

テストのためにデータを保留している場合は、過剰適合を防ぐことができます。同じ例で、多数のクラスターを選択し、すべてのクラスターの中心をトレーニングデータポイントに配置するとします。テストデータポイントがトレーニングデータと重複しないため、テストエラーは大きくなります。


こんにちはhxd1011、迅速な返信ありがとうございます。別の質問です。kmeansなどのクラスタリングを実行するときに、実際のクラスター数を決定する方法について何か推奨事項はありますか?
rz.He 2017年

@ rz.Heはい、この答えのチェックstats.stackexchange.com/questions/261537/...
ハイタオ・ドゥ

2
+1は建設的な答えですが、悪魔の支持者を演じるには、3つのクラスターであることを知っています。コンテキストなしで誰かがこのデータを表示した場合、2クラスタソリューションも美しく機能します。「real-data-have-outliers」をプレイするための外れ値として、右上端のいくつかのポイントもあるかもしれません。ブートストラップ/ジッター/サブセット化されたクラスタリング実行間の一貫性を、いくつかの統計(コフェネティック相関、Adjusted Rand-Indexなど)を使用して調べると、はるかに建設的(かつ厳格)になります。
usεr11852

そして、もしあなたがk-meansを使わないなら?つまり、平均リンケージクラスタリングですか?あなたの答えがk-meansに適合しすぎているのではないかと心配です。
QUITあり-Anony-Mousse 2017

@ Anony-Mousse:答えは例としてk-meansに特有ですが、DBSCANやスペクトルクラスタリング、またはそれが使用されたものであれば、質的には同じです。特定のメトリックが過剰に適合している可能性があることを示しているだけです。
usεr11852

5

いいえ、これは通常不可能です。

分類子のように使用できるクラスタリングはほとんどありません。k-meansやPAMなどでのみ「一般化」を評価できますが、それ以来、クラスタリングははるかに多様化(そして興味深い)になりました。そして実際、古い階層クラスタリングでさえ、「新しい」データにうまく一般化されません。クラスタリングは分類ではありません。分類からの多くの方法は、クラスタリングにうまく移行しません。ハイパーパラメータ最適化を含みます。

部分的にラベル付けされたデータしかない場合は、これらのラベルを使用してパラメーターを最適化できます。しかし、クラスタリングの一般的なシナリオは、データセットについてさらに学びたいというものです。クラスタリングを数回実行して、興味深いクラスタを調査し(通常、一部のクラスタは明らかに小さすぎるか、または大きすぎて興味深いものではないためです)、得られた洞察の一部を書き留めます。クラスタリングは、人間がデータセットを探索するのを助けるツールであり、自動的なものではありません。ただし、クラスタリングは「デプロイ」しません。これらは信頼性が高すぎるため、単一のクラスタリングでは「全体像」を伝えることはできません。


1
クラスタリングはデータのグローバルプロパティを反映し、通常、「根本的な真実」はありません。悲しいことに、最初はクラスタリングを分類子として使用することを主張する人はいないと思います。それでも、興味深いクラスタリングを見つけた場合、それらを意思決定プロセスに組み込んでその結果を使用しようとしないのは愚かです。(そうでなければ、なぜデータを最初からクラスター化したのですか?)
usεr118522017年

クラスタリングを実行するには、最適化の目標が必要です。最適化の問題である場合は、1つのデータに適合しすぎる可能性があります。kmeansに加えて、他の多くの方法でもいくつかのクラスターが必要です。
Haitao Du

1
すべてのクラスタリングアルゴリズムが最適化の問題であるとは限りません。
QUITあり-Anony-Mousse 2017年

1
そして、結果を使用する限り、生の結果ではなく、洞察を使用したいのです。クラスタ、および仕事の解釈解釈をひどく割り当てられたポイントがたくさんあるでしょうので、。
QUITあり--Anony-Mousse 2017年

私はこの答えを支持します。新しいデータポイントが来ると、表現を学習してからクラスター化するので、テストは必要ありません。分割しても、データ情報は失われます。
Aaditya Ura

1

いいえ。教師なし学習ではトレーニングやテストを使用しません。教師なし学習には、アルゴリズムのパフォーマンスをテストする目的関数はありません。


3
これ以上の詳細がなければ、これはディスカッションと2つの既存の答えに実際に追加されるわけではありません。拡大できますか?
mdewey 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.