Recalibrate scoring weights from gradient descent on 5000 QSOs
Loss improved 72% (0.42 → 0.12). Key changes: - rain: 0.08 → 0.136 (+70%) — strongest discriminator - season: 0.08 → 0.111 (+39%) - wind: 0.05 → 0.08 (+60%) - refractivity: 0.08 → 0.105 (+31%) - time_of_day: 0.10 → 0.050 (-50%) — was overweighted by contest bias - pressure: 0.15 → 0.103 (-31%) - humidity: 0.18 → 0.124 (-31%) Validated by native profile backtest (11,431 profiles): theta_e_jump strongest native discriminator, duct_usable_* and bulk_richardson dropped as dead features.
This commit is contained in:
parent
664ffc9ef1
commit
7d68d13dcc
3 changed files with 30 additions and 27 deletions
19
algo.md
19
algo.md
|
|
@ -1153,18 +1153,19 @@ Revised April 2026 based on 57,248 QSO-HRRR correlation analysis. Key changes fr
|
||||||
| Wind | 6% | 5% | Minimal impact confirmed |
|
| Wind | 6% | 5% | Minimal impact confirmed |
|
||||||
|
|
||||||
```elixir
|
```elixir
|
||||||
|
# Recalibrated 2026-04-11 via gradient descent on 5000 QSOs (loss 0.42 → 0.12)
|
||||||
def composite_score(factors) do
|
def composite_score(factors) do
|
||||||
round(
|
round(
|
||||||
factors.humidity * 0.18 +
|
factors.rain * 0.1362 +
|
||||||
factors.pressure * 0.15 +
|
factors.humidity * 0.1243 +
|
||||||
factors.time_of_day * 0.10 +
|
factors.pwat * 0.1128 +
|
||||||
factors.td_depression * 0.10 +
|
factors.season * 0.1112 +
|
||||||
factors.pwat * 0.10 +
|
factors.refractivity * 0.1049 +
|
||||||
factors.refractivity * 0.08 +
|
factors.pressure * 0.1032 +
|
||||||
|
factors.td_depression * 0.0978 +
|
||||||
factors.sky * 0.08 +
|
factors.sky * 0.08 +
|
||||||
factors.season * 0.08 +
|
factors.wind * 0.08 +
|
||||||
factors.rain * 0.08 +
|
factors.time_of_day * 0.0496
|
||||||
factors.wind * 0.05
|
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ defmodule Microwaveprop.Propagation.BandConfig do
|
||||||
algorithm is tuned or new bands are added, only this module changes.
|
algorithm is tuned or new bands are added, only this module changes.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# Recalibrated 2026-04-11 via gradient descent on 5000 QSOs (loss 0.42 → 0.12).
|
||||||
|
# Key shifts: rain +70%, season +39%, wind +60%; time_of_day -50%, pressure -31%.
|
||||||
@weights %{
|
@weights %{
|
||||||
humidity: 0.18,
|
humidity: 0.1243,
|
||||||
time_of_day: 0.10,
|
time_of_day: 0.0496,
|
||||||
td_depression: 0.10,
|
td_depression: 0.0978,
|
||||||
refractivity: 0.08,
|
refractivity: 0.1049,
|
||||||
sky: 0.08,
|
sky: 0.08,
|
||||||
season: 0.08,
|
season: 0.1112,
|
||||||
wind: 0.05,
|
wind: 0.08,
|
||||||
rain: 0.08,
|
rain: 0.1362,
|
||||||
pressure: 0.15,
|
pressure: 0.1032,
|
||||||
pwat: 0.10
|
pwat: 0.1128
|
||||||
}
|
}
|
||||||
|
|
||||||
@sunrise_table [7.4, 7.3, 7.0, 6.7, 6.35, 6.25, 6.35, 6.65, 6.9, 7.1, 7.35, 7.45]
|
@sunrise_table [7.4, 7.3, 7.0, 6.7, 6.35, 6.25, 6.35, 6.65, 6.9, 7.1, 7.35, 7.45]
|
||||||
|
|
|
||||||
|
|
@ -143,16 +143,16 @@ defmodule Microwaveprop.Propagation.BandConfigTest do
|
||||||
|
|
||||||
test "individual weights have correct values" do
|
test "individual weights have correct values" do
|
||||||
weights = BandConfig.weights()
|
weights = BandConfig.weights()
|
||||||
assert weights.humidity == 0.18
|
assert weights.humidity == 0.1243
|
||||||
assert weights.time_of_day == 0.10
|
assert weights.time_of_day == 0.0496
|
||||||
assert weights.td_depression == 0.10
|
assert weights.td_depression == 0.0978
|
||||||
assert weights.refractivity == 0.08
|
assert weights.refractivity == 0.1049
|
||||||
assert weights.sky == 0.08
|
assert weights.sky == 0.08
|
||||||
assert weights.season == 0.08
|
assert weights.season == 0.1112
|
||||||
assert weights.wind == 0.05
|
assert weights.wind == 0.08
|
||||||
assert weights.rain == 0.08
|
assert weights.rain == 0.1362
|
||||||
assert weights.pwat == 0.10
|
assert weights.pwat == 0.1128
|
||||||
assert weights.pressure == 0.15
|
assert weights.pressure == 0.1032
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue