L'approccio migliore consiste nel creare il set di dati con tutte le funzionalità e nella maggior parte dei casi è sufficiente riempire con zero quelle colonne che non sono disponibili.
Usando il tuo esempio, sarebbe qualcosa di simile:
Total area Number of rooms Garage area
100 2 0
300 2 5
125 1 1.5
Spesso, l'algoritmo di apprendimento che si è scelto sarebbe stato abbastanza potente da usare quelle zeri per classificare correttamente quella voce. Dopo tutto, l'assenza di valore è ancora informazione per l'algoritmo. Questo potrebbe diventare un problema se i tuoi dati sono distorti, ma in tal caso devi comunque indirizzare l'asimmetria.
EDIT:
Ho appena rendo conto che ci sono stati un'altra risposta con un commento di voi di essere paura di usare zeri, in considerazione del fatto che potrebbe essere confusa con piccoli garage. Anche se non vedo ancora un problema (ci dovrebbe essere abbastanza differenza tra un piccolo garage e zero), puoi comunque usare la stessa struttura che segna il garage dell'area non esistente con un numero negativo (diciamo -1).
Anche la soluzione indicata nell'altra risposta è perfettamente plausibile, avendo una caratteristica in più che indica se la casa dispone di garage o meno funzionerebbe bene (specialmente in algoritmi basati su decisioni). Preferisco semplicemente mantenere la dimensionalità dei dati più bassa possibile, ma alla fine questa è più una preferenza piuttosto che una decisione tecnica.
Non vedo come la variabile dummy cambi nulla se si impostano le aree del garage a zero. Il problema che vedo con l'impostazione di aree garage inesistenti a 0 è che saranno visualizzate come simili a garage estremamente piccoli, il che è inaccurato. – jessems
@ ty4: È qui che entra in gioco il manichino. Ad esempio, se si dovesse montare un modello lineare, grazie al manichino si otterrebbe un'intercetta diversa per le case con e senza garage. A pensarci bene, probabilmente non hai nemmeno bisogno del prodotto incrociato. – NPE