X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=train.pl;h=084f84b91c14f60029fe98f0b3e9dfcdb845f92f;hb=d3a1959c7228dff1c065f18d5877558a0fe84734;hp=daa4d7805055da03d5a83e98a8b1b58f83daea9d;hpb=df74bf90cbb758f689a4e0d5f19f77d74beabd8b;p=wloh diff --git a/train.pl b/train.pl index daa4d78..084f84b 100755 --- a/train.pl +++ b/train.pl @@ -58,7 +58,7 @@ sub output_to_file { } sub train_model { - my ($filename, $ratings, $covariances) = @_; + my ($filename, $ratings, $covariances, $aux_params) = @_; open RATINGS, "$config::base_dir/bayeswf < $filename |" or die "bayeswf: $!"; @@ -67,6 +67,8 @@ sub train_model { my @x = split; if ($x[0] eq 'covariance') { push @$covariances, (join("\t", @x[1..3])); + } elsif ($x[0] eq 'aux_param') { + push @$aux_params, ("nb-NO" . "\t" . $x[1] . "\t" . $x[2]); } else { push @$ratings, ($x[2] . "\t" . $x[0] . "\t" . $x[1]); } @@ -90,14 +92,10 @@ my $tmpnam = output_to_file(\@games, \%ids); my @ratings = (); my @covariances = (); -train_model($tmpnam, \@ratings, \@covariances); +my @aux_params = (); +train_model($tmpnam, \@ratings, \@covariances, \@aux_params); unlink($tmpnam); -$dbh->do('TRUNCATE ratings'); -$dbh->do('COPY ratings ( id, rating, rating_stddev ) FROM STDIN'); -$dbh->pg_putcopydata(join("\n", @ratings)); -$dbh->pg_putcopyend(); - $dbh->do('CREATE TABLE new_covariance ( player1 smallint NOT NULL, player2 smallint NOT NULL, cov float NOT NULL )'); $dbh->do('COPY new_covariance ( player1, player2, cov ) FROM STDIN'); $dbh->pg_putcopydata(join("\n", @covariances)); @@ -106,4 +104,14 @@ $dbh->do('ALTER TABLE new_covariance ADD PRIMARY KEY ( player1, player2 );'); $dbh->do('DROP TABLE IF EXISTS covariance'); $dbh->do('ALTER TABLE new_covariance RENAME TO covariance'); +$dbh->do('TRUNCATE aux_params'); +$dbh->do('COPY aux_params ( kultur, id, value ) FROM STDIN'); +$dbh->pg_putcopydata(join("\n", @aux_params)); +$dbh->pg_putcopyend(); + +$dbh->do('TRUNCATE ratings'); +$dbh->do('COPY ratings ( id, rating, rating_stddev ) FROM STDIN'); +$dbh->pg_putcopydata(join("\n", @ratings)); +$dbh->pg_putcopyend(); + $dbh->commit;