def test_pca_int_dtype_upcast_to_double(svd_solver):
# Ensure that all int types will be upcast to float64
X_i64 = np.random.RandomState(0).randint(0, 1000, (1000, 4))
X_i64 = X_i64.astype(np.int64)
X_i32 = X_i64.astype(np.int32)
dX_i64 = da.from_array(X_i64, chunks=X_i64.shape)
dX_i32 = da.from_array(X_i32, chunks=X_i32.shape)
pca_64 = dd.PCA(n_components=3, svd_solver=svd_solver,
random_state=0).fit(dX_i64)
pca_32 = dd.PCA(n_components=3, svd_solver=svd_solver,
random_state=0).fit(dX_i32)
assert pca_64.components_.dtype == np.float64
assert pca_32.components_.dtype == np.float64
assert pca_64.transform(dX_i64).dtype == np.float64
assert pca_32.transform(dX_i32).dtype == np.float64
assert_array_almost_equal(pca_64.components_, pca_32.components_,
decimal=5)
评论列表
文章目录