def test_pca_score_with_different_solvers():
digits = datasets.load_digits()
X_digits = digits.data
dX_digits = da.from_array(X_digits, chunks=X_digits.shape)
pca_dict = {svd_solver: dd.PCA(n_components=30, svd_solver=svd_solver,
random_state=0, iterated_power=3)
for svd_solver in solver_list}
for pca in pca_dict.values():
pca.fit(dX_digits)
# Sanity check for the noise_variance_. For more details see
# https://github.com/scikit-learn/scikit-learn/issues/7568
# https://github.com/scikit-learn/scikit-learn/issues/8541
# https://github.com/scikit-learn/scikit-learn/issues/8544
assert np.all((pca.explained_variance_ - pca.noise_variance_) >= 0)
# Compare scores with different svd_solvers
score_dict = {svd_solver: pca.score(dX_digits)
for svd_solver, pca in pca_dict.items()}
assert_almost_equal(score_dict['full'], score_dict['randomized'],
decimal=3)
评论列表
文章目录