Predicția venitului anual (Adult Income)
作者: Ilie David Alexandru
📖 Predicția venitului anual (Adult Income)
Ai fost recrutat ca data scientist într-un mic „laborator de predicții economice". Sarcina ta este să-ți dai seama cine sparge bariera de 50.000 USD pe an și cine nu, folosind date reale despre educație, muncă și viața de zi cu zi. Ai la dispoziție două fișiere cu date socio-economice, descrise mai jos:
📋 Descrierea coloanelor
| Coloană | Descriere |
|---|---|
| sampleid | Identificator unic pentru fiecare observație |
| age | Vârsta persoanei |
| workclass | Tipul angajatorului (ex: Private, Self-emp-not-inc etc.) |
| fnlwgt | Greutate finală din recensământ (final weight) |
| education | Nivel educațional (ex: Bachelors, Masters etc.) |
| educational_num | Reprezentare numerică a nivelului educațional |
| marital_status | Stare civilă |
| occupation | Ocupația |
| relationship | Relația în gospodărie |
| race | Rasă |
| gender | Gen |
| capital_gain | Câștiguri de capital |
| capital_loss | Pierderi de capital |
| hours_per_week | Ore lucrate pe săptămână |
| native_country | Țara de origine |
| profile_description | Descriere textuală a profilului profesional |
| income | Venit anual (<=50K / >50K) – coloană țintă |
Notă:
Coloana income este disponibilă doar în datele de antrenare (train.csv).
🧩 Subtask-uri
Subtask 1 (10 puncte)
Analizează datele de antrenare (train.csv) și determină:
Care este țara de origine (native_country), alta decât United-States, cu cel mai mare număr de persoane care au venitul >50K?
Rezultatul trebuie să fie un string cu numele exact al țării, așa cum apare în date.
Subtask 2 (15 puncte)
Analizează datele de antrenare (train.csv) și determină:
Care este ocupația (occupation) cu cea mai mare rată de venit >50K?
Rata de venit >50K pentru o ocupație se calculează ca: numărul de persoane cu venit >50K din acea ocupație, împărțit la numărul total de persoane din acea ocupație.
Rezultatul trebuie să fie un string cu numele exact al ocupației, așa cum apare în date.
Subtask 3 (55 puncte)
Construiește un model de clasificare capabil să prezică valoarea coloanei income pentru toate observațiile din test.csv.
Modelul trebuie să producă una dintre cele două clase:
<=50K>50K
Subtask 4 (20 puncte)
Coloana profile_description conține descrieri textuale ale profilurilor profesionale. Aplică o metodă de clustering pe această coloană pentru a grupa observațiile din test.csv în clustere.
Returnează pentru fiecare observație din test.csv eticheta clusterului (valoare numerică întreagă).
📊 Evaluare
Subtask 1: Potrivire exactă cu răspunsul corect.
Subtask 2: Potrivire exactă cu răspunsul corect.
Subtask 3: Evaluarea se face folosind F1 Macro:
f1_macro ≥ 0.80→ 55 punctef1_macro < 0.60→ 0 puncte- Valorile intermediare sunt punctate proporțional între 0 și 55
Subtask 4: Evaluarea se face folosind Adjusted Rand Index (ARI):
ARI ≥ 0.90→ 20 puncteARI ≤ 0.00→ 0 puncte- Valorile intermediare sunt punctate proporțional între 0 și 20
📄 Formatul fișierului de trimitere
Fișierul de trimitere trebuie să fie în format CSV, cu următoarele coloane:
subtaskID– indexul subtask-uluidatapointID– identificator unic din setul de dateanswer– răspunsul sau predicția
Exemplu:
subtaskID,datapointID,answer
1,1,India
2,2,Sales
3,10001,<=50K
3,10002,>50K
4,10001,0
4,10002,2
Notă:
- Pentru Subtask 1 și Subtask 2,
datapointIDtrebuie să fie1, respectiv2. - Pentru Subtask 3 și Subtask 4,
datapointIDtrebuie să fie valoareasampleiddintest.csv.
📊 Sursa datelor
Adult / Census Income Dataset – UCI Machine Learning Repository