Nothing
context("Least Squares Classifier")
# Load simple dataset
data(testdata)
test_that("Scale invariance",{
g1 <- LeastSquaresClassifier(testdata$X,testdata$y)
t_scale <- scaleMatrix(testdata$X)
Xs <- predict(t_scale,testdata$X)
g2 <- LeastSquaresClassifier(Xs,testdata$y)
g3 <- LeastSquaresClassifier(testdata$X,testdata$y,x_center = TRUE, scale=TRUE)
expect_equal(loss(g1, testdata$X_test, testdata$y_test),
loss(g2, predict(t_scale,testdata$X_test), testdata$y_test)
)
expect_equal(loss(g1, testdata$X_test, testdata$y_test),
loss(g3, testdata$X_test, testdata$y_test)
)
})
test_that("Formula and matrix formulation give same results", {
g_matrix <- LeastSquaresClassifier(testdata$X,testdata$y)
g_model <- LeastSquaresClassifier(testdata$modelform, testdata$D)
# Same classification error?
expect_that(1-mean(predict(g_matrix,testdata$X_test)==testdata$y_test),
is_equivalent_to(1-mean(predict(g_model,testdata$D_test)==testdata$D_test[,testdata$classname])))
# Same loss on test set?
expect_that(loss(g_matrix, testdata$X_test, testdata$y_test),is_equivalent_to(loss(g_model, testdata$D_test)))
expect_that(g_matrix@classnames,is_equivalent_to(g_model@classnames)) # Class names the same?
})
test_that("Expected Results on simple benchmark dataset",{
t_matrix <- LeastSquaresClassifier(testdata$X,testdata$y)
expect_equivalent(t_matrix@theta, matrix(c(0.50115100,0.05052317,-0.29484188),3))
})
test_that("Multiclass gives an output",{
dmat<-model.matrix(Species~.-1,iris[1:150,])
tvec<-droplevels(iris$Species[1:150])
set.seed(42)
problem<-split_dataset_ssl(dmat,tvec,frac_train=0.5,frac_ssl=0.0)
expect_equal(length(levels(predict(LeastSquaresClassifier(problem$X,problem$y),problem$X_test))),3)
expect_equal(length(predict(LeastSquaresClassifier(problem$X,problem$y),problem$X_test)),75)
})
test_that("PCA does not change the decision values",{
g_norm <- LeastSquaresClassifier(testdata$X,testdata$y)
Xpc <- princomp(testdata$X)$scores
g_pc <- LeastSquaresClassifier(Xpc,testdata$y)
expect_equal(decisionvalues(g_norm,testdata$X), decisionvalues(g_pc,Xpc))
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.