地理データでクラスタリングを実行して、自分の地域内の風景のタイプを分類したいと考えています。
私のデータは、通常のグリッドの各フィールドの 5 つの変数 (気温、気温の振幅、降水量、高度、および土壌の種類) で構成されています。100 万を少し超えるフィールド (= データ フレーム内の行) があります。
変数のうち 4 つは数値であり、土壌タイプは数値で表されるカテゴリ変数です。(数値データは既に標準化されています。) Gower 距離非類似度行列をカウントし、この行列に対して PCA と階層的クラスタリングを実行することにしました。ただし、データが大きすぎます。
SOIL PREC TEMP ALT AMP
0 6 1.000 1.146 0.157 -0.579
1 6 0.948 1.224 0.154 -0.579
2 5 1.000 1.146 0.201 -0.662
3 6 1.078 1.093 0.177 -0.620
4 6 1.000 1.146 0.182 -0.620
5 6 1.000 1.146 0.186 -0.599
変数は勾配にあるため、サンプリングしたくありません。小さいデータで周波数を数えてガワー距離を実行しようとしましたが、それでも大きすぎます。
(1) 大きなデータセットを手動でチャンクし、(2) 各チャンク マトリックスに、距離分析の各変数の範囲の「説明」として変数の最大値と最小値を含む 2 つの行を追加し、(3) gower.dist関数を使用して各チャンクの非類似度行列をカウントし、(4) 余分な行を削除し、(5) すべてのチャンク非類似度行列を 1 つの大きな非類似度行列にマージします。
これは正しく機能する方法だと思いますか?この問題に対処する方法について他に何か提案はありますか?
非類似度行列で PCA を実行するのは正しいですか?