Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- def least_square_estimator(X, Y, method = None):
- """
- Compute beta (minimum cost computation)
- --------------------------
- (((X^T)X)^-1)((X^T)Y)
- --------------------------
- X : ndarray, shape(m_number, n_features)
- Y : ndarray, shape(m_number, )
- """
- if method is 'QR':
- """
- ((R^-1)((Q^T)Y)
- """
- R = np.linalg.qr(X)[1]
- return np.dot(np.linalg.inv(R), np.dot(Q.T, Y))
- elif method is 'Cholesky':
- """
- ((L(L^T))^-1)((X^T)Y)
- """
- L = np.linalg.cholesky(np.dot(X.T, X))
- return np.dot(np.linalg.inv(np.dot(L, L.T)), np.dot(X.T, Y))
- elif method is 'SVD':
- """
- (V(D^-1))((U^T)Y)
- """
- u, s, vh = np.linalg.svd(X, full_matrices = True)
- d = np.diag(s)
- u = u[:, :d.shape[0]]
- return np.dot(np.dot(np.dot(vh.T, np.linalg.inv(d)), u.T), Y)
- return np.dot(np.linalg.inv(np.dot(X.T, X)), np.dot(X.T, Y))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement