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

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

3
多変量正規分布からサンプルを描画するためのコレスキー対固有分解
サンプルを描きたいです。ウィキペディアは、コレスキーまたは固有分解を使用することを推奨しています。つまり、 または Σ = D 1 D T 1x∼N(0,Σ)x∼N(0,Σ)\mathbf{x} \sim N\left(\mathbf{0}, \mathbf{\Sigma} \right)Σ=D1DT1Σ=D1D1T \mathbf{\Sigma} = \mathbf{D}_1\mathbf{D}_1^T Σ=QΛQTΣ=QΛQT \mathbf{\Sigma} = \mathbf{Q}\mathbf{\Lambda}\mathbf{Q}^T したがって、サンプルは次の方法で描画できます。 または ここで、 x=D1vx=D1v \mathbf{x} = \mathbf{D}_1 \mathbf{v} x=QΛ−−√vx=QΛv \mathbf{x} = \mathbf{Q}\sqrt{\mathbf{\Lambda}} \mathbf{v} v∼N(0、I)v∼N(0,I) \mathbf{v} \sim N\left(\mathbf{0}, \mathbf{I} \right) ウィキペディアでは、どちらもサンプルの生成に同等に適していると示唆していますが、コレスキー法の方が計算時間が高速です。これは本当ですか?特に数値的に、モンテカルロ法を使用する場合、対角線に沿った分散が数桁異なる場合がありますか?この問題に関する正式な分析はありますか?

2
次元削減とクラスタリングを組み合わせるのはいつですか?
ドキュメントレベルのクラスタリングを実行しようとしています。用語ドキュメント頻度行列を作成し、k-meansを使用してこれらの高次元ベクトルをクラスタリングしようとしています。直接クラスタリングの代わりに、最初にLSA(潜在意味解析)特異ベクトル分解を適用してU、S、Vt行列を取得し、スクリープロットを使用して適切なしきい値を選択し、縮小行列(特にVtそれは私に良い結果を与えているように思えた概念ドキュメント情報を提供します)。 SVD(特異ベクトル分解)はクラスタリング(コサイン類似性尺度などを使用)であり、SVDの出力にk-meansを適用できるかどうかわからないと言う人もいます。SVDは次元削減手法であり、多数の新しいベクトルを提供するため、論理的に正しいと考えました。一方、k-meansはクラスターの数を入力として受け取り、これらのベクトルを指定された数のクラスターに分割します。この手順に欠陥はありますか、これを改善できる方法はありますか?助言がありますか?

1
時系列の隣接行列の固有関数?
簡単な時系列を考えてみましょう: > tp <- seq_len(10) > tp [1] 1 2 3 4 5 6 7 8 9 10 サンプル間の時間リンクを表すこの時系列の隣接行列を計算できます。この行列の計算では、時間0に架空のサイトを追加し、この観測と時間1の最初の実際の観測間のリンクをリンク0と呼びます。時間1と時間2の間では、リンクはリンク1などです。時間は方向性のあるプロセスであるため、サイトはサイトの「上流」にあるリンクに接続されます(影響を受けます)。したがって、すべてのサイトはリンク0に接続されますが、リンク9はサイト10にのみ接続されます。これは、サイト10を除く各サイトの後に一時的に発生します。このように定義された隣接行列は、次のように作成されます。 > adjmat <- matrix(0, ncol = length(tp), nrow = length(tp)) > adjmat[lower.tri(adjmat, diag = TRUE)] <- 1 > rownames(adjmat) <- paste("Site", seq_along(tp)) > colnames(adjmat) <- paste("Link", seq_along(tp)-1) > adjmat Link 0 …

1
GSVDはすべての線形多変量技術を実装していますか?
HervéAbdiによる一般化されたSVDに関する記事に出会いました。著者は述べた: 一般化SVD(GSVD)は、長方形行列を分解し、行列の行と列に課せられた制約を考慮します。GSVDは、より低いランクのマトリックスによる特定のマトリックスの加重一般化最小二乗推定値を提供するため、GSVDは制約を適切に選択することで、すべての線形多変量手法(正準相関、線形判別分析、対応分析、PLS -回帰)。 GSVDがすべての線形多変量手法(たとえば、正準相関、線形判別分析、コレスポンデンス分析、PLS回帰)にどのように関係するのか疑問に思っています。


3
切り捨てられたSVDを計算するための高速アルゴリズムは何ですか?
おそらくトピックオフここが、いくつかの(存在する1、2すでに)関連の質問を。 文献(または切り捨てられたSVDアルゴリズムのgoogle検索)をいじくり回すと、さまざまな方法で切り捨てられたSVD を使用する多くの論文が見つかり、それを計算するための高速なアルゴリズムはあるが、誰もいないと主張しますそれらのアルゴリズムが何であるかを指しているようです。 私が見つけることができる唯一のものは、redSVDライブラリで使用される単一のランダム化アルゴリズムです。 私が見たいのは、システムがどのように動作するかを理解するのに適した、正確で不正確なアルゴリズムのセットです(もちろん実際にそれらを実装する必要はありません!)。 誰かがこの種のことの良いリファレンスを持っていますか?

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 

