mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-10 12:32:40 +02:00
[pca] pca -> PCA
This commit is contained in:
parent
e12329c626
commit
5ac7b2c524
2 changed files with 10 additions and 7 deletions
|
|
@ -5,12 +5,12 @@ Created on 24 Feb 2014
|
||||||
'''
|
'''
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from GPy.util.pca import pca
|
from GPy.util.pca import PCA
|
||||||
|
|
||||||
def initialize_latent(init, input_dim, Y):
|
def initialize_latent(init, input_dim, Y):
|
||||||
Xr = np.asfortranarray(np.random.randn(Y.shape[0], input_dim))
|
Xr = np.asfortranarray(np.random.randn(Y.shape[0], input_dim))
|
||||||
if init == 'PCA':
|
if init == 'PCA':
|
||||||
p = pca(Y)
|
p = PCA(Y)
|
||||||
PC = p.project(Y, min(input_dim, Y.shape[1]))
|
PC = p.project(Y, min(input_dim, Y.shape[1]))
|
||||||
Xr[:PC.shape[0], :PC.shape[1]] = PC
|
Xr[:PC.shape[0], :PC.shape[1]] = PC
|
||||||
var = .1*p.fracs[:input_dim]
|
var = .1*p.fracs[:input_dim]
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,9 @@ from numpy.linalg.linalg import LinAlgError
|
||||||
from operator import setitem
|
from operator import setitem
|
||||||
import itertools
|
import itertools
|
||||||
|
|
||||||
class pca(object):
|
class PCA(object):
|
||||||
"""
|
"""
|
||||||
pca module with automatic primal/dual determination.
|
PCA module with automatic primal/dual determination.
|
||||||
"""
|
"""
|
||||||
def __init__(self, X):
|
def __init__(self, X):
|
||||||
self.mu = None
|
self.mu = None
|
||||||
|
|
@ -39,7 +39,7 @@ class pca(object):
|
||||||
|
|
||||||
def center(self, X):
|
def center(self, X):
|
||||||
"""
|
"""
|
||||||
Center `X` in pca space.
|
Center `X` in PCA space.
|
||||||
"""
|
"""
|
||||||
X = X.copy()
|
X = X.copy()
|
||||||
inan = numpy.isnan(X)
|
inan = numpy.isnan(X)
|
||||||
|
|
@ -66,7 +66,7 @@ class pca(object):
|
||||||
|
|
||||||
def project(self, X, Q=None):
|
def project(self, X, Q=None):
|
||||||
"""
|
"""
|
||||||
Project X into pca space, defined by the Q highest eigenvalues.
|
Project X into PCA space, defined by the Q highest eigenvalues.
|
||||||
Y = X dot V
|
Y = X dot V
|
||||||
"""
|
"""
|
||||||
if Q is None:
|
if Q is None:
|
||||||
|
|
@ -80,13 +80,16 @@ class pca(object):
|
||||||
"""
|
"""
|
||||||
Plot fractions of Eigenvalues sorted in descending order.
|
Plot fractions of Eigenvalues sorted in descending order.
|
||||||
"""
|
"""
|
||||||
|
from GPy.plotting.matplot_dep import Tango
|
||||||
|
Tango.reset()
|
||||||
|
col = Tango.nextMedium()
|
||||||
if ax is None:
|
if ax is None:
|
||||||
fig = pylab.figure(fignum)
|
fig = pylab.figure(fignum)
|
||||||
ax = fig.add_subplot(111)
|
ax = fig.add_subplot(111)
|
||||||
if Q is None:
|
if Q is None:
|
||||||
Q = self.Q
|
Q = self.Q
|
||||||
ticks = numpy.arange(Q)
|
ticks = numpy.arange(Q)
|
||||||
bar = ax.bar(ticks - .4, self.fracs[:Q])
|
bar = ax.bar(ticks - .4, self.fracs[:Q], color=col)
|
||||||
ax.set_xticks(ticks, map(lambda x: r"${}$".format(x), ticks + 1))
|
ax.set_xticks(ticks, map(lambda x: r"${}$".format(x), ticks + 1))
|
||||||
ax.set_ylabel("Eigenvalue fraction")
|
ax.set_ylabel("Eigenvalue fraction")
|
||||||
ax.set_xlabel("PC")
|
ax.set_xlabel("PC")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue