Make verbose an argument for the fit function

This commit is contained in:
2022-06-07 16:04:04 +02:00
parent b01193779d
commit e879377980
8 changed files with 12 additions and 14 deletions

View File

@@ -16,7 +16,7 @@ fn main() {
model.observe(&["A"], &["B"], 0.0); model.observe(&["A"], &["B"], 0.0);
model.fit(); model.fit(true);
for player in ["A", "B", "C", "D", "E", "F"] { for player in ["A", "B", "C", "D", "E", "F"] {
let (mu, sigma) = model.item_score(player, 1.25); let (mu, sigma) = model.item_score(player, 1.25);
@@ -26,7 +26,7 @@ fn main() {
model.observe(&["C"], &["D"], 0.25); model.observe(&["C"], &["D"], 0.25);
model.fit(); model.fit(true);
for player in ["A", "B", "C", "D", "E", "F"] { for player in ["A", "B", "C", "D", "E", "F"] {
let (mu, sigma) = model.item_score(player, 1.25); let (mu, sigma) = model.item_score(player, 1.25);
@@ -36,7 +36,7 @@ fn main() {
model.observe(&["E"], &["F"], 0.50); model.observe(&["E"], &["F"], 0.50);
model.fit(); model.fit(true);
for player in ["A", "B", "C", "D", "E", "F"] { for player in ["A", "B", "C", "D", "E", "F"] {
let (mu, sigma) = model.item_score(player, 1.25); let (mu, sigma) = model.item_score(player, 1.25);
@@ -46,7 +46,7 @@ fn main() {
model.observe(&["B"], &["C"], 0.75); model.observe(&["B"], &["C"], 0.75);
model.fit(); model.fit(true);
for player in ["A", "B", "C", "D", "E", "F"] { for player in ["A", "B", "C", "D", "E", "F"] {
let (mu, sigma) = model.item_score(player, 1.25); let (mu, sigma) = model.item_score(player, 1.25);
@@ -56,7 +56,7 @@ fn main() {
model.observe(&["D"], &["E"], 1.00); model.observe(&["D"], &["E"], 1.00);
model.fit(); model.fit(true);
for player in ["A", "B", "C", "D", "E", "F"] { for player in ["A", "B", "C", "D", "E", "F"] {
let (mu, sigma) = model.item_score(player, 1.25); let (mu, sigma) = model.item_score(player, 1.25);

View File

@@ -31,7 +31,7 @@ fn main() {
model.observe(&["Jerry"], &["Tom"], 3.0); model.observe(&["Jerry"], &["Tom"], 3.0);
model.observe(&["Jerry"], &["Tom", "Spike"], 3.5); model.observe(&["Jerry"], &["Tom", "Spike"], 3.5);
model.fit(); model.fit(true);
// We can predict a future outcome... // We can predict a future outcome...
let (p_win, _p_los) = model.probabilities(&["Jerry"], &["Tom"], 4.0); let (p_win, _p_los) = model.probabilities(&["Jerry"], &["Tom"], 4.0);

View File

@@ -69,7 +69,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
model.observe(&[&winner], &[&loser], t); model.observe(&[&winner], &[&loser], t);
} }
model.fit(); model.fit(true);
println!("Probability that CHI beats BOS..."); println!("Probability that CHI beats BOS...");

View File

@@ -102,14 +102,13 @@ impl Binary {
self.last_t = t; self.last_t = t;
} }
pub fn fit(&mut self) -> bool { pub fn fit(&mut self, verbose: bool) -> bool {
// method="ep", lr=1.0, tol=1e-3, max_iter=100, verbose=False): // method="ep", lr=1.0, tol=1e-3, max_iter=100, verbose=False):
let method = FitMethod::Ep; let method = FitMethod::Ep;
let lr = 1.0; let lr = 1.0;
let tol = 1e-3; let tol = 1e-3;
let max_iter = 100; let max_iter = 100;
let verbose = true;
self.last_method = Some(method); self.last_method = Some(method);

View File

@@ -119,14 +119,13 @@ impl TernaryModel {
self.last_t = t; self.last_t = t;
} }
pub fn fit(&mut self) -> bool { pub fn fit(&mut self, verbose: bool) -> bool {
// method="ep", lr=1.0, tol=1e-3, max_iter=100, verbose=False): // method="ep", lr=1.0, tol=1e-3, max_iter=100, verbose=False):
let method = FitMethod::Ep; let method = FitMethod::Ep;
let lr = 1.0; let lr = 1.0;
let tol = 1e-3; let tol = 1e-3;
let max_iter = 100; let max_iter = 100;
let verbose = true;
self.last_method = Some(method); self.last_method = Some(method);

View File

@@ -23,5 +23,5 @@ fn binary_1() {
model.observe(&["benjamin"], &["audrey"], 6.0); model.observe(&["benjamin"], &["audrey"], 6.0);
model.observe(&["benjamin"], &["audrey"], 7.0); model.observe(&["benjamin"], &["audrey"], 7.0);
model.fit(); model.fit(true);
} }

View File

@@ -27,7 +27,7 @@ fn kickscore_basic() {
model.observe(&["Jerry"], &["Tom"], 3.0); model.observe(&["Jerry"], &["Tom"], 3.0);
model.observe(&["Jerry"], &["Tom", "Spike"], 3.5); model.observe(&["Jerry"], &["Tom", "Spike"], 3.5);
model.fit(); model.fit(true);
let (p_win, _p_los) = model.probabilities(&["Jerry"], &["Tom"], 4.0); let (p_win, _p_los) = model.probabilities(&["Jerry"], &["Tom"], 4.0);

View File

@@ -73,7 +73,7 @@ fn nba_history() {
model.observe(&[&winner], &[&loser], t); model.observe(&[&winner], &[&loser], t);
} }
model.fit(); model.fit(true);
let (p_win, _) = model.probabilities( let (p_win, _) = model.probabilities(
&["CHI"], &["CHI"],