This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from pca_crossval import * | |
from tqdm import tqdm | |
import itertools | |
np.random.seed(1111) | |
m, n, r = 100, 101, 3 | |
Utrue, Vtrue = rand(m,r), rand(r,n) | |
data = np.dot(Utrue, Vtrue) + .25*randn(m,n) | |
data[data < 0] = 0 | |
ranks = [] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import numpy as np | |
import scipy.linalg | |
def elastic_net(A, B, x=None, l1=1, l2=1, lam=1, tol=1e-6, maxiter=10000): | |
"""Performs elastic net regression by ADMM | |
minimize ||A*x - B|| + l1*|x| + l2*||x|| | |
Args: | |
A (ndarray) : m x n matrix |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def reverse_segment(path, n1, n2): | |
"""Reverse the nodes between n1 and n2. | |
""" | |
q = path.copy() | |
if n2 > n1: | |
q[n1:(n2+1)] = path[n1:(n2+1)][::-1] | |
return q | |
else: | |
seg = np.hstack((path[n1:], path[:(n2+1)]))[::-1] | |
brk = len(q) - n1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import numpy as np | |
from numpy.random import randn, rand | |
from scipy.optimize import minimize | |
import matplotlib.pyplot as plt | |
from nnls import nnlsm_blockpivot as nnlstsq | |
import itertools | |
from scipy.spatial.distance import cdist | |
def censored_lstsq(A, B, M): | |
"""Solves least squares problem with missing data in B |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import numpy as np | |
from tqdm import trange | |
import matplotlib.pyplot as plt | |
# TODO: subclass np.ndarray? | |
class ShiftMatrix(object): | |
""" | |
Thin wrapper around a numpy matrix to support shifting along the second | |
axis and padding with zeros. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
A simple implementation of Poisson regression. | |
""" | |
import numpy as np | |
from scipy.optimize import minimize | |
n = 1000 # number of datapoints | |
p = 5 # number of features |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Computing hessian-vector products in tensorflow. | |
For simplicity, we demonstrate the idea on a Poisson regression model. | |
""" | |
import tensorflow as tf | |
import numpy as np | |
from scipy.optimize import minimize |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def bandpass(x, lowcut, highcut, fs, order=5, axis=-1, kind='butter'): | |
""" | |
Parameters | |
---------- | |
x : ndarray | |
1d time series data | |
lowcut : float | |
Defines lower frequency cutoff (e.g. in Hz) | |
highcut : float | |
Defines upper frequency cutoff (e.g. in Hz) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import numpy as np | |
from scipy.linalg import solve_circulant, circulant | |
from numpy.testing import assert_array_almost_equal | |
import numba | |
@numba.jit(nopython=True, cache=True) | |
def rojo_method(c, a, f, x, z): | |
""" | |
Solves symmetric, tridiagonal circulant system, assuming diagonal |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
References: | |
- B. Plateau, On the stochastic structure of parallelism and synchronization models for distributed algorithms. | |
Perform. Eval. Rev., 13 (1985), pp. 147–154. | |
- Dayar, T., & Orhan, M. C. (2015). On vector-Kronecker product multiplication with rectangular factors. | |
SIAM Journal on Scientific Computing, 37(5), S526-S543. | |
""" |