Files
routesapi/ml_data/reports/tuning_20260416_100021.json
2026-06-22 17:40:08 +05:30

204 lines
6.7 KiB
JSON

{
"timestamp": "2026-04-16T10:00:21.048875",
"training_rows": 541,
"n_trials": 100,
"best_predicted_quality": 95.67,
"best_params": {
"max_pickup_distance_km": 8.059607113687592,
"max_kitchen_distance_km": 3.557541351566059,
"max_orders_per_rider": 20,
"ideal_load": 4,
"workload_balance_threshold": 0.9477826833914522,
"workload_penalty_weight": 76.82444554427441,
"distance_penalty_weight": 3.1729184243565047,
"cluster_radius_km": 3.1900618324706227,
"search_time_limit_seconds": 13,
"road_factor": 1.456682787912438
},
"validation": {
"r2_score": 0.775,
"mae": 3.654,
"folds": 5,
"trust_level": "strong",
"trust_score": 4,
"interpretation": "Predictions off by +/-3.7 pts (R2=0.77, trust=strong)"
},
"baseline_stats": {
"avg_quality": 80.44,
"best_quality": 100.0,
"worst_quality": 30.0,
"sample_size": 541
},
"feature_importance": {
"rolling_avg_quality_5": 30.57,
"quality_delta_10": 24.44,
"num_orders": 13.79,
"hour": 12.36,
"day_of_week": 7.77,
"num_riders": 4.27,
"max_pickup_distance_km": 2.05,
"max_kitchen_distance_km": 1.78,
"max_orders_per_rider": 1.08,
"workload_balance_threshold": 0.79,
"ideal_load": 0.42,
"is_peak": 0.3,
"distance_penalty_weight": 0.15,
"search_time_limit_seconds": 0.1,
"workload_penalty_weight": 0.07,
"road_factor": 0.06,
"cluster_radius_km": 0.02
},
"top_trials": [
{
"params": {
"max_pickup_distance_km": 8.059607113687592,
"max_kitchen_distance_km": 3.557541351566059,
"max_orders_per_rider": 20,
"ideal_load": 4,
"workload_balance_threshold": 0.9477826833914522,
"workload_penalty_weight": 76.82444554427441,
"distance_penalty_weight": 3.1729184243565047,
"cluster_radius_km": 3.1900618324706227,
"search_time_limit_seconds": 13,
"road_factor": 1.456682787912438
},
"score": 95.66841888427734
},
{
"params": {
"max_pickup_distance_km": 7.922163642403831,
"max_kitchen_distance_km": 3.560648853560723,
"max_orders_per_rider": 20,
"ideal_load": 4,
"workload_balance_threshold": 0.9496626205810123,
"workload_penalty_weight": 75.42186153753029,
"distance_penalty_weight": 3.2508390582807714,
"cluster_radius_km": 3.139706478950993,
"search_time_limit_seconds": 13,
"road_factor": 1.4512573832284252
},
"score": 95.66841888427734
},
{
"params": {
"max_pickup_distance_km": 7.909351329233809,
"max_kitchen_distance_km": 3.5730562042946805,
"max_orders_per_rider": 20,
"ideal_load": 4,
"workload_balance_threshold": 0.9461193785353987,
"workload_penalty_weight": 75.58774451546567,
"distance_penalty_weight": 3.023081767323725,
"cluster_radius_km": 2.9359493072618243,
"search_time_limit_seconds": 13,
"road_factor": 1.4523616577581806
},
"score": 95.66841888427734
},
{
"params": {
"max_pickup_distance_km": 7.899921037006148,
"max_kitchen_distance_km": 3.596149879389368,
"max_orders_per_rider": 20,
"ideal_load": 4,
"workload_balance_threshold": 0.9486010699634219,
"workload_penalty_weight": 76.40722202337206,
"distance_penalty_weight": 3.056702696738658,
"cluster_radius_km": 2.9703866947191733,
"search_time_limit_seconds": 13,
"road_factor": 1.464829881116208
},
"score": 95.66841888427734
},
{
"params": {
"max_pickup_distance_km": 7.8699343570819424,
"max_kitchen_distance_km": 3.5925575890865504,
"max_orders_per_rider": 20,
"ideal_load": 4,
"workload_balance_threshold": 0.9490495565477699,
"workload_penalty_weight": 80.15149397601218,
"distance_penalty_weight": 3.0716641537068874,
"cluster_radius_km": 2.9214053883777416,
"search_time_limit_seconds": 13,
"road_factor": 1.4643685958637496
},
"score": 95.66841888427734
},
{
"params": {
"max_pickup_distance_km": 7.837799681658111,
"max_kitchen_distance_km": 3.6432511947304795,
"max_orders_per_rider": 20,
"ideal_load": 4,
"workload_balance_threshold": 0.9418215533677297,
"workload_penalty_weight": 81.41780280727099,
"distance_penalty_weight": 2.969582531222015,
"cluster_radius_km": 2.8628487555487707,
"search_time_limit_seconds": 13,
"road_factor": 1.4671924571987078
},
"score": 95.66841888427734
},
{
"params": {
"max_pickup_distance_km": 7.879074471706855,
"max_kitchen_distance_km": 3.6557019240116966,
"max_orders_per_rider": 20,
"ideal_load": 4,
"workload_balance_threshold": 0.9493119929922423,
"workload_penalty_weight": 85.22949214929176,
"distance_penalty_weight": 2.9833341504230377,
"cluster_radius_km": 2.859226254037536,
"search_time_limit_seconds": 13,
"road_factor": 1.4686814250911806
},
"score": 95.66841888427734
},
{
"params": {
"max_pickup_distance_km": 7.823191742797717,
"max_kitchen_distance_km": 3.6432473098256875,
"max_orders_per_rider": 20,
"ideal_load": 4,
"workload_balance_threshold": 0.9498125411623218,
"workload_penalty_weight": 85.45456841118795,
"distance_penalty_weight": 2.9688230845094177,
"cluster_radius_km": 2.842435439385513,
"search_time_limit_seconds": 13,
"road_factor": 1.4670753169304525
},
"score": 95.66841888427734
},
{
"params": {
"max_pickup_distance_km": 7.852371726123224,
"max_kitchen_distance_km": 3.6398102622452124,
"max_orders_per_rider": 20,
"ideal_load": 4,
"workload_balance_threshold": 0.9428641510356341,
"workload_penalty_weight": 84.99438481502906,
"distance_penalty_weight": 2.939503242717154,
"cluster_radius_km": 2.9253430536035037,
"search_time_limit_seconds": 13,
"road_factor": 1.4674115327453523
},
"score": 95.66841888427734
},
{
"params": {
"max_pickup_distance_km": 7.924961584799045,
"max_kitchen_distance_km": 3.6506307086450454,
"max_orders_per_rider": 20,
"ideal_load": 4,
"workload_balance_threshold": 0.9427326784575867,
"workload_penalty_weight": 86.74116147010929,
"distance_penalty_weight": 2.9741884394575506,
"cluster_radius_km": 2.92845676158564,
"search_time_limit_seconds": 13,
"road_factor": 1.4668680923724249
},
"score": 95.66841888427734
}
],
"pareto_frontier": []
}