def test_multinomial_basic_fit_predict_dense_numpy(x_dtype, y_dtype, nlp_20news): """ Cupy Test """ X, y = nlp_20news n_rows = 500 X = sparse_scipy_to_cp(X, cp.float32).tocsr()[:n_rows] y = y[:n_rows].astype(y_dtype) model = MultinomialNB() model.fit(np.ascontiguousarray(cp.asnumpy(X.todense()).astype(x_dtype)), y) y_hat = model.predict(X).get() modelsk = skNB() modelsk.fit(X.get(), y.get()) y_sk = model.predict(X.get()) assert_allclose(y_hat, y_sk)
def test_predict_log_proba(x_dtype, y_dtype, nlp_20news): X, y = nlp_20news cu_X = sparse_scipy_to_cp(X, x_dtype).astype(x_dtype) cu_y = y.astype(y_dtype) cu_X = cu_X.tocsr() y = y.get() cuml_model = MultinomialNB() sk_model = skNB() cuml_model.fit(cu_X, cu_y) sk_model.fit(X, y) cuml_proba = cuml_model.predict_log_proba(cu_X).get() sk_proba = sk_model.predict_log_proba(X) assert_allclose(cuml_proba, sk_proba, atol=1e-2, rtol=1e-2)
def test_score(x_dtype, y_dtype, nlp_20news): X, y = nlp_20news cu_X = sparse_scipy_to_cp(X, x_dtype).astype(x_dtype) cu_y = y.astype(y_dtype) cu_X = cu_X.tocsr() y = y.get() cuml_model = MultinomialNB() sk_model = skNB() cuml_model.fit(cu_X, cu_y) sk_model.fit(X, y) cuml_score = cuml_model.score(cu_X, cu_y) sk_score = sk_model.score(X, y) THRES = 1e-4 assert sk_score - THRES <= cuml_score <= sk_score + THRES
print(f_report) print("Sklearn Linear SVC metrices: ") print(s_report) #3.6 Bernoulli Naive Bayes TARGET = "bernoulli_naive_bayes" FrovedisServer.initialize("mpirun -np 8 " + os.environ["FROVEDIS_SERVER"]) f_est = frovNB(alpha=1.0) E_NM = TARGET + "_frovedis_" + frovedis.__version__ f_report = evaluate(f_est, E_NM, x_train, y_train, x_test, y_test) f_est.release() FrovedisServer.shut_down() s_est = skNB(alpha=1.0) E_NM = TARGET + "_sklearn_" + sklearn.__version__ s_report = evaluate(s_est, E_NM, x_train, y_train, x_test, y_test) # Precision, Recall and F1 score for each class print("Frovedis Bernoulli Naive Bayes metrices: ") print(f_report) print("Sklearn Bernoulli Naive Bayes metrices: ") print(s_report) #3.7 Nearest Neighbor Classification TARGET = "nearest_neighbor_classification" FrovedisServer.initialize("mpirun -np 8 " + os.environ["FROVEDIS_SERVER"]) f_est = frovKNC(n_neighbors=3, algorithm='brute', metric='euclidean') E_NM = TARGET + "_frovedis_" + frovedis.__version__