Opgave #188
Forfatter:Daniel Ion
Sværhedsgrad
Din bedste score
N/A
SafeDrive Technologies, en pionervirksomhed inden for bilsikkerhed, udvikler et intelligent system til forebyggelse af katastrofer i moderne køretøjer. Med stigningen i hændelser forårsaget af overophedning og gaslækager har virksomheden brug for en Fire Distinguisher – et AI-system, der er i stand til at detektere farlige anomalier i realtid og klassificere dem korrekt.
Du er den ledende Machine Learning-ingeniør. Din opgave: at bygge det detektionssystem, der kan redde liv.
Data stammer fra sensorer monteret i eksperimentelle køretøjer, indsamlet med intervaller på 1 sekund:
id: id tilknyttet registreringengas_raw: Rå gaskoncentration detekterettemp_c: Temperatur i grader Celsiusflame: Binær flammesensor (0 = fraværende, 1 = tilstede)gas_avg: Glidende gennemsnit af gaskoncentrationentemp_avg: Glidende gennemsnit af temperaturendGas: Ændringshastighed for gasdTemp: Ændringshastighed for temperatursensor_noise: Støj introduceret af sensorentimestamp_ms: Unix-tidsstempel i millisekundersensor_id: Sensor-ID (S001-S005)battery_level: Sensorens batteriniveauvehicle_speed: Køretøjets hastighedweather_condition: Vejrforhold (sunny, rainy, cloudy, foggy)gas_sensor_drift: Drift i gassensorenambient_temp: Omgivelsestemperaturlabel: Type af fare
train.csv: Træningsdata med alle kolonner (inklusive label)test.csv: Testdata uden kolonnen labelSikkerhedsteamet ønsker at forstå fordelingen og karakteristikaene for farerne i træningsdataene.
Din opgave: For train.csv, beregn følgende 12 statistikker:
Output: 12 numeriske værdier (4 procenter + 4 temperaturer + 4 gaskoncentrationer).
Eksempel: For NORMAL: 45.32% af aflæsningerne, gennemsnitstemperatur 32.5°C, gennemsnitlig gas 245.3
Sikkerhedsteamet ønsker at identificere unormale aflæsninger, der kan indikere farlige situationer. Normale aflæsninger danner et mønster i feature-rummet — din opgave er at måle, hvor langt hver aflæsning i test-sættet er fra dette mønster.
1. Vælg de mest relevante features
NORMAL=0, GAS_LEAK=1, OVERHEAT=2, FIRE=3)2. Forbered data
3. Definer NORMAL-profilen
label == "NORMAL" fra train til at fastslå, hvad der menes med "normal adfærd"4. Beregn anomalicscore
d = sqrt((x - mu)^T * Sigma^(-1) * (x - mu))
mu = vektorgennemsnit af NORMAL-registreringerSigma = kovariansmatrix for NORMAL-registreringerSigma_reg = Sigma + I * 1e-6, hvor I er identitetsmatrixenOutput: Anomalicscore for hvert ID i test.csv.
Eksempel:
2,5234,8.922,6567,1.232,7891,14.45Hint: I Python:
scipy.spatial.distance.mahalanobis()eller manuel beregning med numpy.
Den rå score er ikke let at fortolke for teamet i marken. Transformer den til risikokategorier (LOW/MEDIUM/HIGH) ved hjælp af tærskelværdier baseret på historiske data.
1. Beregn tærskelværdier baseret på train
p33 og p662. Klassificer hver aflæsning fra test
| Betingelse | Risikoniveau | Fortolkning |
|---|---|---|
d < p33 | LOW | Næsten normal adfærd |
p33 ≤ d < p66 | MEDIUM | Let anomali |
d ≥ p66 | HIGH | Betydelig anomali |
Output: Risikoniveau for hvert ID i test.csv.
Eksempel:
3,5234,HIGH3,6567,LOW3,7891,HIGHCORE MISSION! Dette er hjernen i Fire Distinguisher-systemet. Hvert sekund sender hundredvis af køretøjer data, og dit system skal øjeblikkeligt beslutte: er alt normalt, eller er der fare på færde? En fejl i detekteringen af en brand kan koste liv. SafeDrive regner med, at du bygger den mest præcise klassifikator muligt.
Din opgave: For hver registrering i test.csv:
label_name (NORMAL / GAS_LEAK / OVERHEAT / FIRE)Output: Det forudsagte label (NORMAL, GAS_LEAK, OVERHEAT eller FIRE) for hver aflæsning i test.
| Subtask | Point | Kriterium |
|---|---|---|
| 1 | 20 | Alle værdier korrekte |
| 2 | 15 | Proportionalt med procentdelen af korrekte scores (tolerance ±0.05) |
| 3 | 15 | Proportionalt med procentdelen af korrekte risikoniveauer |
| 4 | 50 | F1-Score Weighted Multi-Class: • F1 ≥ 0.90 → 50 point • F1 < 0.60 → 0 point • Mellemliggende værdier → lineært. |
Endelig score: Maksimalt 100 point.
submission.csv)Struktur: subtaskID,datapointID,answer
| subtaskID | datapointID | answer |
|---|---|---|
| 1 | 1-12 | [Statistikværdier] |
| 2 | [ID fra test.csv] | [Anomalicscore: f.eks. 8.92] |
| 3 | [ID fra test.csv] | [Risikoniveau: LOW/MEDIUM/HIGH] |
| 4 | [ID fra test.csv] | [Label: NORMAL/GAS_LEAK/OVERHEAT/FIRE] |
Detaljer:
Subtask 1: 12 rækker med faste statistikker
Subtask 2: N rækker
id fra test.csvSubtask 3: N rækker
id fra test.csvLOW, MEDIUM eller HIGH)Subtask 4: N rækker
id fra test.csvNORMAL, GAS_LEAK, OVERHEAT, FIRE)