1
疎データに基づく共分散行列の固有およびsvd分解が異なる結果をもたらすのはなぜですか?
スパース/ギャップのあるデータセットに基づいて共分散行列を分解しようとしています。で計算されたラムダ(説明された分散)の合計がsvd、ますますギャップのあるデータで増幅されていることに気付きました。隙間なく、svdかつeigen同じ結果をyeild。 これはeigen分解では発生しないようです。svdラムダ値は常に正であるため、私は使用に傾いていましたが、この傾向は心配です。適用する必要がある何らかの修正がありますか、またはsvdこのような問題を完全に回避する必要がありますか? ###Make complete and gappy data set set.seed(1) x <- 1:100 y <- 1:100 grd <- expand.grid(x=x, y=y) #complete data z <- matrix(runif(dim(grd)[1]), length(x), length(y)) image(x,y,z, col=rainbow(100)) #gappy data zg <- replace(z, sample(seq(z), length(z)*0.5), NaN) image(x,y,zg, col=rainbow(100)) ###Covariance matrix decomposition #complete data C <- cov(z, use="pair") E <- eigen(C) …
12 r  svd  eigenvalues 

3
欠損値を持つ行列のSVD
Netflixスタイルの推奨マトリックスがあり、特定のユーザーの将来の映画評価の可能性を予測するモデルを構築するとします。サイモンファンクのアプローチを使用すると、確率的勾配降下法を使用して、フルマトリックスとアイテムごとの* L2正則化項を組み合わせたユーザーごとのマトリックス間のフロベニウスノルムを最小化できます。 実際には、推奨行列の欠損値を使って人々は何をしますか?これは計算を行うことの全体的なポイントです?サイモンのブログ投稿を読んでの私の推測では、彼は予測するために(ハイパーパラメータと正則化の賢明な選択を伴う)モデルを構築するために、非欠落用語(推奨マトリックスの約1%で構成される)のみを使用している行列の残りの99%は? 実際には、これらすべての値を本当にスキップしますか?または、確率的勾配降下を行う前に、可能な限り推測しますか?欠損値を処理するための標準的なベストプラクティスは何ですか?

1
PCAとTruncatedSVDのscikit-learn実装の違い
代数的/厳密なレベルでの主成分分析と特異値分解の関係を理解し​​ています。私の質問は、scikit-learnの実装についてです。 ドキュメンテーションは、「[TruncatedSVD]はPCAに非常に似ていますが、共分散行列ではなく、サンプルベクトルを直接操作します。」これは、両方のアプローチの代数的な違いを反映しています。ただし、後で説明します:「この推定器[TruncatedSVD]は、2つのアルゴリズムをサポートしています。高速ランダム化SVDソルバーと、(X * XT)または(XT * X)の固有ソルバーとしてARPACKを使用する「単純な」アルゴリズムのいずれか多い方です。効率的。」PCAについて、「データの特異値分解を使用してそれを投影する線形次元削減...」と述べています。PCA実装は、同じ2つのアルゴリズム(ランダム化およびARPACK)ソルバーと、もう1つのアルゴリズムLAPACKをサポートしています。コードを見ると、PCAとTruncatedSVDの両方のARPACKとLAPACKの両方がサンプルデータXでsvdを実行しており、ARPACKは(svdsを使用して)スパース行列を処理できることがわかります。 したがって、さまざまな属性とメソッドを除いて、PCAがLAPACK、PCA、およびTruncatedSVDを使用して正確な完全特異値分解を実行できることを除いて、scikit-learnの実装はまったく同じアルゴリズムのようです。最初の質問:これは正しいですか? 2番目の質問:LAPACKとARPACK使用scipy.linalg.svd(X)とscipy.linalg.svds(X)、というXサンプルマトリックスが、彼らは特異値分解またはの固有分解を計算するにもかかわらず、または内部では「ランダム化」ソルバーは積を計算する必要はありませんが。(これは数値の安定性に関連しています。データのSVDによるデータのPCAの理由を参照してください。)これは正しいです?X ∗ X TバツT∗ XXT∗XX^T*Xバツ∗ XTX∗XTX*X^T 関連コード:PCAのライン415 TruncatedSVDのライン137。
12 pca  scikit-learn  svd  scipy 

1
Pythonで画面プロットを描画する方法は?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新することがありますので、話題のクロス検証済みのため。 昨年休業。 行列で特異ベクトル分解を使用して、U、S、およびVt行列を取得しています。この時点で、保持する次元数のしきい値を選択しようとしています。スクリープロットを見るよう提案されましたが、それを乱暴にプロットする方法について疑問に思っています。現在、私はpythonでnumpyおよびscipyライブラリを使用して以下を実行しています。 U, S, Vt = svd(A) 助言がありますか?

