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

行列の特異値分解(SVD) Aによって与えられます。ここで、とは直交行列で、は対角行列です。 =USVUVS

3
SVDとPCAの関係。SVDを使用してPCAを実行する方法
主成分分析(PCA)は通常、共分散行列の固有分解によって説明されます。ただし、データ行列特異値分解(SVD)を介して実行することもできます。どのように機能しますか?これら2つのアプローチの関係は何ですか?SVDとPCAの関係は何ですか?XX\mathbf X または、言い換えると、データ行列のSVDを使用して次元削減を実行する方法ですか?

1
PCAを逆にし、いくつかの主成分から元の変数を再構築する方法は?
主成分分析(PCA)は、次元削減に使用できます。このような次元削減が実行された後、少数の主成分から元の変数/機能をどのように近似的に再構築できますか? あるいは、データから複数の主成分をどのように削除または破棄できますか? 言い換えれば、PCAを逆にする方法は? PCAが特異値分解(SVD)と密接に関連していることを考えると、次のように同じ質問をすることができます。SVDを逆にする方法は?

3
例:バイナリ結果にglmnetを使用したLASSO回帰
私は興味のある結果が二分されglmnetているLASSO回帰の使用に手を出し始めています。以下に小さな模擬データフレームを作成しました。 age <- c(4, 8, 7, 12, 6, 9, 10, 14, 7) gender <- c(1, 0, 1, 1, 1, 0, 1, 0, 0) bmi_p <- c(0.86, 0.45, 0.99, 0.84, 0.85, 0.67, 0.91, 0.29, 0.88) m_edu <- c(0, 1, 1, 2, 2, 3, 2, 0, 1) p_edu <- c(0, 2, 2, ...
77 r  self-study  lasso  regression  interpretation  anova  statistical-significance  survey  conditional-probability  independence  naive-bayes  graphical-model  r  time-series  forecasting  arima  r  forecasting  exponential-smoothing  bootstrap  outliers  r  regression  poisson-distribution  zero-inflation  genetic-algorithms  machine-learning  feature-selection  cart  categorical-data  interpretation  descriptive-statistics  variance  multivariate-analysis  covariance-matrix  r  data-visualization  generalized-linear-model  binomial  proportion  pca  matlab  svd  time-series  correlation  spss  arima  chi-squared  curve-fitting  text-mining  zipf  probability  categorical-data  distance  group-differences  bhattacharyya  regression  variance  mean  data-visualization  variance  clustering  r  standard-error  association-measure  somers-d  normal-distribution  integral  numerical-integration  bayesian  clustering  python  pymc  nonparametric-bayes  machine-learning  svm  kernel-trick  hyperparameter  poisson-distribution  mean  continuous-data  univariate  missing-data  dag  python  likelihood  dirichlet-distribution  r  anova  hypothesis-testing  statistical-significance  p-value  rating  data-imputation  censoring  threshold 

3
SVDの背後にある直感とは何ですか?
特異値分解(SVD)について読みました。ほとんどすべての教科書では、指定された仕様で行列を3つの行列に分解することが言及されています。 しかし、そのような形式でマトリックスを分割する背後にある直観は何ですか?次元削減のためのPCAおよびその他のアルゴリズムは、アルゴリズムに優れた視覚化特性があるという意味で直感的ですが、SVDではそうではありません。

1
Biplotとの関係におけるPCAおよびコレスポンデンス分析
Biplotは、主成分分析(および関連する手法)の結果を表示するためによく使用されます。コンポーネントの負荷とコンポーネントのスコアを同時に表示するデュアルまたはオーバーレイ散布図です。本日、@ amoebaから、バイプロット座標がどのように生成/スケーリングされるかを尋ねる質問に対する私のコメントから離れた答えを彼が与えたと通知されました。そして彼の答えは、いくつかの方法をある程度詳細に検討しています。@amoebaは、私の経験をbiplotと共有するかどうかを尋ねました。 私の経験(理論と実験の両方)は、非常に控えめですが、それほど頻繁に認識されない2つのことを強調しています。(2)PCA、コレスポンデンス分析(およびその他の既知の手法)は、実際にはバイプロットの特定のケースです。または、少なくとも、彼らは双子の双子です。バイプロットを実行できる場合は、他の2つを実行できます。 あなたへの私の質問は次のとおりです:彼ら(PCA、CA、Biplot)はあなたのためにどのように接続されていますか?あなたの考えを共有してください。私はそれについて自分のアカウントを投稿しています。さらに回答を追加し、重要な発言をお願いします。

2
部分最小二乗回帰の背後にある理論
SVDとPCAを理解している人のために、部分最小二乗回帰(オンラインで入手可能)の背後にある理論の説明をお勧めできますか?私は多くのソースをオンラインで見てきましたが、厳密さとアクセシビリティの適切な組み合わせを備えたものは見つかりませんでした。 統計的学習の要素を調べました。これは、相互検証、QLS(部分最小二乗法)回帰とは何か、OLSとはどう違うのかという質問に対するコメントで提案されました。、しかし、私はこの参照がトピックの正義を行うとは思わない(そうするのは簡単すぎて、主題に関する多くの理論を提供しない)。私が読んだから、PLS、予測変数の線形結合を利用その最大化共分散制約を受けるとz_i ^ Tz_j = 0であれば、私\ NEQ j、ここで\ varphi_iz私= Xφ私zi=Xφiz_i=X \varphi_iyTz私yTzi y^Tz_i Z T I Z 、J = 0 、I ≠ jは、φ I∥はφ私∥ = 1‖φi‖=1\|\varphi_i\|=1zT私zj= 0ziTzj=0z_i^Tz_j=0i ≠ ji≠ji \neq jφ私φi\varphi_i共分散を最大化する順序で繰り返し選択されます。しかし、私が読んだ後でも、それが本当かどうか、もしそうなら、メソッドがどのように実行されるかはまだわかりません。

1
大規模なスパース行列の次元削減(SVDまたはPCA)
/ edit:irlba :: prcomp_irlbaを使用できるようになりました。 / edit:自分の投稿のフォローアップ。 irlba現在、「center」および「scale」引数があり、これを使用して主成分を計算できます。例: pc <- M %*% irlba(M, nv=5, nu=0, center=colMeans(M), right_only=TRUE)$v Matrix機械学習アルゴリズムで使用したい機能の大規模でまばらなものがあります。 library(Matrix) set.seed(42) rows <- 500000 cols <- 10000 i <- unlist(lapply(1:rows, function(i) rep(i, sample(1:5,1)))) j <- sample(1:cols, length(i), replace=TRUE) M <- sparseMatrix(i, j) このマトリックスには多くの列があるため、その次元を管理しやすいものに減らしたいと思います。優れたirlbaパッケージを使用してSVDを実行し、最初のn個の主要コンポーネントを返すことができます(ここに示す5つ。実際のデータセットではおそらく100または500を使用します)。 library(irlba) pc <- irlba(M, nu=5)$u ただし、PCAを実行する前に、行列を中央に配置する必要があることを読みました(各列から列の平均値を減算します)。これは私のデータセットで行うことは非常に難しく、さらにマトリックスのスパース性を破壊します。 スケーリングされていないデータに対してSVDを実行し、それを機械学習アルゴリズムに直接入力するのはどの程度「悪い」のでしょうか?マトリックスのスパース性を維持しながら、このデータをスケーリングできる効率的な方法はありますか? / edit:AはB_minerによって注目されました。「PC」は次のようになります。 ...

1
センタリングはPCAにどのように違いをもたらしますか(SVDおよび固有分解の場合)?
データのセンタリング(または軽for)はPCAに対してどのような違いがありますか?数学が簡単になる、または最初のPCが変数の手段に支配されるのを防ぐと聞いたことがありますが、まだ概念をしっかりと把握できていないように感じます。 たとえば、ここで一番の答えは、どのようにデータをセンタリングすることで、回帰とPCAのインターセプトを取り除きますか?センタリングしないと、点群の主軸ではなく、原点を介して最初のPCAがどのように引き出されるかを説明します。PCが共分散行列の固有ベクトルからどのように取得されるかについての私の理解に基づいて、私はこれがなぜ起こるのか理解できません。 さらに、センタリングがある場合とない場合の私自身の計算はほとんど意味がないようです。 irisR のデータセットのsetosa花について考えます。サンプルの共分散行列の固有ベクトルと固有値を次のように計算しました。 data(iris) df <- iris[iris$Species=='setosa',1:4] e <- eigen(cov(df)) > e $values [1] 0.236455690 0.036918732 0.026796399 0.009033261 $vectors [,1] [,2] [,3] [,4] [1,] -0.66907840 0.5978840 0.4399628 -0.03607712 [2,] -0.73414783 -0.6206734 -0.2746075 -0.01955027 [3,] -0.09654390 0.4900556 -0.8324495 -0.23990129 [4,] -0.06356359 0.1309379 -0.1950675 0.96992969 最初にデータセットを中央に配置すると、まったく同じ結果が得られます。センタリングは共分散行列をまったく変更しないため、これは非常に明白なようです。 df.centered <- scale(df,scale=F,center=T) e.centered<- ...
30 r  pca  svd  eigenvalues  centering 

5
協調フィルタリングでSVDを使用するにはどうすればよいですか?
共同フィルタリングでSVDがどのように使用されるか、少し混乱しています。ソーシャルグラフがあり、エッジから隣接行列を作成し、SVD(正則化、学習率、スパース性最適化などを忘れましょう)を使用すると、このSVDを使用して推奨事項を改善できますか? 私のソーシャルグラフがinstagramに対応しており、ソーシャルグラフのみに基づいて、サービス内のユーザーを推奨する責任が課せられたとします。最初に隣接行列を作成し、SVD取得し、最初の固有値を選択します。(m × m )A = U s V kAA\mathbf A (m × m )(m×m)(m\times m)A = U s VA=UsV\mathbf A = \mathbf{U s V}kkk おそらく新しい行列のセットを作成します。 それでは何をしますか?うんN E WsN E WVN E W〜M × K〜K × K〜K × MUnew∼m×ksnew∼k×kVnew∼k×m\begin{align} \mathbf U_{new} &\sim m\times k \\ \mathbf s_{new} &\sim k\times k ...

1
相関行列のSVDは加算的である必要がありますが、
次の論文で見つかった主張を再現しようとしています。GeneExpression Dataからの相関バイクラスターの検索です。 命題4.。次にあります:バツ私J= R私CTJXIJ=RICJTX_{IJ}=R_{I}C^{T}_{J} 私。場合加法モデルと完全bicluster、次いで列の相関を持つ完全biclusterあります。 ii。が加法モデルを備えた完全な双である場合、は行に相関がある完全な双クラスターです。 iii。と両方が加法モデルを備えた完全な双クラスターである場合、は完全な相関双クラスターです。 X I J C J X I J R I C J X I JR私RIR_{I}バツ私JXIJX_{IJ}CJCJC_Jバツ私JXIJX_{IJ}R私RIR_ICJCJC_Jバツ私JXIJX_{IJ} これらの命題は簡単に証明できます... ...しかし、もちろん、彼らはそれを証明しません。 この命題を実証できるかどうかを確認するために、紙に書かれた簡単な例とベース+カスタムRコードを使用しています。 corbic <- matrix(c(0,4,-4,2,2,-2,6,0,4,-8,16,-2,-2,10,-14,4), ncol=4) (表1Fから) 論文で説明されているように、標準X = svdフォームをに変換するカスタムコード: X = R C TうんdVTUdVTUdV^Tバツ= R CTX=RCTX=RC^{T} svdToRC <- function(x, ignoreRank = FALSE, r = length(x$d), zerothresh=1e-9) ...

4
Andrew NgがPCAを行うために共分散行列のEIGではなくSVDを使用することを好むのはなぜですか?
Andrew NgのCourseraコースのPCAと他の資料を勉強しています。スタンフォードNLPコースcs224nの最初の課題、およびAndrew Ngの講義ビデオでは、共分散行列の固有ベクトル分解の代わりに特異値分解を行い、NgはSVDが固有分解よりも数値的に安定しているとさえ述べています。 私の理解では、PCAの場合、(m,n)サイズの共分散行列ではなく、サイズのデータ行列のSVDを行う必要があり(n,n)ます。そして、共分散行列の固有ベクトル分解。 なぜデータ行列ではなく共分散行列のSVDを行うのですか?

1
PCAで得られた低ランクの近似行列によって、再構築エラーのどのノルムが最小化されますか?
PCA(またはSVD)行列の近似を考えるとバツXX行列とX、我々は知っていることをXが最良の低ランク近似値であるX。バツ^X^\hat Xバツ^X^\hat XバツXX これはによるとされる誘発∥は⋅ ∥は2∥⋅∥2\parallel \cdot \parallel_2規範(すなわち最大固有値規範)やフロベニウスに応じ∥は⋅ ∥はF∥⋅∥F\parallel \cdot \parallel_F標準?

2
Pythonのscikit-learn LDAが正しく機能しないのはなぜですか?また、SVDを介してLDAを計算する方法
私はscikit-learn次元削減のために機械学習ライブラリ(Python)の線形判別分析(LDA)を使用していましたが、結果に少し興味がありました。私は今、LDAが何をしているのか疑問に思っていscikit-learnます。その結果、例えば、手動でのアプローチやRで行われたLDAとは異なった結果になります。 基本的に最も懸念さscikit-plotれるのは、相関0があるはずの2つの変数間の相関を示すことです。 テストでは、Irisデータセットを使用し、最初の2つの線形判別式は次のようになりました。 IMG-1 scikit-learn経由のLDA これは、私がscikit-learn ドキュメントで見つけた結果と基本的に一致しています。 今、私はLDAを段階的に通り抜けて、異なる予測を得ました。何が起こっているのかを知るために、さまざまなアプローチを試しました。 IMG-2。生データのLDA(センタリングなし、標準化なし) そして、最初にデータを標準化(zスコア正規化;単位分散)した場合のステップバイステップのアプローチになります。同じことを平均中心化のみで行いました。これにより、同じ相対投影画像が得られるはずです(実際にそうなりました)。 IMG-3。平均中心化または標準化後の段階的なLDA IMG-4。RのLDA(デフォルト設定) IMG-3のLDAは、データを中央に配置したため(推奨されるアプローチ)、RでLDAを実行した誰かが投稿で見つけたものとまったく同じに見えます。 参照用コード すべてのコードをここに貼り付けたくはありませんでしたが、LDAプロジェクションで使用したいくつかのステップ(以下を参照)に分けてIPythonノートブックとしてアップロードしました。 ステップ1:d次元平均ベクトルの計算m私= 1n私∑X ∈ D私nバツkm私=1n私∑バツ∈D私nバツk\mathbf m_i = \frac{1}{n_i} \sum\limits_{\mathbf x \in D_i}^n \; \mathbf x_k ステップ2:散布図の計算 2.1クラス内散布行列は、次の方程式によって計算されますS W = C Σ I = 1、S I = C Σ I = 1 N Σのx ∈ D I(X ...

2
巨大なスパース行列のSVDを計算する方法は?
データが非常に少ない非常に大きな正行列(65M x 3.4M)の特異値分解(SVD)を計算する最良の方法は何ですか? 行列の0.1%未満はゼロではありません。次の方法が必要です。 メモリに収まります(オンラインメソッドが存在することを知っています) 妥当な時間で計算されます:3,4日 精度は十分に向上しますが、精度は私の主な関心事ではなく、投入するリソースの量を制御できるようにしたいと考えています。 それを実装するHaskell、Python、C#などのライブラリがあれば素晴らしいでしょう。私はmathlabやRを使用していませんが、必要に応じてRを使用できます。
26 svd  numerics 

7
行列の列間の線形依存性のテスト
行列式がゼロのセキュリティリターンの相関行列があります。(サンプル相関行列と対応する共分散行列は理論的には正定でなければならないため、これは少し驚くべきことです。) 私の仮説は、少なくとも1つの証券が他の証券に線形に依存しているということです。Rに線形依存関係の各列を順番にテストする関数がありますか? たとえば、1つのアプローチは、相関行列を一度に1つのセキュリティで構築し、各ステップで行列式を計算することです。行列式= 0の場合、他の証券の線形結合である証券を特定したため停止します。 そのような行列の線形依存性を特定する他の技術が評価されます。

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