Arbre de décision séquentiel. L'ordre des règles est crucial : chaque règle élimine un type en se basant sur le discriminant le plus fiable.
Cliquez sur chaque règle pour voir le détail.
Condition : side == "ext"
→ garden / terrace / balcony (voir sous-arbre ci-dessous)
Pouvoir discriminant : 100% exclusif aux extérieurs. Aucune pièce intérieure n'a side == "ext".
Condition : sep_ratio ≥ 0.28 AND area < 8 AND doors ≤ 1
→ kitchen (conf 0.80)
Discriminant : les cuisines ouvertes ont le plus haut ratio de séparateurs (0.30–0.41). Le garde doors ≤ 1 (v5.5) exclut les corridors multi-portes.
Condition : area 15–80 AND windows ≥ 1 AND side == "int" AND glazing_ratio ≥ 0.23
→ living_room (conf 0.85)
Discriminant : les séjours ont ≥27% de ratio vitré (≥2 fenêtres ou baies). Les chambres restent sous 20%.
Gardes : side=="int" (v5.6) — un séjour est toujours intérieur. glazing_ratio ≥ 0.23 (v6.3) — zone morte [0.20, 0.27].
Condition : area 8.5–17 AND doors ≥ 1 AND no adjacent AND (windows ≥ 1 → 0.85 | sep_ratio < 0.05 + placard → 0.95)
→ bedroom (conf 0.85 ou 0.95)
Gardes : doors ≥ 1 (v5.5), no adjacent (v5.4) — une chambre a des murs pleins. area max 15→17 (v6.3).
Discriminant : has_placard_door — 76% des chambres, <10% des autres.
Condition : sep ≥ 1 AND sep_ratio ≥ 0.05 AND area < 8 AND connected ≥ 2
→ corridor (conf 0.65)
Discriminant : un corridor a toujours au moins un séparateur et ≥2 connexions (il relie des pièces).
Condition : wl_count == 5 (ou wl_count == 7 AND area < 1.5)
→ storage (conf 0.90)
Discriminant : wl_count == 5 est 100% exclusif aux placards (13/13 dans P1). Un placard a 5 segments de mur car c'est un petit renfoncement.
Condition : area ≤ 3.2 AND nw ≤ 1 AND sep == 0
→ toilet (conf 0.75)
Discriminant : le WC est la plus petite pièce intérieure sans séparateur. Le seuil 3.2m² évite la confusion avec les petites SDB.
Condition : area 3–8 AND nw ≤ 3 AND sep == 0
→ bathroom (conf 0.75)
Discriminant : les SDB sont plus grandes que les WC, intérieures, et sans séparateur (murs pleins pour l'isolation phonique).
Distinguer garden / terrace / balcony sans lire le nom Revit. Basé sur une analyse d'Information Gain.
| Attribut | Information Gain | Rôle |
|---|---|---|
level_type (RDC vs étage) | 43% | Jardins et terrasses au sol |
total_neighbors | 30% | Jardins = plus de voisins adjacents |
sep_ratio | 26% | Jardins ≥ 0.7, balcons ≤ 0.3 |
has_adjacent | 23% | Jardins : toujours adjacent |
windows_count | 20% | Jardins : 0 fenêtres |
area | 16% | Jardins > 25m², balcons < 15m² |
Pour les étages : on construit les polygones 2D des pièces intérieures au N-1, puis on teste si le centroïde de la pièce extérieure tombe dedans. Si oui → terrasse (au-dessus d'un logement). Sinon → balcony.
Résultat : Balcony P1 100%, Terrace P1 100%. -7 erreurs P1, 0 régression P2.
Explorez l'effet des seuils critiques sur la classification.
| Règle | Garde | Version | Motivation |
|---|---|---|---|
| R2 | doors ≤ 1 | v5.5 | Exclut corridors multi-portes |
| R3 | side == "int" | v5.6 | Un séjour est toujours intérieur |
| R3 | glazing_ratio ≥ 0.23 | v6.3 | Sépare chambres (≤0.20) des séjours (≥0.27) |
| R4 | doors ≥ 1 | v5.5 | Une chambre a toujours une porte |
| R4 | no adjacent | v5.4 | Murs pleins (pas de séparateur) |
| R4 | area max 15→17 | v6.3 | Grandes chambres jusqu'à 17m² |