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 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)