67 lines
1.5 KiB
Rust
67 lines
1.5 KiB
Rust
extern crate blas_src;
|
|
|
|
use kickscore as ks;
|
|
|
|
fn main() {
|
|
let mut model = ks::model::Binary::probit();
|
|
|
|
for player in ["A", "B", "C", "D", "E", "F"] {
|
|
let kernel = (
|
|
ks::kernel::Constant::new(1.0),
|
|
ks::kernel::Matern52::new(0.5, 1.0),
|
|
);
|
|
|
|
model.add_item(player, kernel);
|
|
}
|
|
|
|
model.observe(&["A"], &["B"], 0.0);
|
|
|
|
model.fit();
|
|
|
|
for player in ["A", "B", "C", "D", "E", "F"] {
|
|
let (mu, sigma) = model.item_score(player, 1.25);
|
|
|
|
println!("{}: mu={} sigma={}", player, mu, sigma);
|
|
}
|
|
|
|
model.observe(&["C"], &["D"], 0.25);
|
|
|
|
model.fit();
|
|
|
|
for player in ["A", "B", "C", "D", "E", "F"] {
|
|
let (mu, sigma) = model.item_score(player, 1.25);
|
|
|
|
println!("{}: mu={} sigma={}", player, mu, sigma);
|
|
}
|
|
|
|
model.observe(&["E"], &["F"], 0.50);
|
|
|
|
model.fit();
|
|
|
|
for player in ["A", "B", "C", "D", "E", "F"] {
|
|
let (mu, sigma) = model.item_score(player, 1.25);
|
|
|
|
println!("{}: mu={} sigma={}", player, mu, sigma);
|
|
}
|
|
|
|
model.observe(&["B"], &["C"], 0.75);
|
|
|
|
model.fit();
|
|
|
|
for player in ["A", "B", "C", "D", "E", "F"] {
|
|
let (mu, sigma) = model.item_score(player, 1.25);
|
|
|
|
println!("{}: mu={} sigma={}", player, mu, sigma);
|
|
}
|
|
|
|
model.observe(&["D"], &["E"], 1.00);
|
|
|
|
model.fit();
|
|
|
|
for player in ["A", "B", "C", "D", "E", "F"] {
|
|
let (mu, sigma) = model.item_score(player, 1.25);
|
|
|
|
println!("{}: mu={} sigma={}", player, mu, sigma);
|
|
}
|
|
}
|