# if one needs to regenrate the test data this function can be used
# source('generate_data_to_test_NDR.R')
load("example_ZD_train_and_test_set.Rda")
rm(training_set, test_set)
# Helper test functions ----------------------------------------------
test_reasonable_classification_accuracy <- function(cl){
test_that("classification results are reasonably accurate", {
# prediction_results <- get_predictions(cl, normalized_training_set, normalized_test_set)
if (class(cl) == "cl_poisson_naive_bayes") {
prediction_results <- get_predictions(cl, count_training_set, count_test_set)
} else {
prediction_results <- get_predictions(cl, normalized_training_set, normalized_test_set)
}
accuracies <- prediction_results |>
dplyr::group_by(test_time) |>
dplyr::summarize(mean_accuracy = mean(actual_labels == predicted_labels))
expect_gt(dplyr::filter(accuracies, test_time == "stimulus")$mean_accuracy, .7)
expect_lt(dplyr::filter(accuracies, test_time == "baseline")$mean_accuracy, .31)
})
}
test_shuffle_results_at_chance <- function(cl){
test_that("classification results on shuffled data are around chance", {
#prediction_results <- get_predictions(cl, shuffled_normalized_training_set, shuffled_normalized_test_set)
prediction_results <- get_predictions(cl, shuffled_count_training_set, shuffled_count_test_set)
accuracies <- prediction_results |>
dplyr::group_by(test_time) |>
dplyr::summarize(mean_accuracy = mean(actual_labels == predicted_labels))
expect_lt(dplyr::filter(accuracies, test_time == "stimulus")$mean_accuracy, .3)
expect_lt(dplyr::filter(accuracies, test_time == "baseline")$mean_accuracy, .3)
})
}
# test cl_max_correlation -----------------------------------------------------
test_that("the cl_max_correlation() classifier is working", {
# test classifier has required methods and returns correctly formatted results
cl <- cl_max_correlation()
expect_null(test_valid_classifier(cl))
test_reasonable_classification_accuracy(cl)
test_shuffle_results_at_chance(cl)
# test the classifier works when no decision values are returned
cl <- cl_max_correlation(return_decision_values = FALSE)
test_reasonable_classification_accuracy(cl)
})
test_that("the cl_max_correlation classifier constructor correctly adds objects to an ndr container", {
raw_cl <- cl_max_correlation()
expect_equal(class(raw_cl), "cl_max_correlation")
fp <- fp_zscore()
cl_combined_with_an_fp <- fp |> cl_max_correlation()
expect_equal(class(cl_combined_with_an_fp), "ndr_container")
an_ndr_container <- ndr_container()
cl_combined_with_container <- an_ndr_container |> cl_max_correlation()
expect_equal(class(cl_combined_with_container), "ndr_container")
})
# test cl_poison_naive_bayes --------------------------------------------------
test_that("the cl_poisson_naive_bayes() classifier is working", {
cl <- cl_poisson_naive_bayes()
expect_null(test_valid_classifier(cl))
test_reasonable_classification_accuracy(cl)
test_shuffle_results_at_chance(cl)
# test the classifier works when no decision values are returned
cl <- cl_poisson_naive_bayes(return_decision_values = FALSE)
test_reasonable_classification_accuracy(cl)
})
test_that("the cl_poisson_naive_bayes classifier constructor correctly adds objects to an ndr container", {
raw_cl <- cl_poisson_naive_bayes()
expect_equal(class(raw_cl), "cl_poisson_naive_bayes")
fp <- fp_zscore()
cl_combined_with_an_fp <- fp |> cl_poisson_naive_bayes()
expect_equal(class(cl_combined_with_an_fp), "ndr_container")
an_ndr_container <- ndr_container()
cl_combined_with_container <- an_ndr_container |> cl_poisson_naive_bayes()
expect_equal(class(cl_combined_with_container), "ndr_container")
})
# test cl_svm -----------------------------------------------------------------
test_that("the cl_svm() claissifier is working", {
cl <- cl_svm()
expect_null(test_valid_classifier(cl))
test_reasonable_classification_accuracy(cl)
test_shuffle_results_at_chance(cl)
# test the classifier works when no decision values are returned
cl <- cl_svm(return_decision_values = FALSE)
test_reasonable_classification_accuracy(cl)
cl <- cl_svm(kernel = "linear")
expect_null(test_valid_classifier(cl))
test_reasonable_classification_accuracy(cl)
test_shuffle_results_at_chance(cl)
})
test_that("the cl_svm classifier constructor correctly adds objects to an ndr container", {
raw_cl <- cl_svm()
expect_equal(class(raw_cl), "cl_svm")
fp <- fp_zscore()
cl_combined_with_an_fp <- fp |> cl_svm()
expect_equal(class(cl_combined_with_an_fp), "ndr_container")
an_ndr_container <- ndr_container()
cl_combined_with_container <- an_ndr_container |> cl_svm()
expect_equal(class(cl_combined_with_container), "ndr_container")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.