1
協調フィルタリング/推奨システムで非否定性が重要なのはなぜですか?
私が見てきたすべての最新の推奨システムでは、マトリックス因数分解に依存しているため、非負のマトリックス因数分解がユーザー映画マトリックスで実行されます。なぜ非負性が解釈可能性にとって重要であるか、および/または疎要素が必要かどうかを理解できます。しかし、たとえばnetflix賞の競争のように、予測のパフォーマンスのみに関心がある場合は、なぜ非否定性の制限を課すのでしょうか。因数分解で負の値を許可するよりも厳密に悪いように思えます。 このペーパーは、協調フィルタリングでの非負行列因数分解の使用の1つの非常に引用された例です。

1
SVDの前に単語共起行列に個別の相互情報を適用することの長所と短所は何ですか?
単語の埋め込みを生成する1つの方法は次のとおりです(ミラー)。 コーパスを取得します。たとえば、「飛行が好きです。NLPが好きです。ディープラーニングが好きです。」 それから単語共起行列を作成します。 でSVDを実行し、Uの最初の列を保持します。XXXkkk 部分行列の各行は、その行が表す単語を埋め込んだ単語になります(行1 = "I"、行2 = "like"、…)。U1:|V|,1:kU1:|V|,1:kU_{1:|V|,1:k} ステップ2と3の間に、点ごとの相互情報が適用される場合があります(A. HerbelotとEM Vecchiなど。2015。共有世界の構築:モデル理論的意味空間への分布のマッピング。自然言語処理における経験的方法に関する2015年会議の議事録。リスボン、ポルトガル。) SVDの前に単語共起行列に個別の相互情報を適用することの長所と短所は何ですか?

3
コサイン類似度とユークリッド距離(LSA)のK平均
潜在的意味解析を使用して、低次元空間でドキュメントのコーパスを表現しています。これらのドキュメントをk-meansを使用して2つのグループにクラスター化したいと思います。 数年前、私はPythonのgensimを使用してこれを行い、独自のk-meansアルゴリズムを作成しました。ユークリッド距離を使用してクラスターの重心を決定しましたが、重心とのコサイン類似性に基づいて各ドキュメントをクラスター化しました。かなりうまくいったようです。 今、私はこれをはるかに大きなドキュメントのコーパスで実行しようとしています。K-meansは収束しておらず、コードのバグかどうか疑問に思っています。最近読んだのは、コサイン類似度を使用してクラスター化しないことです。k平均はユークリッド距離でのみ機能するためです。私が述べたように、それでも私の小さなテストケースではうまく機能するように見えました。 LSA Wikipediaページでこれに遭遇しました: ドキュメントと用語ベクトル表現は、コサインのような類似性測定を使用するk-meansのような従来のクラスタリングアルゴリズムを使用してクラスター化できます。 どっち?コサイン類似度を使用できますか?

1
R線形回帰のカテゴリ変数「非表示」の値
これは私が何度か遭遇した例にすぎないため、サンプルデータはありません。Rで線形回帰モデルを実行する: a.lm = lm(Y ~ x1 + x2) x1は連続変数です。x2カテゴリ型で、「低」、「中」、「高」の3つの値があります。ただし、Rによって与えられる出力は次のようになります。 summary(a.lm) Estimate Std. Error t value Pr(>|t|) (Intercept) 0.521 0.20 1.446 0.19 x1 -0.61 0.11 1.451 0.17 x2Low -0.78 0.22 -2.34 0.005 x2Medium -0.56 0.45 -2.34 0.005 私は、Rがそのような要因(要因x2であること)に何らかのダミーコーディングを導入していることを理解しています。私はただ疑問に思っていx2ます。「高」の値をどのように解釈しますか?たとえば、ここで示した例の「High」x2は応答変数にどのような影響を与えますか? これの例を他の場所(例:ここ)で見ましたが、理解できる説明は見つかりませんでした。
10 r  regression  categorical-data  regression-coefficients  categorical-encoding  machine-learning  random-forest  anova  spss  r  self-study  bootstrap  monte-carlo  r  multiple-regression  partitioning  neural-networks  normalization  machine-learning  svm  kernel-trick  self-study  survival  cox-model  repeated-measures  survey  likert  correlation  variance  sampling  meta-analysis  anova  independence  sample  assumptions  bayesian  covariance  r  regression  time-series  mathematical-statistics  graphical-model  machine-learning  linear-model  kernel-trick  linear-algebra  self-study  moments  function  correlation  spss  probability  confidence-interval  sampling  mean  population  r  generalized-linear-model  prediction  offset  data-visualization  clustering  sas  cart  binning  sas  logistic  causality  regression  self-study  standard-error  r  distributions  r  regression  time-series  multiple-regression  python  chi-squared  independence  sample  clustering  data-mining  rapidminer  probability  stochastic-processes  clustering  binary-data  dimensionality-reduction  svd  correspondence-analysis  data-visualization  excel  c#  hypothesis-testing  econometrics  survey  rating  composite  regression  least-squares  mcmc  markov-process  kullback-leibler  convergence  predictive-models  r  regression  anova  confidence-interval  survival  cox-model  hazard  normal-distribution  autoregressive  mixed-model  r  mixed-model  sas  hypothesis-testing  mediation  interaction 

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