Comprendere il problema

Per comprendere il problema, esegui queste operazioni:

  • Indica l'obiettivo del prodotto che stai sviluppando o refactoring.
  • Determina se l'obiettivo può essere risolto al meglio utilizzando ML predittivo, AI generativa o una soluzione non ML.
  • Se utilizzi un approccio ML predittivo, verifica di disporre dei dati necessari per addestrare un modello.

Indica l'obiettivo

Inizia definendo il tuo obiettivo in termini non correlati al machine learning. L'obiettivo è la risposta alla domanda: "Che cosa sto cercando di ottenere?"

La tabella seguente indica chiaramente gli obiettivi per le app ipotetiche:

App Obiettivo
App Meteo Calcola le precipitazioni in incrementi di sei ore per una regione geografica.
App di moda Genera vari modelli di magliette.
App di video Consiglia video utili.
App di posta Rileva lo spam.
App finanziaria Riepilogare le informazioni finanziarie di diverse fonti di notizie.
App di mappe Calcolare il tempo di percorrenza.
App bancaria Identifica le transazioni fraudolente.
App di ristoranti Identifica i piatti in base al menù di un ristorante.
App e-commerce Rispondi alle recensioni con risposte utili.

Caso d'uso chiaro per il ML

Alcuni considerano il machine learning come uno strumento universale che può essere applicato a tutti i problemi. In realtà, il ML è uno strumento specializzato adatto solo a problemi particolari. Non è consigliabile implementare una soluzione ML complessa quando funzionerà una soluzione più semplice non ML.

I sistemi di ML possono essere suddivisi in due ampie categorie: ML predittivo e AI generativa. Nella seguente tabella sono elencate le caratteristiche che ne definiscono:

Input Output Tecnica di addestramento
ML predittivo Testo
Immagine
Audio
Video
Numerico
Fa una previsione, ad esempio classificando un'email come spam o non spam, indovinando le precipitazioni di domani o prevedendo il prezzo di un'azione. In genere l'output può essere verificato rispetto alla realtà. In genere utilizza molti dati per addestrare un modello supervisionato, non supervisionato o di rinforzo per l'apprendimento per eseguire un'attività specifica.
Generative AI Testo
Immagine
Audio
Video
Numerico
Genera un output in base all'intenzione dell'utente, ad esempio riassumendo un articolo o producendo un clip audio o un breve video. In genere utilizza molti dati non etichettati per addestrare un modello linguistico di grandi dimensioni (LLM) o un generatore di immagini al fine di inserire i dati mancanti. Il modello può essere quindi utilizzato per attività che possono essere incluse come attività di riempimento degli spazi vuoti oppure può essere perfezionato addestrandolo su dati etichettati per attività specifiche, come la classificazione.

Per confermare che il machine learning sia l'approccio giusto, verifica innanzitutto che la tua attuale soluzione non ML sia ottimizzata. Se non hai implementato una soluzione non ML, prova a risolvere il problema manualmente utilizzando un'euristica.

La soluzione non ML è il benchmark che utilizzerai per determinare se il ML è un buon caso d'uso per il tuo problema. Quando confronti un approccio non ML con uno ML, considera le seguenti domande:

  • Qualità. Quanto pensi possa essere migliore una soluzione di ML? Se ritieni che una soluzione di ML possa essere solo un piccolo miglioramento, ciò potrebbe indicare che la soluzione attuale è la migliore.

  • Costi e manutenzione. Quanto è costosa la soluzione ML nel breve e nel lungo termine? In alcuni casi, l'implementazione del machine learning costa molto di più in termini di risorse di calcolo e tempo. Considera le seguenti domande:

    • La soluzione ML giustifica l'aumento dei costi? Tieni presente che piccoli miglioramenti nei sistemi di grandi dimensioni possono giustificare facilmente il costo e la manutenzione dell'implementazione di una soluzione di ML.
    • Quanta manutenzione richiederà la soluzione? In molti casi, le implementazioni ML richiedono una manutenzione dedicata a lungo termine.
    • Il tuo prodotto dispone delle risorse necessarie per supportare la formazione o l'assunzione di personale con esperienza nel machine learning?

Verifica le tue conoscenze

Perché è importante disporre di una soluzione non ML o euristica prima di analizzare una soluzione ML?
Una soluzione non ML è il benchmark rispetto a cui misurare una soluzione di ML.
Le soluzioni non ML ti aiutano a determinare il costo di una soluzione ML.

ML e dati predittivi

