from d3m.container import DataFrame from pyglrm_d3m.huber_pca import HuberPCA A = DataFrame([[1, 2, 3, 4], [2, 4, 6, 8], [4, 5, 6, 7]]) model = HuberPCA(hyperparams={'k': 2}) #create a class for Huber PCA model.set_training_data(inputs=A) model.fit() #get parameter parameter = model.get_params() print("Initial parameter (Y): {}".format(parameter['Y'].values)) #modify parameter print( "Now we change the (0,0) entry of Y to 0, and set the modified Y as parameter of the Huber PCA class." ) parameter['Y'].values[0, 0] = 0 model.set_params(params={'Y': parameter['Y']}) #check if parameter has been modified parameter = model.get_params() print("Modified parameter (Y): {}".format(parameter['Y'].values))
from pyglrm_d3m.huber_pca import HuberPCA from d3m.container import DataFrame A = DataFrame([[1, 2, 3, 4], [2, 4, 6, 8], [4, 5, 6, 7]], generate_metadata=True) model = HuberPCA(hyperparams={'k': 2}) #create a class for Huber PCA model.set_training_data(inputs=A) model.fit() a_new = DataFrame([[6, 7, 8, 9]]) #initialize a new row to be tested x = model.produce( inputs=a_new).value.values #get the latent representation of a_new print(x)
B = np.random.randn(r, n) X_org = np.append(X_org, np.dot(A, B), axis=1) # mask a fraction of entries randomly X_incomplete = X_org.copy() m, n = X_org.shape for i in range(n): idx = np.random.choice(m, int(np.round(m * missing_rate)), replace=False) X_incomplete[idx, i] = np.nan # recover the missing entries # hp= hrmc_sf.Hyperparams.defaults() hp = high_rank_imputer.Hyperparams({ 'd': 0, 'alpha': 1, 'beta': 1, 'tol': 1e-4, 'maxiter': 500 }) # if d=0, d will be automatically estimated; otherwise (d>=1), the value of d will be applied sf = high_rank_imputer.HighRankImputer(hyperparams=hp) df_incomplete = DataFrame(X_incomplete.T) # the missing entries in the matrix must be noted by NaN df_recovered = sf.produce(inputs=df_incomplete).value X_recovered = df_recovered.values.T # compute the recovery error (relative mean squared error, within [0,1], the smaller the better) RMSE = np.square(X_recovered - X_org).sum() / np.square(X_org).sum() print("RMSE:", RMSE)