fix: pondérer le score horizon par la confiance
Sans pondération, H+6 pouvait afficher 67 quand "now" était 34 car les deux formules n'ont pas la même échelle. Multiplier par confidence (0.85 à H+6, 0.45 à H+48) rend les scores cohérents entre horizons : un risque ne peut pas paraître croître si c'est juste l'incertitude qui augmente. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -116,12 +116,15 @@ class SpotScoreController extends AbstractController
|
|||||||
$horizons = [];
|
$horizons = [];
|
||||||
foreach ($rows as $row) {
|
foreach ($rows as $row) {
|
||||||
$distKm = (float) $row['distance_km'];
|
$distKm = (float) $row['distance_km'];
|
||||||
$score = max(0, (int) round((1 - min($distKm / 50, 1)) * 100));
|
$confidence = (float) $row['confidence'];
|
||||||
|
// Score pondéré par la confiance : un horizon lointain moins certain
|
||||||
|
// ne peut pas afficher un risque supérieur à un horizon proche plus fiable
|
||||||
|
$score = max(0, (int) round((1 - min($distKm / 50, 1)) * 100 * $confidence));
|
||||||
$horizons['h' . $row['horizon']] = [
|
$horizons['h' . $row['horizon']] = [
|
||||||
'score' => $score,
|
'score' => $score,
|
||||||
'level' => $this->scoreToLevel($score),
|
'level' => $this->scoreToLevel($score),
|
||||||
'distanceKm' => $distKm,
|
'distanceKm' => $distKm,
|
||||||
'confidence' => (float) $row['confidence'],
|
'confidence' => $confidence,
|
||||||
'validAt' => $row['valid_at'],
|
'validAt' => $row['valid_at'],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user