Sommario:
Video: What is Machine Learning? (AI Adventures) 2024
A volte i dati grezzi ottenuti da varie fonti non avranno le funzionalità necessarie per eseguire attività di apprendimento automatico. Quando ciò accade, devi creare le tue caratteristiche per ottenere il risultato desiderato. Creare una funzione non significa creare dati dal nulla. Crei nuove funzionalità da dati esistenti.
Capire la necessità di creare funzionalità
Una grande limitazione degli algoritmi di apprendimento automatico è che può essere impossibile indovinare una formula che potrebbe collegare la tua risposta alle funzioni che stai utilizzando. A volte questa incapacità di indovinare si verifica perché non è possibile mappare la risposta utilizzando le informazioni disponibili (il che significa che non si dispone delle informazioni corrette). In altri casi, le informazioni fornite non aiutano l'algoritmo ad apprendere correttamente.
Ad esempio, se si sta modellando il prezzo delle proprietà immobiliari, la superficie del terreno è piuttosto predittiva perché le proprietà più grandi tendono a costare di più. Ma se al posto della superficie, fornisci il tuo algoritmo di apprendimento automatico con la lunghezza dei lati del terreno (le coordinate di latitudine e longitudine dei suoi angoli), il tuo algoritmo potrebbe non capire cosa fare con le informazioni che hai fornito. Alcuni algoritmi riusciranno a trovare la relazione tra le funzionalità, ma la maggior parte degli algoritmi no.
La risposta a questo problema è la creazione di feature. La creazione di feature è quella parte del machine learning che è considerata più un'arte che una scienza perché implica l'intervento umano nel mescolare creativamente le caratteristiche esistenti. Si esegue questa operazione mediante addizione, sottrazione, moltiplicazione e rapporto per generare nuove funzioni derivate con maggiore potenza predittiva rispetto agli originali.
Conoscere bene il problema e capire come un essere umano possa risolverlo fa parte della creazione di una caratteristica. Quindi, collegando l'esempio precedente, il fatto che la superficie terrestre si colleghi al prezzo della proprietà è una conoscenza comune. Se manca una superficie dalle tue caratteristiche quando cerchi di indovinare il valore di una proprietà, puoi recuperare tali informazioni dai dati esistenti - e così facendo aumenta le prestazioni delle previsioni.
Indipendentemente dal fatto che si faccia affidamento sul buonsenso, sulla conoscenza comune o sull'esperienza specializzata, si può fare molto per l'algoritmo della macchina se si individuano le informazioni che dovrebbero funzionare al meglio per il problema e quindi prova ad averlo a disposizione o a ricavarlo tra le tue caratteristiche.
Creazione automatica delle funzioni
È possibile creare automaticamente alcune nuove funzionalità.Un modo per ottenere la creazione automatica delle caratteristiche è utilizzare l'espansione polinomiale. Sono disponibili modi specifici per ottenere l'espansione polinomiale in modo da creare automaticamente le funzionalità sia in R che in Python. Per il momento, è necessario cogliere i concetti alla base dell'espansione polinomiale.
Nell'espansione polinomiale, crei automaticamente interazioni tra le caratteristiche e crei poteri (ad esempio, calcolando il quadrato di una funzione). Le interazioni si basano sulla moltiplicazione delle funzionalità. La creazione di una nuova funzionalità mediante la moltiplicazione aiuta a tenere traccia di come le caratteristiche tendono a comportarsi nel suo complesso. Pertanto, aiuta a mappare relazioni complesse tra le tue caratteristiche che possono suggerire situazioni speciali.
Un grande esempio di interazione è il rumore emesso da un'auto e il prezzo dell'auto. I consumatori non apprezzano le auto rumorose a meno che non comprino un'auto sportiva, nel qual caso il rumore del motore è un vantaggio che ricorda il proprietario della potenza della vettura. Inoltre, gli astanti notano la bella macchina, quindi il rumore gioca un ruolo importante nel mettersi in mostra perché il rumore attirerà sicuramente l'attenzione degli altri. D'altra parte, il rumore quando si guida una macchina di famiglia non è poi così bello.
In un'applicazione di apprendimento automatico, nel tentativo di prevedere il tasso di preferenza per una determinata auto, caratteristiche come il rumore e il prezzo dell'auto sono di per sé predittivi. Tuttavia, moltiplicando i due valori e aggiungendoli all'insieme di funzionalità è possibile suggerire inequivocabilmente a un algoritmo di apprendimento che l'obiettivo è un'auto sportiva (quando si moltiplicano i livelli di rumore elevato a un prezzo elevato).
Aiuta l'aiuto creando relazioni non lineari tra la risposta e le caratteristiche, suggerendo situazioni specifiche.
Come altro esempio, immagina di dover prevedere le spese annuali di una persona. L'età è un buon predittore perché, man mano che le persone invecchiano e maturano, cambiano anche la loro vita e la loro situazione familiare. Gli studenti iniziano poveri ma poi trovano lavoro e possono costruire una famiglia. Da un punto di vista generale, le spese tendono a crescere come invecchiano fino a un certo punto. Il pensionamento di solito segna un punto in cui le spese tendono a diminuire. L'età contiene tali informazioni, ma è una caratteristica che tende a crescere e le relative spese di crescita non aiutano a descrivere l'inversione che si verifica a una certa età.
L'aggiunta della funzione quadrata aiuta a creare un effetto contatore per invecchiare, che è piccolo all'inizio ma cresce rapidamente con l'età. L'effetto finale è una parabola, con una crescita iniziale caratterizzata da un picco di spesa a una certa età, e quindi una diminuzione.
Come accennato all'inizio, sapendo in anticipo tali dinamiche (rumore e auto sportive, consumo e età avanzata) possono aiutarti a creare le giuste caratteristiche. Ma se non conosci queste dinamiche in anticipo, l'espansione polinomiale le creerà automaticamente per te perché, dato un certo ordine, creerà interazioni e poteri di quell'ordine. L'ordine indicherà il numero di moltiplicazioni e la potenza massima da applicare alle funzionalità esistenti.
Quindi un'espansione polinomiale di ordine 2 aumenta tutte le caratteristiche della seconda potenza e moltiplica ogni singola caratteristica di tutte le altre. (Si ottiene la moltiplicazione di tutte le combinazioni di due funzioni.) Chiaramente, maggiore è il numero, più nuove funzionalità saranno create, ma molte di esse saranno ridondanti e contribuiranno a rendere il vostro algoritmo di apprendimento automatico più adatto ai dati.
Quando si utilizza l'espansione polinomiale, è necessario prestare attenzione all'esplosione delle funzioni che si stanno creando. I poteri aumentano in modo lineare, quindi se hai cinque caratteristiche e hai bisogno di un'espansione dell'ordine 2, ciascuna funzione viene aumentata fino alla seconda potenza. Aumentando l'ordine di uno si aggiunge semplicemente una nuova funzione di alimentazione per ogni caratteristica originale. Invece, le interazioni aumentano in base alle combinazioni delle funzionalità fino a quell'ordine.
Infatti, con cinque funzioni e un'espansione polinomiale di ordine 2, vengono create tutte e dieci le combinazioni univoche dell'accoppiamento delle funzionalità. L'aumento dell'ordine a 3 richiederà la creazione di tutte le combinazioni univoche di due variabili, oltre alle combinazioni univoche di tre variabili, ovvero 20 funzioni.