def test_dict_fact_normalize(): # Generate some toy data. rng = np.random.RandomState(0) U = rng.rand(50, 3) V = rng.rand(3, 20) X = np.dot(U, V) mf = DictMF(n_components=3, n_epochs=1, alpha=1e-3, random_state=0, verbose=0, normalize=True) mf.fit(X) Y = np.dot(mf.P_.T, mf.Q_) Y += mf.col_mean_[np.newaxis, :] Y += mf.row_mean_[:, np.newaxis] Y2 = mf.predict(X).toarray() assert_array_almost_equal(Y, Y2) rmse = np.sqrt(np.mean((X - Y)**2)) rmse2 = mf.score(X) assert_almost_equal(rmse, rmse2)
def test_matrix_fact_cd(): # Generate some toy data. rng = np.random.RandomState(0) U = rng.rand(50, 3) V = rng.rand(3, 20) X = np.dot(U, V) mf = DictMF(n_components=3, n_epochs=3, alpha=1e-3, random_state=0, verbose=0, normalize=False) mf.fit(X) Y = np.dot(mf.P_.T, mf.Q_) Y2 = mf.predict(X).toarray() assert_array_almost_equal(Y, Y2) rmse = np.sqrt(np.mean((X - Y)**2)) rmse2 = mf.score(X) assert_almost_equal(rmse, rmse2)
def call(n_components, alpha, learning_rate, batch_size): cb = Callback(X_tr, X_te) mf = DictMF(n_components=n_components, n_epochs=8, alpha=alpha, verbose=10, batch_size=batch_size, normalize=True, fit_intercept=True, random_state=0, learning_rate=learning_rate) start_time = time.time() mf.fit(X_tr) runtime = time.time() - start_time X_pred = mf.predict(X_te) rmse = np.sqrt(np.mean((X_pred.data - X_te.data) ** 2)) print('rmse %i %.2f %.2f %.2f: %.4f' % (n_components, alpha, learning_rate, batch_size, rmse)) return [n_components, alpha, learning_rate, batch_size, runtime, rmse]
def call(n_components, alpha, learning_rate, batch_size): cb = Callback(X_tr, X_te) mf = DictMF(n_components=n_components, n_epochs=8, alpha=alpha, verbose=10, batch_size=batch_size, normalize=True, fit_intercept=True, random_state=0, learning_rate=learning_rate) start_time = time.time() mf.fit(X_tr) runtime = time.time() - start_time X_pred = mf.predict(X_te) rmse = np.sqrt(np.mean((X_pred.data - X_te.data)**2)) print('rmse %i %.2f %.2f %.2f: %.4f' % (n_components, alpha, learning_rate, batch_size, rmse)) return [n_components, alpha, learning_rate, batch_size, runtime, rmse]
def test_matrix_fact_cd(): # Generate some toy data. rng = np.random.RandomState(0) U = rng.rand(50, 3) V = rng.rand(3, 20) X = np.dot(U, V) mf = DictMF(n_components=3, n_epochs=3, alpha=1e-3, random_state=0, verbose=0, normalize=False) mf.fit(X) Y = np.dot(mf.P_.T, mf.Q_) Y2 = mf.predict(X).toarray() assert_array_almost_equal(Y, Y2) rmse = np.sqrt(np.mean((X - Y) ** 2)) rmse2 = mf.score(X) assert_almost_equal(rmse, rmse2)
def test_dict_fact_normalize(): # Generate some toy data. rng = np.random.RandomState(0) U = rng.rand(50, 3) V = rng.rand(3, 20) X = np.dot(U, V) mf = DictMF(n_components=3, n_epochs=1, alpha=1e-3, random_state=0, verbose=0, normalize=True) mf.fit(X) Y = np.dot(mf.P_.T, mf.Q_) Y += mf.col_mean_[np.newaxis, :] Y += mf.row_mean_[:, np.newaxis] Y2 = mf.predict(X).toarray() assert_array_almost_equal(Y, Y2) rmse = np.sqrt(np.mean((X - Y) ** 2)) rmse2 = mf.score(X) assert_almost_equal(rmse, rmse2)