タグ付けされた質問 「pca」

主成分分析(PCA)は、線形次元削減手法です。これは、多変量データセットを、できるだけ多くの情報(できるだけ多くの分散)を維持する、構築された変数のより小さなセットに削減します。主成分と呼ばれるこれらの変数は、入力変数の線形結合です。

1
教師あり次元削減
15個のラベル付きサンプル(10グループ)で構成されるデータセットがあります。ラベルの知識を考慮して、次元削減を2つの次元に適用します。 PCAなどの「標準」の教師なし次元削減手法を使用する場合、散布図は既知のラベルとは関係がないようです。 私が探しているものには名前がありますか?ソリューションの参考文献をいくつか読みたいです。

1
PCAが常に座標軸を回転させる場合、「回転」および「非回転」主成分とは何ですか?
私の知る限り、主成分は、座標軸を回転させて最大分散の方向に合わせることで得られます。 それにもかかわらず、私は「回転していない主成分」について読み続け、私の統計ソフトウェア(SAS)は、回転していない主成分だけでなく、バ​​リマックスで回転した主成分も提供してくれます。ここで混乱しています。主成分を計算するとき、軸はすでに回転しています。なぜ別の回転が必要なのですか?「回転していない主成分」とはどういう意味ですか?


1
PCAローディングの解釈方法は?
PCAについて読んでいると、次の説明に出会いました。 各データポイントが数学のテスト、物理テスト、読解テスト、語彙テストの1人の生徒のスコアを表すデータセットがあるとします。 データの変動の90%をキャプチャし、それらの負荷を解釈する最初の2つの主成分を見つけます。最初の主成分は全体的な学力を表し、2番目は量的能力と言語的能力の対比を表すと結論付けます。 テキストPC1とPC2負荷であることを状態 PC1のためにと PC2のため、および提供以下の説明:(0.5 、0.5 、- 0.5 、- 0.5 )(0.5 、0.5 、0.5 、0.5 )(0.5、0.5、0.5、0.5)(0.5, 0.5, 0.5, 0.5)(0.5 、0.5 、- 0.5 、- 0.5 )(0.5、0.5、−0.5、−0.5)(0.5, 0.5, -0.5, -0.5) [T]最初のコンポーネントは平均スコアに比例し、2番目のコンポーネントはスコアの最初のペアとスコアの2番目のペアの差を測定します。 この説明の意味を理解できません。
13 pca 

3
Lindsay Smithのチュートリアルを使用したRでのPCAの段階的な実装
私はRでLindsay I Smithによる優れたPCAチュートリアルを行っており、最終段階で動けなくなっています。以下のRスクリプトは、元のデータがPCA1軸に沿った直線プロットを生成する(この場合は単一の)主成分から再構築される段階(p.19)に連れて行きます(データが与えられた場合) 2つのディメンションのみがあり、2番目のディメンションは意図的に削除されています)。 d = data.frame(x=c(2.5,0.5,2.2,1.9,3.1,2.3,2.0,1.0,1.5,1.1), y=c(2.4,0.7,2.9,2.2,3.0,2.7,1.6,1.1,1.6,0.9)) # mean-adjusted values d$x_adj = d$x - mean(d$x) d$y_adj = d$y - mean(d$y) # calculate covariance matrix and eigenvectors/values (cm = cov(d[,1:2])) #### outputs ############# # x y # x 0.6165556 0.6154444 # y 0.6154444 0.7165556 ########################## (e = eigen(cm)) ##### outputs …
13 r  pca 

