Need to debug why it isn't working.

This commit is contained in:
2018-10-23 16:25:13 +02:00
parent b4cce71df4
commit 9cf91fbdf8
2 changed files with 52 additions and 30 deletions

View File

@@ -145,6 +145,7 @@ impl LikelihoodFactor {
.get(self.value) .get(self.value)
.map(|variable| variable.get_value()) .map(|variable| variable.get_value())
.unwrap(); .unwrap();
let fx = variable_arena let fx = variable_arena
.get_mut(self.value) .get_mut(self.value)
.map(|variable| variable.get_message(self.id)) .map(|variable| variable.get_message(self.id))

View File

@@ -149,34 +149,7 @@ fn rate(rating_groups: &[&[Rating]]) {
factor.start(&mut variable_arena); factor.start(&mut variable_arena);
} }
for factor in &skill_to_perf { println!("before:");
factor.update_value(&mut variable_arena);
}
for factor in &perf_to_team {
factor.update_sum(&mut variable_arena);
}
for factor in &team_diff {
factor.update_sum(&mut variable_arena);
}
for factor in &trunc {
factor.update(&mut variable_arena);
}
for factor in &team_diff {
factor.update_term(&mut variable_arena, 0);
factor.update_term(&mut variable_arena, 1);
}
for factor in &perf_to_team {
factor.update_term(&mut variable_arena, 0);
}
for factor in &skill_to_perf {
factor.update_mean(&mut variable_arena);
}
for i in 0..size { for i in 0..size {
let value = variable_arena let value = variable_arena
@@ -187,7 +160,52 @@ fn rate(rating_groups: &[&[Rating]]) {
let mu = value.mu(); let mu = value.mu();
let sigma = value.sigma(); let sigma = value.sigma();
println!("player={}, mu={}, sigma={}", i, mu, sigma); println!("* player={}, mu={}, sigma={}", i, mu, sigma);
}
for factor in &skill_to_perf {
factor.update_value(&mut variable_arena);
}
for factor in &perf_to_team {
factor.update_sum(&mut variable_arena);
}
for _ in 0..5 {
for factor in &team_diff {
factor.update_sum(&mut variable_arena);
}
for factor in &trunc {
factor.update(&mut variable_arena);
}
for factor in &team_diff {
factor.update_term(&mut variable_arena, 0);
factor.update_term(&mut variable_arena, 1);
}
}
for factor in &perf_to_team {
factor.update_term(&mut variable_arena, 0);
}
for factor in &skill_to_perf {
factor.update_mean(&mut variable_arena);
}
println!("after:");
for i in 0..size {
let value = variable_arena
.get(ss[i])
.map(|variable| variable.get_value())
.unwrap();
let mu = value.mu();
let sigma = value.sigma();
println!("* player={}, mu={}, sigma={}", i, mu, sigma);
} }
} }
@@ -264,7 +282,7 @@ mod tests {
sigma: SIGMA, sigma: SIGMA,
}; };
assert_eq!(quality(&[&[alice], &[bob]]), 0.41614607); assert_eq!(quality(&[&[alice], &[bob]]), 0.41614606763952605);
} }
#[test] #[test]
@@ -279,6 +297,9 @@ mod tests {
sigma: SIGMA, sigma: SIGMA,
}; };
// alice: mu=27.175, sigma=7.112
// bob: mu=23.141, sigma=6.859
rate(&[&[alice], &[bob]]); rate(&[&[alice], &[bob]]);
assert_eq!(true, false); assert_eq!(true, false);