Tests on artificial data with 80% noise

In [1]:
library(adabag)
library(naivebayes)
Loading required package: rpart
Loading required package: caret
Loading required package: lattice
Loading required package: ggplot2
Loading required package: foreach
Loading required package: doParallel
Loading required package: iterators
Loading required package: parallel
In [2]:
# files available in: /net/aistaff/kleiweg/spraak/fa
train = read.table("data080.train", header=TRUE, sep="\t", quote="", row.names=1)
test  = read.table("data080.test",  header=TRUE, sep="\t", quote="", row.names=1)
In [3]:
train[1:10,]
C.ClassC.W1C.W2C.W3C.W4C.W5C.W6C.W7C.W8C.W9C.W11C.W12C.W13C.W14C.W15C.W16C.W17C.W18C.W19C.W20
135C 1.C1 2.B1 3.B1 4.C4 5.B5 6.A1 7.C1 8.B1 9.C7 11.A112.C113.C114.C215.C116.C117.C618.B119.C720.B1
488C 1.B1 2.C1 3.B1 4.C4 5.C2 6.B1 7.C2 8.A1 9.B4 11.A112.C213.B114.A315.A116.C117.B118.A119.C720.A3
641B 1.C1 2.B1 3.B1 4.B3 5.B2 6.A1 7.C1 8.A1 9.C6 11.B412.A113.B114.B115.A116.A117.A118.B619.B320.B1
885B 1.B1 2.C1 3.A1 4.B1 5.B5 6.B1 7.A1 8.A1 9.B1 11.A112.A113.C414.C515.B316.C217.A118.B119.B620.B2
148B 1.B1 2.B1 3.B1 4.B1 5.B4 6.B1 7.B1 8.C1 9.A2 11.B312.B113.A314.B115.C116.C117.B518.B519.A420.B1
576B 1.B1 2.C1 3.C2 4.B3 5.B5 6.C2 7.B1 8.A1 9.B3 11.C212.A113.B214.B315.B516.A117.A118.C219.B420.A1
497B 1.B1 2.B1 3.B1 4.B3 5.A1 6.C4 7.B1 8.B1 9.B4 11.C112.A113.A314.C515.C116.A317.A118.B519.A320.B2
97B 1.C1 2.B2 3.C2 4.C2 5.A2 6.A1 7.C2 8.A1 9.B1 11.B312.A113.C414.A315.C116.A217.B118.A119.B320.A3
33B 1.A5 2.A4 3.B1 4.A2 5.B5 6.B1 7.B1 8.C1 9.B3 11.B312.C213.B114.B115.C116.C117.C518.C219.B620.B1
183A 1.A1 2.C1 3.C2 4.A2 5.A2 6.B1 7.A2 8.A1 9.A2 11.A112.A113.C514.A115.A316.C117.A118.B519.B420.B2

Bagging (AdaBag)

In [4]:
bag <- bagging(C.Class ~ ., data=train)
train.bagging <- predict(bag, newdata=train)
 test.bagging <- predict(bag, newdata=test)
100 * (1 - train.bagging$error)
100 * (1 -  test.bagging$error)
91.5555555555556
63

Boosting (AdaBoost)

In [5]:
boost <- boosting(C.Class ~ ., data=train)
train.boosting <- predict(boost, newdata=train)
 test.boosting <- predict(boost, newdata=test)
100 * (1 - train.boosting$error)
100 * (1 -  test.boosting$error)
100
72

Naive Bayes

In [6]:
score <- function(obs, exp) {
  return(100 * sum(obs == exp[,"C.Class"]) / length(obs))
}

nb <- naive_bayes(C.Class ~ ., data=train)
train.nb <- predict(nb, train)
 test.nb <- predict(nb, test)
score(train.nb, train)
score( test.nb, test)
81.4444444444444
75

simpel.go

In [7]:
out <- system2(c("./simpel", "data080.train", "data080.test"), stdout=TRUE, stderr=TRUE)
cat(out, sep="\n")
Training score:	 81.4%
Testing score:	 75.0%