2
グループを分離するPCAコンポーネントの選択
私はPCAを使用して多変量データを診断するために頻繁に使用しました(数十万の変数と数十または数百のサンプルを含むオミックスデータ)。データは、いくつかのグループを定義するいくつかのカテゴリ独立変数を使用した実験から得られることが多く、対象のグループ間の分離を示すものを見つける前に、いくつかのコンポーネントをよく調べなければなりません。私はそのような差別的なコンポーネントを見つけるかなり原始的な方法を思いつきました、そして私は疑問に思います これが合理的/正当化できる範囲 同じことを達成するより良い方法があるかどうか。 これは探索的であることに注意してください。他の人を説得する前に、私は自分自身を説得したいと思います。関心のあるグループを明確に区別するコンポーネント(コントロールと治療など)があることがわかった場合、たとえそれらが応答の分散のわずかな部分を担っていたとしても、たとえば監視されたマシンからの結果よりもそれを信頼します学習。 これが私のアプローチです。Rのpca3dの「メタボ」サンプルデータセットを使用します。 アイデアは、各コンポーネントの分散が独立変数によってどの程度説明できるかを評価することです。このために、各コンポーネントの単純なモデルを計算し、R2R2R^2をメトリックとして使用して、コンポーネントを「最も興味深い」から「最も興味深い」の順に並べます。 require( pca3d ) # data on metabolic profiles of TB patients and controls data( metabo ) # first column is the independent variable pca <- prcomp( metabo[,-1], scale.= T ) # create a model for each component lm.m <- lm( pca$x ~ metabo[,1] ) …

3
Rのバリマックス回転主成分を計算する方法は?
25個の変数でPCAを実行し、を使用して上位7台のPCを選択しましたprcomp。 prc <- prcomp(pollutions, center=T, scale=T, retx=T) 次に、これらのコンポーネントでバリマックス回転を行いました。 varimax7 <- varimax(prc$rotation[,1:7]) そして今、私はvarimaxがPCAで回転されたデータを回転させたいと思っています(これはvarimaxオブジェクトの一部ではなく、負荷行列と回転行列のみです)。これを行うには、回転行列の転置にデータの転置を乗算することを読んだので、これを行っていました: newData <- t(varimax7$rotmat) %*% t(prc$x[,1:7]) しかし、上記の行列転置の次元はそれぞれおよびあるため、それは意味がありません。したがって、行ではなく、行のみの行列がます。ここで私が間違っていることや、最終的な行はどうなりますか?後で転置するだけですか?7 × 16933 7 169337×77×77\times 77×169337×169337 \times 16933777169331693316933
13 r  pca  factor-rotation 

2
ランダム行列の場合、SVDは何も説明すべきではありませんか?私は何を間違えていますか?
完全にランダムデータで構成される2次元行列を作成する場合、PCAおよびSVDコンポーネントは本質的に何も説明しないと予想されます。 代わりに、最初のSVD列がデータの75%を説明するように見えます。これはどのようにできますか?私は何を間違えていますか? プロットは次のとおりです。 Rコードは次のとおりです。 set.seed(1) rm(list=ls()) m <- matrix(runif(10000,min=0,max=25), nrow=100,ncol=100) svd1 <- svd(m, LINPACK=T) par(mfrow=c(1,4)) image(t(m)[,nrow(m):1]) plot(svd1$d,cex.lab=2, xlab="SVD Column",ylab="Singluar Value",pch=19) percentVarianceExplained = svd1$d^2/sum(svd1$d^2) * 100 plot(percentVarianceExplained,ylim=c(0,100),cex.lab=2, xlab="SVD Column",ylab="Percent of variance explained",pch=19) cumulativeVarianceExplained = cumsum(svd1$d^2/sum(svd1$d^2)) * 100 plot(cumulativeVarianceExplained,ylim=c(0,100),cex.lab=2, xlab="SVD column",ylab="Cumulative percent of variance explained",pch=19) 更新 ありがとう@アーロン。修正は、既に述べたように、数値が0を中心とするように行列にスケーリングを追加することでした(つまり、平均は0です)。 m <- scale(m, scale=FALSE) 修正された画像は、ランダムデータを含む行列の場合、最初のSVD列が予想どおり0に近いことを示しています。
13 r  pca  svd 

3
ランダムな森林分類の前の高次元テキストデータのPCA?
ランダムフォレスト分類を実行する前にPCAを行うことは理にかなっていますか? 高次元のテキストデータを扱っており、次元の呪いを回避するために機能の削減を行いたいのですが、ランダムフォレストは既に何らかの次元の削減を行っていませんか?

