Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
import numpy as np import time def pca_powit(D): print("Starting power iteration...") t_start = time.time() # Reshape and center X = D.reshape(len(D), -1).T X -= X.mean(axis=1, keepdims=True) # Initial random vector rng = np.random.mtrand.RandomState(57) w = rng.normal(0, 1, [X.shape[0]]) w /= np.sqrt((w**2).sum()) # Covariance matrix S = np.dot(X, X.T) / X.shape[1] # Power iteration loop J_old = float('nan') for it in range(25): Sw = S @ w J = w @ Sw print(f"iteration {it:2d} J(w)={J:10.3f}") if not np.isnan(J_old) and abs(J - J_old) < 0.01: print("Stopping criterion satisfied") break w = Sw / np.sqrt((Sw**2).sum()) J_old = J t_end = time.time() print(f"Time: {t_end - t_start:.3f} seconds") # Comment render while debugging # utils.render(w, 1, 1) return w
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)