Algorithm-VSM
view release on metacpan or search on metacpan
examples/significance_testing.pl view on Meta::CPAN
# For each permutation of the algorithm labels over the queries, we
# will store the test_statistic in the array \@test_statistic.
my @test_statistic = ();
# At each iteration, we create a random permutation of the algo_1 and
# algo_2 labels over the queries as explained on slides 39 and 45 of my
# tutorial on Significance Testing. For each assignment of average
# precision values to algo_1, we calculate the MAP value for algo_1, and
# the same for algo_2. The difference between the two MAP values is the
# value of the test_statistic for that iteration. Our goal is create
# test_statistic values for, say, 100,000 iterations of this calculation.
my $iter = 0;
while (1) {
# Here is the logic we use for permuting the algo_1 and algo_2 labels
# over the average precision values. We first create a random
# permutation of the integers between 0 and the size of the query set.
# We refer to this permuted list as permuted_range in what follows.
# We then walk through the elements of the list permuted_range and at
# each position test when the value at that position is less than or
# greater than half the size of the number of queries. This
( run in 0.535 second using v1.01-cache-2.11-cpan-71847e10f99 )