3
PCAのコンポーネントは実際に分散の割合を表しますか?合計すると100%を超えることはできますか?
O'Reillyの「Machine Learning For Hackers」は、各主成分が分散の割合を表すと述べています。以下のページの関連部分を引用しました(8章、207ページ)。別の専門家に話すと、彼らはそれがパーセンテージであることに同意しました。 ただし、24個のコンポーネントの合計は133.2095%になります。それはどうしてですか? PCAを使用できると確信しましたが、Rでそれを行うにはどうすればよいですか?繰り返しますが、これはRが輝く場所です。PCA全体を1行のコードで実行できます。princomp関数を使用してPCAを実行します。 pca <- princomp(date.stock.matrix[,2:ncol(date.stock.matrix)]) Rにpcaと入力するだけで、主要なコンポーネントの簡単な要約が表示されます。 Call: princomp(x = date.stock.matrix[, 2:ncol(date.stock.matrix)]) Standard deviations: Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 29.1001249 20.4403404 12.6726924 11.4636450 8.4963820 8.1969345 5.5438308 Comp.8 Comp.9 Comp.10 Comp.11 Comp.12 Comp.13 Comp.14 5.1300931 4.7786752 4.2575099 3.3050931 2.6197715 2.4986181 2.1746125 Comp.15 Comp.16 Comp.17 Comp.18 Comp.19 …
13 r  pca 

2
データ削減のために繰り返される対策に対してPCAを実行できますか?
私は、2つのコンテキストのそれぞれで87の動物に対して3つの試験を行っています(データが欠落している、データが欠落している= 64の動物)。文脈の中で、私は多くの具体的な対策(入力する時、避難所に戻った回数など)を持っているので、私は(それらを呼び出すそのコンテキストで動作を説明し、2〜3の複合行動スコアを開発したいですC1、C2、C3)。私C1は、3つの試験すべてと87匹の動物で同じことを意味するので、年齢、性別、血統、および個々の動物が行動に及ぼす影響を調べるために回帰を行うことができます。次にC1、特定の年齢内の他のコンテキストでの行動スコアとの関係を調べたいと思います。(1歳で、コンテキスト1のアクティビティはコンテキスト2のアクティビティを強く予測しますか?) これが繰り返し測定されない場合、PCAはうまく機能します。コンテキストの複数の測定でPCAを実行し、PC1、PC2などを使用して、1つのコンテキストのPC1とPC1(または2または3)他のコンテキスト。問題は反復測定であり、これは疑似複製に分類されます。レビュアーに断りなく「ノーゴー」と言ったことがありますが、データ削減を行うときにこれが問題になるかどうかについて明確な参照を見つけることができません。 私の推論は次のようになります。PCAで私がしていることは、元の測定値に対して純粋に記述的であるため、測定値の繰り返しは問題ではありません。コンテクスト1の「大胆さ」尺度としてアリーナに入る時間を使用していることをフィアットで宣言した場合、すべての年齢のすべての個人に匹敵するコンテクスト1大胆さ尺度があり、誰も目をつぶることはありません。私は私が使用するフィアットで宣言した場合は時間に入る+ 0.5 ⋅タイム・トゥ・遠端、同じことが行きます。私は、還元の目的のために純粋にPCAを使用していますもしそうなら、なぜそれがPC1が(それはあるかもしれないことはできません0.28 ⋅入力+ 0.63 ⋅仕上げ+ 0.02を⋅0.5 ⋅0.5⋅0.5\cdot+ 0.5 ⋅ + 0.5⋅+\ 0.5\cdot0.28 ⋅0.28⋅0.28\cdot+ 0.63 ⋅ + 0.63⋅+\ 0.63\cdot+ 0.02 ⋅ + 0.02⋅+\ 0.02\cdot 合計時間...)、入力する時間が一般的に有益で代表的な特性であると推測する代わりに、少なくとも複数の手段によって通知されますか? (注:対策の基本的な構造には興味がありません ...質問は、コンテキスト固有の動作をどのように解釈するかについてです。「コンテキスト1を使用して、ハリーが他の動物と比較してアクティブであると結論付けた場合、ハリーはコンテキスト2でアクティブですか?年齢が上がるにつれてコンテキスト1のアクティビティとして解釈するものを変更した場合、コンテキスト2のアクティビティも変更しますか?) 私はPARAFACを調べましたが、SEMを調べましたが、これらのアプローチのいずれかがサンプルサイズに適しているとは思いません。誰でも体重を量ることができますか?ありがとう。

