Per comprendere il problema, esegui le seguenti attività:
- Indica l'obiettivo del prodotto che stai sviluppando o di cui stai eseguendo il refactoring.
- Determinare se l'obiettivo è risolto al meglio utilizzando l'ML predittivo l'IA generativa o una soluzione non ML.
- Verifica di disporre dei dati necessari per addestrare un modello se utilizzi un modello l'approccio ML predittivo.
Indica l'obiettivo
Inizia dichiarando il tuo obiettivo in termini non ML. L'obiettivo è la risposta domanda: "Che cosa sto cercando di ottenere?"
La tabella seguente indica chiaramente gli obiettivi delle app ipotetiche:
App | Obiettivo |
---|---|
App Meteo | Calcolare le precipitazioni in incrementi di sei ore per una regione geografica. |
App Moda | Genera vari modelli di magliette. |
App video | Consiglia video utili. |
App di posta | Rilevare lo spam. |
App finanziaria | Riassumere le informazioni finanziarie provenienti da più fonti di notizie. |
App di mappe | Calcolare il tempo di percorrenza. |
App di banca | Identificare le transazioni fraudolente. |
App di ristorazione | Indicare la cucina in base al menu di un ristorante. |
App e-commerce | Rispondi alle recensioni con risposte utili. |
Caso d'uso chiaro per l'ML
Alcuni considerano l'ML come uno strumento universale da applicare a tutti i problemi. Nel realtà, l'ML è uno strumento specializzato adatto solo a problemi particolari. Tu Non vuoi implementare una soluzione ML complessa quando una soluzione non ML più semplice può funzionare.
I sistemi di ML possono essere suddivisi in due grandi categorie: ML predittivo e l'AI generativa. Le seguenti che ne elenca le caratteristiche distintive:
Ingresso | Output | Tecnica di addestramento | |
---|---|---|---|
ML predittivo |
Testo Immagine Audio Video Valore numerico |
Consente di fare una previsione, ad esempio classificando le email come spam o non spam, indovinare la pioggia di domani o prevedendo il prezzo di un'azione. In genere l'output può essere verificato rispetto alla realtà. | In genere usa grandi quantità di dati per addestrare un di apprendimento per rinforzo (non supervisionato) per eseguire per un'attività specifica. |
Generative AI |
Testo Immagine Audio Video Numerica |
Genera un output in base all'intenzione dell'utente, ad esempio riassumere un articolo o produrre un clip audio o un breve video. | In genere utilizza molti dati senza etichetta per addestrare un modello linguistico di grandi dimensioni o generatore di immagini per inserire i dati mancanti. Il modello può quindi essere utilizzato per attività che possono essere incorniciate come attività da compilare oppure perfezionati addestrandolo su dati etichettati per un'attività specifica, come classificazione dei contenuti. |
Per confermare che l'ML sia l'approccio giusto, verifica innanzitutto che l'attuale approccio non ML ottimizzata. Se non hai implementato una soluzione non ML, prova di risolvere il problema manualmente utilizzando euristiche.
La soluzione non ML è il benchmark che userai per determinare se l'ML è una buon caso d'uso per il tuo problema. Prendi in considerazione le seguenti domande durante il confronto da un approccio non ML a uno ML:
Qualità. Quanto pensi che possa essere migliore una soluzione ML? Se una soluzione ML potrebbe essere solo un piccolo miglioramento, che potrebbe indicare la soluzione attuale è la migliore.
Costi e manutenzione. Quanto costa la soluzione ML sia nel a breve e a lungo termine? In alcuni casi, costa molto di più in termini di le risorse di calcolo e i tempi per implementare l'ML. Considera quanto segue. domande:
- La soluzione ML è in grado di giustificare l'aumento dei costi? Tieni presente che i miglioramenti apportati ai sistemi di grandi dimensioni possono giustificare facilmente i costi la manutenzione dell'implementazione di una soluzione ML.
- Quanta manutenzione richiederà la soluzione? In molti casi, l'ML le implementazioni richiedono una manutenzione dedicata a lungo termine.
- Il tuo prodotto dispone delle risorse necessarie per supportare la formazione o l'assunzione a chi ha esperienza nel machine learning?
Verifica le tue conoscenze
ML predittivo e dati
I dati sono la forza trainante dell'ML predittivo. Per rimediare previsioni, sono necessari dati che contiene caratteristiche con funzionalità predittive corrente. I dati devono avere le seguenti caratteristiche:
Abbondante. Gli esempi più pertinenti e utili nel tuo dataset, meglio è il modello.
Coerenza e affidabilità. Avere dati coerenti e affidabili raccolti produrranno un modello migliore. Ad esempio, un modello meteorologico basato su ML trarrà vantaggio dai dati raccolti nel corso degli anni dalla stessa i modelli di machine learning.
Attendibile. Comprendi la provenienza dei dati. I dati verranno da fonti attendibili controllate, come i log del prodotto, o sarà da fonti per le quali non hai molte informazioni, come l'output di un altro di machine learning?
Disponibile. Assicurati che tutti gli input siano disponibili al momento della previsione nel è nel formato corretto. Se sarà difficile ottenere determinati valori delle caratteristiche in per la previsione, ometti queste caratteristiche dai tuoi set di dati.
risposta esatta. In set di dati di grandi dimensioni, è inevitabile che etichette avranno valori errati, ma se più di una piccola percentuale di etichette non sono corrette, il modello produrre previsioni scadenti.
Rappresentante. I set di dati devono essere rappresentativi del il più possibile. In altre parole, i set di dati devono riflettere accuratamente gli eventi, i comportamenti degli utenti e/o i fenomeni reali modellato. L'addestramento su set di dati non rappresentativi può causare prestazioni scarse. quando al modello viene chiesto di fare previsioni reali.
Se non riesci a ottenere i dati necessari nel formato richiesto, il modello previsioni scadenti.
Potenza predittiva
Affinché un modello possa fare previsioni accurate, le caratteristiche del set di dati devono avere capacità predittiva. Più una caratteristica è correlata a un'etichetta, più è probabile è prevederlo.
Alcune caratteristiche avranno una capacità predittiva maggiore di altre. Ad esempio, in una
set di dati meteorologici, funzionalità quali cloud_coverage
, temperature
e
dew_point
sarebbe un migliore predittore di pioggia rispetto a moon_phase
o
day_of_week
. Per l'esempio dell'app di video, si potrebbe ipotizzare che includa
come video_description
, length
e views
potrebbero essere buoni predittori per
i video che un utente potrebbe voler guardare.
Ricorda che la capacità predittiva di una caratteristica può cambiare perché il contesto o
modifiche al dominio. Ad esempio, nell'app di video, una funzionalità come upload_date
potrebbero, in generale, essere debolmente correlati con l'etichetta. Tuttavia,
il sottodominio dei video di giochi, upload_date
potrebbe essere strettamente correlato
l'etichetta.
Determinare quali caratteristiche hanno potere predittivo può richiedere molto tempo e il processo di sviluppo. Puoi esplorare manualmente la capacità predittiva di una caratteristica rimuovendo e durante l'addestramento di un modello. Puoi automatizzare la ricerca la capacità predittiva mediante algoritmi come Correlazione Pearson, Regolazione delle informazioni reciproche (AMI), e Valore di Shapley, che forniscono una valutazione numerica per analizzare la capacità predittiva di un feature.
Verifica le tue conoscenze
Per ulteriori indicazioni sull'analisi e sulla preparazione dei set di dati, consulta Preparazione dei dati e feature engineering per il machine learning.
Previsioni e azioni
Non ha valore nel prevedere qualcosa se non puoi trasformare la previsione in un'azione che aiuta gli utenti. Vale a dire che il prodotto deve intervenire dal dell'output del modello.
Ad esempio, un modello che prevede se un utente troverà utile un video dovrebbe essere inserito in un'app che consiglia video utili. Un modello che prevede l'eventuale pioggia dovrebbe essere collegata a un'app meteo.
Verifica le tue conoscenze
In base allo scenario seguente, determina se l'utilizzo del ML è il migliore il nostro approccio al problema.
Un team di ingegneri di una grande organizzazione è responsabile telefonate in arrivo.
Obiettivo: comunicare ai chiamanti per quanto tempo rimarranno in attesa una volta stabilito il volume attuale delle chiamate.
Non hanno soluzioni in atto, ma pensano che una soluzione euristica dividere la corrente numero di clienti in attesa rispetto al numero di dipendenti che rispondono al telefono, e poi moltiplica per 10 minuti. Tuttavia, sa che alcuni clienti riescono a risolvere i problemi in due minuti, mentre altre possono richiedere fino a 45 minuti o più.
La loro euristica probabilmente non otterrà un numero abbastanza preciso. Loro
puoi creare un set di dati con le seguenti colonne:
number_of_callcenter_phones
, user_issue
,
time_to_resolve
call_time
time_on_hold
.
time_on_hold
.