I dati sono la forza trainante del ML predittivo. Per creare previsioni valide, sono necessari dati che contengono funzionalità con potenza predittiva. I dati devono avere le seguenti caratteristiche:

  • Abbondante. Più sono gli esempi pertinenti e utili nel tuo set di dati, migliore sarà il modello.

  • Coerenti e affidabili. La raccolta di dati in modo coerente e affidabile produrrà un modello migliore. Ad esempio, un modello meteo basato su ML trarrà vantaggio dai dati raccolti nel corso di molti anni dagli stessi strumenti affidabili.

  • Attendibile. Scopri da dove provengono i tuoi dati. I dati provengono da origini attendibili gestite da te, come i log del tuo prodotto, oppure da origini sulle quali non disponi di informazioni approfondite, ad esempio l'output di un altro sistema ML?

  • Disponibile. Assicurati che tutti gli input siano disponibili al momento della previsione nel formato corretto. Se sarà difficile ottenere determinati valori di caratteristiche al momento della previsione, ometti queste caratteristiche dai tuoi set di dati.

  • risposta esatta. In set di dati di grandi dimensioni, è inevitabile che alcune etichette abbiano valori errati, ma se più di una piccola percentuale di etichette non è corretta, il modello genererà previsioni scadenti.

  • Rappresentante. I set di dati dovrebbero essere quanto più possibile rappresentativi del mondo reale. In altre parole, i set di dati dovrebbero riflettere con precisione gli eventi, i comportamenti degli utenti e/o i fenomeni del mondo reale che vengono modellati. L'addestramento su set di dati non rappresentativi può causare prestazioni scadenti quando al modello viene chiesto di fare previsioni reali.

Se non riesci a ottenere i dati necessari nel formato richiesto, il modello effettuerà previsioni scadenti.

Potenza predittiva

Affinché un modello possa fare previsioni accurate, le caratteristiche nel set di dati devono avere una potenza predittiva. Più una caratteristica è correlata con un'etichetta, più è probabile che la preveda.

Alcune funzionalità avranno un maggiore potere predittivo rispetto ad altre. Ad esempio, in un set di dati meteo, caratteristiche come cloud_coverage, temperature e dew_point sarebbero migliori predittori di pioggia rispetto a moon_phase o day_of_week. Per l'esempio di un'app di video, si potrebbe ipotizzare che funzionalità come video_description, length e views possano essere ottimi indicatori di previsione di quali video un utente vorrebbe guardare.

Tieni presente che la capacità di previsione di una funzionalità può cambiare quando cambia il contesto o il dominio. Ad esempio, nell'app di video, una funzionalità come upload_date potrebbe, in generale, essere debolmente correlata all'etichetta. Tuttavia, nel sottodominio dei video di giochi, upload_date potrebbe essere strettamente correlato all'etichetta.

Determinare quali funzionalità dispongono di un potere predittivo può essere un processo dispendioso in termini di tempo. Puoi esplorare manualmente la potenza predittiva di una caratteristica rimuovendola e aggiungendola durante l'addestramento di un modello. Puoi automatizzare il rilevamento della potenza predittiva di una funzionalità utilizzando algoritmi come la correlazione di Pearsson, l'AMI (AMI) regolata e il Valore di Shapley, che forniscono una valutazione numerica per analizzare la potenza predittiva di una funzionalità.

Verifica le tue conoscenze

Quando analizzi i tuoi set di dati, quali sono i tre attributi chiave che dovresti cercare?
Rappresentante del mondo reale.
Contiene valori corretti.
Le funzionalità hanno un potere predittivo per l'etichetta.
Abbastanza piccolo da essere caricato su un computer locale.
Raccolta da una varietà di fonti imprevedibili.

Per ulteriori indicazioni su come analizzare e preparare i set di dati, consulta Preparazione dei dati e ingegneria delle caratteristiche per il machine learning.

Confronto tra previsioni e azioni

Non ha senso prevedere qualcosa se non è possibile trasformare la previsione in un'azione che aiuti gli utenti. Vale a dire che il prodotto deve eseguire un'azione dall'output del modello.

Ad esempio, un modello che prevede se un utente troverà utile un video deve essere inserito in un'app che consiglia video utili. Un modello che prevede se pioverà da inserire in un'app meteo.

Verifica le tue conoscenze

In base allo scenario seguente, determina se l'utilizzo del machine learning è l'approccio migliore al problema.

Il team di tecnici di una grande organizzazione è responsabile della gestione delle telefonate in arrivo.

L'obiettivo: per informare i chiamanti per quanto tempo rimarranno in attesa in base al volume attuale delle chiamate.

Non dispongono di alcuna soluzione, ma pensano che un'euristica sarebbe quella di dividere il numero attuale di clienti in attesa per il numero di dipendenti che rispondono ai telefoni e poi moltiplicare per 10 minuti. Tuttavia, sa che i problemi di alcuni clienti vengono risolti in due minuti, mentre altri possono richiedere fino a 45 minuti o più.

La loro euristica probabilmente non fornirà un numero sufficientemente preciso. Può creare un set di dati con le seguenti colonne: number_of_callcenter_phones, user_issue, time_to_resolve, call_time, time_on_hold.

Utilizza il machine learning. Il team di tecnici ha un obiettivo ben definito. La loro euristica non sarà abbastanza adatta al loro caso d'uso. Il set di dati sembra avere funzionalità predittive per l'etichetta time_on_hold.
Non utilizzare il machine learning. Sebbene abbiano un obiettivo chiaramente definito, dovrebbero prima implementare e ottimizzare una soluzione non ML. Inoltre, il loro set di dati non sembra contenere abbastanza funzionalità con potenza predittiva.