5
異なる長さの時系列のSVD次元削減
次元削減手法として特異値分解を使用しています。 N次元のベクトルが与えられた場合D、アイデアは、相関のない次元の変換された空間で特徴を表現することです。これは、この空間の固有ベクトルのデータの情報のほとんどを重要度の高い順に凝縮します。 今、私はこの手順を時系列データに適用しようとしています。問題は、すべてのシーケンスの長さが同じではないことです。したがって、実際にnum-by-dimマトリックスを作成してSVDを適用することはできません。最初に考えたのは、行列を作成しnum-by-maxDimて空のスペースをゼロで埋めることにより、行列にゼロを埋め込むことでしたが、それが正しい方法であるかどうかはわかりません。 私の質問は、異なる長さの時系列への次元削減のSVDアプローチをどのように行いますか?あるいは、時系列で通常使用される固有空間表現の他の同様の方法はありますか? 以下は、アイデアを説明するためのMATLABコードです。 X = randn(100,4); % data matrix of size N-by-dim X0 = bsxfun(@minus, X, mean(X)); % standarize [U S V] = svd(X0,0); % SVD variances = diag(S).^2 / (size(X,1)-1); % variances along eigenvectors KEEP = 2; % number of dimensions to keep newX = U(:,1:KEEP)*S(1:KEEP,1:KEEP); % …

1
連続変数とバイナリ変数の組み合わせに基づくPCAおよびコンポーネントスコア
混合型変数(連続およびバイナリ)で構成されるデータセットにPCAを適用したい。手順を説明するために、以下のRに最小限の再現可能な例を貼り付けます。 # Generate synthetic dataset set.seed(12345) n <- 100 x1 <- rnorm(n) x2 <- runif(n, -2, 2) x3 <- x1 + x2 + rnorm(n) x4 <- rbinom(n, 1, 0.5) x5 <- rbinom(n, 1, 0.6) data <- data.frame(x1, x2, x3, x4, x5) # Correlation matrix with appropriate coefficients # Pearson product-moment: …
13 r  pca 

3
PCA最適化は凸型ですか?
主成分分析(PCA)の目的関数は、セクション2.12を参照してください(L2ノルムに再構成誤差を最小化され、ここで。別のビューが投影上の分散を最大化しようとしている我々はまた、ここでは優れた記事があります。PCAの目的関数とは何ですか?)。 私の質問は、PCA最適化は凸ですか?(ここでいくつかの議論を見つけましたが、CVで誰かがここで素晴らしい証拠を提供できることを願っています)。

3
機能の数を減らすことができるのに、なぜPCAを使用して学習アルゴリズムを高速化するのですか?
機械学習コースで、PCA(主成分分析)の一般的な使用法の1つが他の機械学習アルゴリズムの高速化であることを学びました。たとえば、ロジスティック回帰モデルをトレーニングしているとします。1からnまでのiのトレーニングセットがあり、ベクトルxの次元が非常に大きい場合(次元としましょう)、 PCAを使用して、より小さな次元(たとえばk次元)の特徴ベクトルzを取得できます。次に、iの1からnまでのトレーニングセットでロジスティック回帰モデルをトレーニングできます。特徴ベクトルの次元が少ないため、このモデルのトレーニングは高速になります。((x(i),y(i))(x(i),y(i))(x^{(i)},y^{(i)})(z(i),y(i))(z(i),y(i))(z^{(i)},y^{(i)}) ただし、ランダムにk個のフィーチャを選択し、残りを削除するだけでは、フィーチャベクトルの次元をk次元に減らすことができない理由はわかりません。 zベクトルは、特徴ベクトルの線形結合です。zベクトルはk次元の表面に限定されているため、k個の消去された特徴値を残りのk個の特徴値の線形関数として記述できます。したがって、すべてのzはk個の特徴の線形結合によって形成できます。そのため、フィーチャが削除されたトレーニングセットでトレーニングされたモデルは、PCAによって次元が削減されたトレーニングセットでトレーニングされたモデルと同じパワーを持つべきではありませんか?モデルの種類と、ある種の線形結合に依存しているかどうかだけに依存していますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.