次元削減は常にいくつかの情報を失いますか?


10

タイトルが言うように、次元削減は常にいくつかの情報を失いますか?たとえばPCAを考えてみましょう。私が持っているデータが非常に少ない場合、「より良いエンコーディング」が見つかると思います(これはどういうわけかデータのランクに関連していますか?)何も失われません。


7
いいえ、もちろん違います。たとえば、PCAの特異値の一部は真のゼロになる場合があります。これは、データの記録に使用されるディメンションを「埋める」かどうかよりも、データの「スパース性」に関連がありません。
whuber

1
なるほど、分かりました。あなたのコメントを短い答えとして書いてもらえますか(時間があれば、小さな例でも)。
2013

1
2次元データがあり、各ポイントのy値が「0」である場合を考えます。最初の主成分はX軸であり、事実上1次元であるため、データをこの単一の次元に投影しても何も失われません。
David Marx

回答:


9

次元削減は常に情報失うとは限りません。場合によっては、情報を破棄せずに、データをより低次元の空間で表すことができます。

Qxy

放射状平均デモ

Q(x,y)x2+y2Q(r)Q(x,y)

Q(x,y)Q(r)

MM=USVTMSSi,i)iUVSNxNNxNSUVMQ(x,y)上記のマトリックスには10,000要素が含まれています(つまり、100x100です)。これに対してSVDを実行すると、特異ベクトルの1つのペアのみが非ゼロ値[* 2]を持つことがわかります。したがって、元の行列を2つの100要素ベクトルの積(200係数ですが、実際には少し良くできます[* 3])。

一部のアプリケーションでは、特異値(SVD)または負荷(PCA)が高い主成分によって有用な情報が収集されることがわかっています(または少なくとも想定しています)。これらの場合、有用な信号ではなく迷惑なノイズが含まれているという理論に基づいて、ゼロでない場合でも、ローディングが小さい特異ベクトル/ベース/主成分を破棄することがあります。負荷に関係なく、特定のコンポーネントをその形状に基づいて拒否する(たとえば、既知の加法性ノイズのソースに似ている)ことをときどき見ました。これが情報の損失であるかどうかはわかりません。

PCAの情報理論的最適性については、いくつかのきちんとした結果があります。信号がガウスであり、加法ガウスノイズで破損している場合、PCAは信号とその次元削減バージョンの間の相互情報を最大化できます(ノイズが同一性のような共分散構造を持っていると想定)。


脚注:

  1. これは安っぽくて完全に非物理的なモデルです。ごめんなさい!
  2. 浮動小数点の不正確さのため、これらの値の一部は代わりに完全にゼロではありません。
  3. US

I(r)

r=(x2+y2)

1
マット、私の質問は本当にこれに相当します:あなたは私たちに説明や参照なしで写真を見せて、それを「データ」と呼んでいます:私はあなたがそれをデータとして考えているという意味で知りたいのですが。「ヒートマップ」表現は通常データではなく、データから作成されたものであるため、コメントはこの問題を混乱させます。たとえば、それらが不規則な2Dポイントデータであり、それらに放射状に対称的な密度を当てはめると、図のように、画像は1次元として解釈されますが、データの無損失の次元削減にはなりません。
whuber

1
おそらく、代わりに「グリッド化」または「ラスター」と言うべきでした。データがグリッド上で収集され、各グリッドポイントが(スカラー)値に関連付けられている状況を想像していましたが、値は(写真)画像のように必ずしも光強度ではありません。とはいえ、私は明らかにこの答えを揺るがしているわけではありません。もっと首尾一貫したものに編集してみましょう!
Matt Krause 2013

2
+1:編集によりポイントがより明確になります。余分な努力をありがとう!
whuber

4

あなたの質問の背後にある質問は「情報を作るものは何か」だと思います。いい質問ですね。

文法の専門性:

PCAは常に情報失いますか?いいえ。それはない、時には情報を失いますか?もちろんです。コンポーネントから元のデータを再構築できます。常に情報が失われる場合、これは不可能です。

データの次元を削減するために使用しても、重要な情報が失われないことが多いため、便利です。データを失うと、頻度の高いデータになることが多く、それほど重要ではありません。大規模で一般的な傾向は、より大きな固有値に関連付けられたコンポーネントに取り込まれます。


4

n×p

最も単純なケースでは、1つの次元が他の次元の線形結合である場合、情報を失うことなく次元を1つ減らすことができます。ドロップされた次元は、必要に応じて残りのものから再作成できるためです。

x3がx1とx2の正確な線形結合であるこの3次元のケースを考えてみましょう。x3が他の2つの両方に関連していることは明らかですが、元のデータを見れば明らかではありません。

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

しかし、主成分を見ると、3番目はゼロです(数値誤差内)。

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

最初の2つの主成分のプロットは、回転したx2に対するx1のプロットと同じです(わかりましたが、あまり明確ではありません。後で詳しく説明します)

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

合理的な定義により、次元を1つ減らし、すべての情報を保持しました。

これは線形の次元削減を超えて拡張されますが、当然、説明するのがより複雑になります。ポイントは、全体的な答えは「いいえ」であり、いくつかの次元が他の組み合わせの関数である場合ではないということです。

Rコード:

library(GGally)


n <- 10^3
dat <- data.frame(x1=runif(n, 0, 3), x2=rnorm(n))
dat$x3 <- with(dat, x1 + x2)

ggpairs(dat)

pc <- princomp(dat)
plot(pc)

par(mfrow=c(1,2))
with(dat, plot(dat$x1, dat$x2, col="red", main="Original data", bty="l"))
with(pc, plot(scores[,1], scores[,2], col="blue", main="Scores from principal components(\n(rotated)", bty="l"))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.