Risultati Ricerca Intelligenza Artificiale Italia
482 elementi trovati per ""
- Come utilizzare i dati per guidare la tua strategia di marketing?
La comprensione di cosa sia il marketing basato sui dati inizia osservando i molti modi in cui il comportamento dei consumatori è cambiato negli ultimi anni e le tecnologie che consentono di raccogliere e analizzare enormi quantità di dati su clienti, mercati e settori. Il marketing basato sui dati applica le più recenti funzionalità di analisi dei dati per individuare gli acquisti di media più profittevoli e creare consapevolezza creativa e personalizzata sui prodotti. Nell'era dei big data, non sorprende che sempre più esperti di marketing utilizzino la scienza dei dati nel marketing per posizionare meglio i propri marchi, prodotti e servizi nel mercato ipercompetitivo di oggi. Quattro punti che devi annotare nella tua mente prima di leggere l'articolo. Come utilizzare i dati per guidare la tua strategia di marketing? Per aiutare a identificare le opportunità di mercato. Per campagne di marketing personalizzate Per generare approfondimenti sulla creazione e il design del prodotto Per generare approfondimenti sui prezzi e business model Detto questo, molti esperti di marketing non sanno esattamente da dove cominciare quando si tratta di scienza dei dati sul marketing; dopo tutto, molti non hanno le competenze necessarie nemmeno per iniziare ad analizzare correttamente i dati di marketing. Perché usare la scienza dei dati nel marketing ? I dipartimenti di marketing di tutto il mondo stanno spingendo i propri budget verso gli sforzi di marketing digitale. Gli studi hanno dimostrato che la pubblicità online è diventata più efficace ed economica rispetto ai tradizionali metodi offline. Di conseguenza, gli esperti di marketing non possono permettersi di non sfruttare il potere della scienza dei dati nella loro ricerca di fidelizzazione dei clienti. Gli esperti di marketing possono utilizzare la scienza dei dati per ottenere informazioni dettagliate sui clienti da grandi set di dati, segmentare il pubblico in gruppi più piccoli in base a dati demografici e comportamenti e identificare modelli di interessi tra i gruppi. Con queste informazioni in mano, le aziende sono quindi in grado di indirizzare meglio i messaggi per ciascun gruppo in modo che fornisca la soluzione migliore per ciò che desiderano. Questo è il motivo per cui la scienza dei dati è vitale oggi per guidare la strategia di marketing: senza di essa, i professionisti del marketing lo farebbero alla cieca. Utilizzare i dati per guidare la tua strategia di marketing 1. Ottimizzazione del budget di marketing Un budget di marketing è una parte importante di una strategia di marketing e può avere un enorme impatto sul successo di una campagna. Tuttavia, molte aziende possono trovarsi in difficoltà per massimizzare i propri sforzi. Questo post del blog delineerà alcune strategie per migliorare il tuo budget di marketing trovandone il miglior uso possibile. Ad esempio, quando crei una promozione, scegli prima la piattaforma di social media più appropriata e adatta al tuo marchio. Determina cosa vuoi che faccia la tua promozione (incentivare le nuove registrazioni? Aumentare la consapevolezza? Riportare il traffico al tuo sito web?) prima di prendere qualsiasi decisione sui contenuti. Infine, ricorda che ogni canale ha le sue caratteristiche e punti di forza unici: dipende da te come vengono utilizzati purché siano efficaci nel guidare i tuoi obiettivi. Ricorda devi basarti sui dati, no su ciò che credi sia migliore di pancia. Più avanti leggerai una lista che il nostro team di webmaster ha scritto per te sui principali tool, gratis, che puoi iniziare a usare per raccogliere i dati. Utilizzare i dati per guidare la tua strategia di marketing 2. Arrivare al pubblico giusto Alcuni importanti suggerimenti per la segmentazione del mercato, le campagne di marketing su misura e l'analisi approfondita includono i seguenti approfondimenti. Analytics di google ci consente di creare profili dei clienti esaminando ciò che gli è piaciuto e quanto tempo hanno trascorso a sfogliare determinati prodotti. Inoltre, i professionisti del marketing ora possono misurare non solo i clic o le conversioni, ma anche monitorare l'intero percorso degli utenti attraverso una canalizzazione, misurando la forza delle loro intenzioni in ogni fase della loro visita. L'analisi dei dati ti offre una visione più approfondita della psicologia dei tuoi clienti che un sondaggio tradizionale non potrebbe mai fare. Non solo ti aiuta a sapere chi è il tuo pubblico; aiuta anche a raggiungerli! Utilizzare i dati per guidare la tua strategia di marketing 3. Targeting Il targeting dei tuoi annunci in base ai dati del pubblico comporterà tassi di conversione più elevati e costi inferiori. Quando crei una campagna, non rivolgerti a persone che abitano in Italia o agli adulti maschi italiani, poiché un pubblico generico può includere persone che non si adattano ai tuoi dati demografici target. rivolgiti ad esempio a donne di età compresa tra " 18-24 anni ", aggiungi dettagli sul loro stato civile, lo stato parentale e la fascia di reddito familiare. Più dati più risultati. Il targeting di questi tipi di segmenti di pubblico contribuirà a migliorare il rendimento dei tuoi annunci. Se hai un annuncio che ha problemi di clic, rimuovi la parola chiave free e sostituiscila con qualcosa di più specifico su ciò che viene offerto (es. ottenere una consulenza gratuita). Due modi chiave in cui l'analisi in tempo reale può essere utilizzata nel marketing sono: Inviare offerte e incentivi mirati ai clienti appropriati quando sono in negozio o sul tuo sito web; E, utilizzando il comportamento dei clienti per capire quando e perché le vendite vengono perse o realizzate. La chiave è creare annunci pertinenti per la tua base di clienti. Pensa a come potrebbero rispondere se lo vedessero; è probabile che clicchino? Questo li farebbe desiderare di acquistare? Una volta trovate le parole chiave giuste per il testo pubblicitario, misura il loro rendimento l'una rispetto all'altra osservando il CTR ( percentuale di clic ) e le conversioni ( percentuale di clic che generano nuovi lead ). Con strumenti come Google Analytics e Facebook Ads Manager, monitorare le prestazioni è facile! Utilizzare i dati per guidare la tua strategia di marketing 4. Analisi del sentimento Un aspetto che le persone trascurano sempre è la diversità nei punti di vista. Il motivo per cui i software di analisi di marketing possono sbagliare così spesso è perché non tengono conto di prospettive diverse. Per capire davvero i tuoi clienti, devi chiedere loro cosa pensano e cosa pensano del tuo marchio e del tuo prodotto. Questi dati sul sentiment ti forniranno informazioni sulla profondità delle reazioni umane, senza spegnere le persone ponendo domande invasive o semplicemente facendo supposizioni basate sul solo istinto. Utilizzare i dati per guidare la tua strategia di marketing 5. Strategia dei contenuti Per fornire un vantaggio competitivo, le organizzazioni oggi devono utilizzare i dati per guidare le decisioni. Le organizzazioni hanno accesso a grandi quantità di informazioni che possono utilizzare per il processo decisionale. Questo perché le organizzazioni hanno abbracciato l'idea del processo decisionale basato sui dati in quanto ha aumentato le loro entrate e ha migliorato le relazioni con i clienti. Pertanto, i dati dovrebbero essere ampiamente utilizzati anche nelle attività di marketing, poiché aiutano a raggiungere i potenziali clienti meglio rispetto all'utilizzo di qualsiasi altra strategia di marketing tradizionale. Se non abbiamo idea di quali contenuti interessino maggiormente ai nostri lettori, o peggio ancora non sappiamo quali sono i loro dubbi o domande , stiamo creando contenuti per noi stessi... Utilizzare i dati per guidare la tua strategia di marketing 6. Strategia di prezzo Quando stai implementando una strategia di prezzo, assicurati di porre le seguenti domande. Chi è il tuo cliente? Cosa vogliono? Come lo vogliono? Perché ti pagano? Compreranno di nuovo o sarà il loro unico acquisto? È importante che la tua strategia di prezzo sia in linea con queste tre serie di domande. Un modo per raggiungere questo obiettivo è impostare prezzi a più livelli per clienti diversi. Per esempio: Potresti avere sconti per gli acquirenti per la prima volta e prezzi più alti per coloro che hanno acquistato in passato. Un'altra cosa da considerare quando si imposta il prezzo è il tipo di valore che stai offrendo ai clienti in base a ciò che ottengono in cambio. Puoi usare cose come tempo risparmiato o riduzione dello stress come esempi qui perché i data scientist sanno che i clienti non sempre pensano a questo tipo di vantaggi quando prendono decisioni di acquisto. Utilizzare i dati per guidare la tua strategia di marketing 7. Social media marketing Uno dei modi chiave in cui puoi utilizzare la scienza dei dati nel marketing è il social media marketing. Con i social media , hai una linea di comunicazione diretta con il tuo pubblico di destinazione e questo ti offre l'opportunità di commercializzare in tempo reale. Ad esempio con le storie su Instagram , diamo visibilità a dei contenuti solo per 24h andando a spingere sull'urgenza e la scarsità di quel prodotto o servizio. Questo perchè il cliente "teme" che il giorno dopo il prodotto o servizio possa aumentare di prezzo o non essere più disponibile. Puoi persino avere più account e stili diversi per scopi diversi, come rispondere rapidamente agli eventi attuali, inviare un messaggio coerente al marchio o raccogliere analisi sui potenziali clienti. Un altro modo in cui la scienza dei dati influisce sul marketing è attraverso i modelli predittivi. In sostanza, utilizzando i big data, le aziende sono in grado di prevedere ciò che i futuri clienti desiderano prima che ne abbiano bisogno e quindi di aumentare le vendite di conseguenza. Questo modello predittivo mira a creare la migliore esperienza utente con gli annunci pubblicitari dal momento in cui qualcuno entra nella porta fino al momento in cui se ne va. Cosa usano i marketer per analizzare i big data? I seguenti sono tra gli strumenti e le tecniche più popolari utilizzati dai marketer per raccogliere dati rilevanti per le loro attività di marketing e convertirli in informazioni di marketing fruibili. raccogliere dati per guidare la tua strategia di marketing : Optimizely Optimizely è descritta come una "piattaforma di erogazione e sperimentazione progressiva" progettata per consentire ai professionisti del marketing e ad altri team di un'organizzazione di basare le proprie decisioni sull'analisi dei dati in tempo reale. Oltre a condurre test divisi A/B per siti Web, app mobili e dispositivi connessi, la piattaforma supporta test multivariati utilizzando il codice di variazione JavaScript lato client. Principali vantaggi e caratteristiche di Optimizely : Ha un'interfaccia veloce, scalabile e intuitiva che facilita il processo decisionale basato sui dati. Si integra perfettamente con piattaforme di analisi, gestori di tag, sistemi di gestione dei contenuti e dati di terze parti. Esegue test multipagina, A/B e URL suddivisi di siti, app mobili e siti mobili. Le sue opzioni di targeting per pubblico includono esportazione dei dati, modalità di anteprima, pianificazione della campagna, motore delle statistiche e targeting comportamentale. raccogliere dati per guidare la tua strategia di marketing : Google Analytics Google Analytics è uno strumento gratuito che aiuta le aziende a capire come i clienti interagiscono con i siti web dell'azienda. Il servizio utilizza l'apprendimento automatico per estrarre informazioni dai dati di un'organizzazione, inclusi quali clienti hanno maggiori probabilità di acquistare un prodotto e quali hanno il più alto potenziale di guadagno. raccogliere dati per guidare la tua strategia di marketing : Google PageSpeed Insights Google PageSpeed Insights genera un punteggio delle prestazioni che mostra la velocità con cui le pagine vengono eseguite su dispositivi mobili e desktop. Offre suggerimenti per migliorare le prestazioni della pagina, utilizzando i dati di laboratorio per eseguire il debug dei problemi di prestazioni e i dati sul campo per acquisire esperienze utente reali. raccogliere dati per guidare la tua strategia di marketing : Google Search Console Google Search Console genera rapporti sul traffico di ricerca di un sito mostrando quali query portano i clienti al sito. Il servizio consente alle aziende di inviare mappe del sito e singoli URL per migliorare il posizionamento nei risultati di ricerca di Google. I clienti possono anche esaminare la copertura dell'indice del servizio per assicurarsi che sia aggiornato. raccogliere dati per guidare la tua strategia di marketing : Adobe Creative Cloud Adobe Creative Cloud combina diversi strumenti basati su cloud di Adobe. Ha lo scopo di semplificare i flussi di lavoro di un'azienda e garantire che tutti i membri del team e le parti interessate di un progetto di marketing siano sincronizzati. Tra le oltre 20 app nel pacchetto Creative Cloud ci sono Photoshop, Illustrator, InDesign, Adobe XD per lo sviluppo dell'interfaccia, Premiere Pro per l'editing video, Dreamweaver per lo sviluppo del sito e Animate per la creazione di animazioni vettoriali interattive. MakeUseOf offre cinque motivi per cui vale la pena acquistare Creative Cloud : Offre alle aziende una scelta di quattro piani di acquisto. È un'opzione conveniente per i fotografi. Nuove funzionalità sono immediatamente disponibili. I suoi strumenti di archiviazione e collaborazione basati su cloud aumentano la produttività. Fornisce alle aziende una "coerenza senza soluzione di continuità tra le discipline". raccogliere dati per guidare la tua strategia di marketing : Crazy Egg Crazy Egg è uno " strumento di mappatura termica " che crea rappresentazioni bidimensionali dei dati. Le mappe di calore rappresentano i valori dei dati come colori diversi che illustrano il modo in cui i clienti interagiscono con il sito Web di un'azienda. Crazy Egg calcola le visualizzazioni di pagina, le schede e i collegamenti su cui i visitatori fanno clic e altre azioni per fornire agli esperti di marketing informazioni su quali elementi attirano l'attenzione degli utenti e quali no. Tra gli strumenti di analisi offerti da Crazy Egg c'è un tester A/B per confrontare diverse versioni di pagine; strumenti di modifica delle pagine per modificare gli elementi al volo; e un'analisi completa dei siti che indica da dove provengono i visitatori del sito, come navigano nel sito e dove stanno incontrando blocchi stradali. raccogliere dati per guidare la tua strategia di marketing : Buzz Sumo Gli esperti di marketing devono tenersi al passo con gli argomenti caldi nelle loro aree di prodotto. BuzzSumo analizza i contenuti online più popolari relativi a parole chiave specifiche, come marchi, tecnologie e argomenti caldi. The Next Scoop descrive diversi modi in cui i marketer utilizzano BuzzSumo per promuovere le campagne: Monitora la reputazione del marchio scoprendo tutte le menzioni su Internet e attivando avvisi ogni volta che viene visualizzata una nuova menzione. Crea contenuti ottimizzati per i motori di ricerca e progettati per attirare un pubblico per il tuo marketing per molti mesi o anni. Trova i contenuti condivisi più frequentemente relativi a qualsiasi argomento cerchi. I risultati possono essere filtrati per data, tipo di contenuto, lingua, conteggio delle parole e paese. Calcola il ROI del content marketing misurando il livello di coinvolgimento per ogni contenuto pubblicato e il coinvolgimento medio per rete, tipo di contenuto o altra categoria. Visualizza i backlink più condivisi ai contenuti di una campagna ordinati per coinvolgimento totale, link di dominio o link esterni. raccogliere dati per guidare la tua strategia di marketing : SEMrush SEMrush è uno strumento SEO che aiuta gli esperti di marketing a raccogliere informazioni sui concorrenti monitorando i loro siti per una gamma di fonti di traffico del sito, tra cui diretto, ricerca, referral, a pagamento e social. Il servizio di marketing Location Rebel descrive i cinque toolkit del servizio : SEO Toolkit viene utilizzato per la ricerca di parole chiave, l'analisi della concorrenza, l'ottimizzazione delle pagine e la creazione di link. Advertising Toolkit aiuta a identificare le parole chiave ottimali per la pubblicità a pagamento che bilanciano la creazione di traffico con l'accessibilità economica. Social Media Toolkit gestisce i feed dei social media dell'azienda pianificando e monitorando i post. Content Marketing Toolkit analizza i post in una campagna di marketing e suggerisce modi per ottimizzare il contenuto per migliorarne il posizionamento nei risultati di ricerca. Competitive Research Toolkit consente agli esperti di marketing di decodificare le operazioni online dei concorrenti per identificare backlink, traffico e ricerca organica. raccogliere dati per guidare la tua strategia di marketing : MailChimp Il servizio di email marketing MailChimp offre una piattaforma di marketing progettata per aiutare i marketer a saperne di più sul loro pubblico di destinazione. Tra i suoi componenti ci sono il software di gestione delle relazioni con i clienti (CRM), un dashboard del pubblico per aiutare a personalizzare i messaggi di marketing e tag che possono essere applicati manualmente o automaticamente ai contatti. Stirista descrive le caratteristiche principali di MailChimp: Integrazione dell'e-commerce con una gamma di servizi web, inclusi WordPress e Shopify Supporto per campagne di audience mirate, inclusi follow-up automatizzati Notifiche d'ordine personalizzate Un'estensione per il browser Google Chrome Inoltre, la funzione relativa ai dati demografici previsti di MailChimp prevede il sesso e l'età dei contatti nel pubblico della campagna e fornisce informazioni dettagliate sul loro comportamento, inclusi clic, acquisti, download e altre azioni. raccogliere dati per guidare la tua strategia di marketing : HubSpot HubSpot combina la gestione di content marketing, social media marketing, landing page, SEO e analisi web. Oltre a un prodotto CRM gratuito, HubSpot offre servizi a pagamento che includono CMS Hub per la gestione dei contenuti, Marketing Hub per aumentare il traffico e aumentare i tassi di conversione e Sales Hub che automatizza molte funzioni di gestione delle vendite. PCMag.com elenca le caratteristiche degne di nota in Marketing Hub : Le informazioni demografiche vengono estratte automaticamente dagli URL e dai record dei contatti non appena vengono aggiunti. Gli utenti possono inviare e-mail ed effettuare chiamate vocali ai contatti (in combinazione con Sales Hub) e registrare e salvare le informazioni sulle chiamate all'interno dei record dei contatti. Gli utenti possono unire più elenchi di contatti da altre fonti. Gli utenti possono pubblicare e-mail esplosive direttamente da Facebook, Instagram e altri social media. Gli utenti possono testare più versioni di una campagna di email marketing. Vantaggi del marketing basato sui dati L'adozione del marketing basato sui dati avvantaggia le aziende consentendo loro di creare campagne di marketing più efficaci, creare riconoscimento del marchio e aumentare la fedeltà dei clienti. Invece di indovinare cosa vogliono le persone, gli esperti di marketing possono attingere alle informazioni sui consumatori che raccolgono da diverse fonti per basare le loro decisioni di marketing su dati concreti. Migliora l'acquisto medio Il marketing basato sui dati migliora l'efficacia degli acquisti multimediali di un'azienda, si rivolge ai clienti più ricettivi e comunica ai clienti messaggi pertinenti. La combinazione di big data e analisi basata sull'intelligenza artificiale consente ai professionisti del marketing di indirizzare i clienti con una precisione senza precedenti. Il servizio di marketing Criteo descrive otto strategie di targeting dei clienti : Raggiungi i clienti scaduti offrendo loro offerte sui prodotti più venduti dell'azienda. Identifica gli acquirenti stagionali e prevedi quando saranno più ricettivi alle offerte speciali sulle loro categorie di prodotti preferite. Convinci i clienti offline a diventare clienti online offrendo consigli personalizzati e promozioni solo online. Migliora il coinvolgimento con i marchi dell'azienda promuovendo offerte esclusive per i clienti fedeli, fornendo incentivi ai clienti di alto valore per aderire a programmi di fidelizzazione. Upsell su un acquisto precedente offrendo sconti su accessori abbinati o altri prodotti complementari. Cross-sell in base all'acquisto precedente del cliente tramite promozioni su prodotti di una categoria simile, come i tablet per gli acquirenti di laptop. Tieni informati i clienti sui nuovi prodotti, rivolgendoti agli acquirenti frequenti di prodotti simili. Promuovi gli aggiornamenti ai prodotti acquistati quando gli aggiornamenti diventano disponibili. Aggiorna continuamente il messaggio di marketing Per mantenere aggiornate le loro comunicazioni con i clienti, gli esperti di marketing devono aggiornare continuamente il messaggio di marketing modificando i contenuti per attirare l'attenzione delle persone che hanno maggiori probabilità di rispondere positivamente. Trew Marketing fornisce cinque suggerimenti per evitare che un messaggio di marketing diventi obsoleto : Assicurati che il tuo sito corrisponda al tuo messaggio. I prodotti e le strategie di marketing spesso cambiano più velocemente degli elementi sul sito web dell'azienda. Ad esempio, gli attributi più importanti dei prodotti in evidenza dovrebbero corrispondere al messaggio nella descrizione "cosa facciamo" dell'azienda. Mantieni il tuo messaggio coerente. Quando il messaggio viene aggiornato su un supporto, la modifica deve essere rappresentata nelle informazioni correlate su tutte le altre piattaforme. Aggiorna il materiale di marketing ausiliario. Ad esempio, le aziende hanno spesso un pitch deck standard che introduce i clienti all'azienda e ai suoi prodotti. Ogni volta che il messaggio di mercato viene aggiornato, rielabora il pitch deck e altre risorse di marketing in modo che corrispondano alla modifica. Assicurati che i membri del personale siano informati del nuovo messaggio. Prepara una presentazione sull'aggiornamento che i team interni, i nuovi assunti e i partner possono visualizzare. Sottolinea come il prodotto soddisfi le esigenze dei clienti oggi. I prodotti si evolvono per soddisfare le mutevoli esigenze dei clienti. Il marketing basato sui dati aiuta le aziende a rimanere in sintonia con i problemi che i loro clienti devono affrontare, in modo che possano spiegare come il prodotto risolve i loro problemi. Come utilizzare le informazioni basate sui dati nel marketing La business intelligence raccolta dal marketing basato sui dati può essere utilizzata per migliorare il marchio dell'azienda, monitorare i concorrenti e ottimizzare i prezzi. Le aziende continuano a scoprire come utilizzare le informazioni basate sui dati in modi nuovi e gratificanti. Tecniche per migliorare la fidelizzazione dei clienti Il marketing basato sui dati può migliorare gli sforzi di fidelizzazione dei clienti semplificando la sollecitazione e l'azione in base al feedback dei clienti. Il servizio di marketing Help Scout presenta strategie di fidelizzazione dei clienti supportate dalla ricerca : Sostieni qualcosa. I consumatori stabiliscono relazioni a lungo termine con marchi che condividono i loro valori. Il marketing basato sui dati aiuta le aziende a comunicare i propri valori ai clienti. Condividi lo slancio dell'azienda. Quando un'azienda sviluppa un nuovo prodotto o ne migliora uno esistente, crea uno slancio interno che spinge il business in avanti. Condividi lo slancio con i clienti tramite il messaggio di marketing dell'azienda. Educare i clienti su come utilizzare il prodotto. Rendi la formazione parte integrante dell'attività di marketing offrendo onboarding all'interno del prodotto, e-mail sul ciclo di vita, formazione online e accesso a esperti di prodotto. Reciproci inaspettatamente. Offrire un servizio sempre buono è uno dei maggiori fattori di riacquisto e raccomandazioni. La strategia di marketing dovrebbe utilizzare i dati per essere proattivi nel contattare i clienti per il check-in o semplicemente per ringraziare. Tratta i clienti fedeli come dei re. Le persone apprezzano gli sforzi di un'azienda per farli sentire speciali. Il marketing basato sui dati estrae informazioni sui clienti di alto valore di un'azienda che possono essere utilizzate per dimostrare quanto l'azienda apprezzi la loro fedeltà. Aaprendimento automatico e Iintelligenza artificiale nel marketing L'apprendimento automatico e altre tecniche di intelligenza artificiale vengono utilizzate per automatizzare alcune operazioni di marketing, identificare nuovi segmenti di mercato promettenti e migliorare il servizio clienti in risposta al cambiamento delle preferenze e delle condizioni di mercato. Alan Sharpe descrive tre modi in cui l'apprendimento automatico migliora l'automazione del marketing : L'adozione di strategie di prezzo dinamiche consente alle aziende di offrire prezzi flessibili sui prodotti in base alla domanda dei clienti, alle tendenze del mercato e ad altre condizioni. L'apprendimento automatico rende disponibili dati pertinenti e aggiornati per rendere più efficaci i prezzi dinamici. Utilizza i chatbot per offrire supporto 24 ore su 24, 7 giorni su 7, che può essere personalizzato in base a ciò che il sistema ha appreso dalle origini dati dei clienti interne ed esterne. L'apprendimento automatico aiuta anche a personalizzare l'esperienza di acquisto di un cliente, come i consigli forniti da Amazon e Netflix. Ottieni clienti a vita sfruttando le informazioni dettagliate sul comportamento e sulle preferenze dei clienti che il machine learning estrae dagli asset di dati dell'azienda. Più un'azienda conosce i propri clienti, più accuratamente può anticipare i loro bisogni e comportamenti futuri. Conclusione su come utilizzare i dati per guidare la tua strategia di marketing L'uso dei dati dovrebbe consentire ai professionisti del marketing di prendere decisioni più informate, sia a breve che a lungo termine. In definitiva, con dati accurati disponibili sul comportamento dei clienti, gli esperti di marketing saranno in grado di personalizzare le proprie strategie di marketing per garantire il massimo coinvolgimento dei clienti. La chiave è capire come si comportano i tuoi clienti e dove trovano le informazioni. In questo modo puoi pianificare strategie di marketing e sapere che i tuoi messaggi sono efficaci nel raggiungerli. Con una solida conoscenza di ciò di cui hanno bisogno i tuoi consumatori, cosa li fa funzionare e quando è più probabile che acquisteranno da te, sarai ben posizionato per il successo.
- Apprendimento per rinforzo ( Reinforcement learning )
Una semplice guida all'apprendimento per rinforzo per un principiante assoluto. l'articolo include definizioni con esempi, applicazioni reali, concetti chiave e vari tipi di risorse di apprendimento. Introduzione all' apprendimento per rinforzo L'apprendimento per rinforzo è un'area del Machine Learning. Si tratta di intraprendere un'azione adeguata per massimizzare la ricompensa in una situazione particolare. Viene utilizzato da vari software e macchine per trovare il miglior comportamento o percorso possibile da intraprendere in una situazione specifica. L'apprendimento per rinforzo differisce dall'apprendimento supervisionato in modo che nell'apprendimento supervisionato i dati di addestramento hanno la chiave di risposta con sé, quindi il modello viene addestrato con la risposta corretta stessa mentre nell'apprendimento per rinforzo non c'è risposta ma l'agente di rinforzo decide cosa fare per svolgere il compito assegnato. In assenza di un set di dati di addestramento, è destinato a imparare dalla sua esperienza. Esempio: il problema è il seguente: abbiamo un agente e una ricompensa, con molti ostacoli nel mezzo. L'agente dovrebbe trovare il miglior percorso possibile per raggiungere la ricompensa. Il problema seguente spiega il problema più facilmente. L'immagine sopra mostra il robot, il diamante e il fuoco. L'obiettivo del robot è ottenere la ricompensa che è il diamante ed evitare gli ostacoli che vengono lanciati. Il robot impara provando tutti i percorsi possibili e quindi scegliendo il percorso che gli dà la ricompensa con il minor numero di ostacoli. Ogni passo giusto darà al robot una ricompensa e ogni passo sbagliato sottrarrà la ricompensa del robot. La ricompensa totale verrà calcolata quando raggiunge la ricompensa finale che è il diamante. Punti principali nell'apprendimento per rinforzo : Prendi questo esempio come una base da cui partire, durante l'articolo approfondiremo tutti i punti. Input: l'input dovrebbe essere uno stato iniziale da cui partirà il modello Output: ci sono molti possibili output in quanto vi sono una varietà di soluzioni per un problema particolare Formazione: la formazione si basa sull'input, il modello restituirà uno stato e l'utente deciderà di premiare o punire il modello in base al suo output. Il modello continua a imparare. La soluzione migliore viene decisa in base alla ricompensa massima. Tipi di apprendimento per rinforzo: Esistono due tipi di rinforzo: Positivo – Il rinforzo positivo è definito come quando un evento, si verifica a causa di un particolare comportamento, aumenta la forza e la frequenza del comportamento. In altre parole, ha un effetto positivo sul comportamento. I vantaggi dell'apprendimento per rinforzo sono: Massimizza le prestazioni Sostieni il cambiamento per un lungo periodo di tempo Troppo Rinforzo può portare a un sovraccarico di stati che può diminuire i risultati Negativo – Il rinforzo negativo è definito come il rafforzamento del comportamento perché una condizione negativa viene fermata o evitata. Vantaggi dell'apprendimento per rinforzo: Aumenta il comportamento Fornire sfida a uno standard minimo di prestazioni Fornisce solo abbastanza per soddisfare il comportamento minimo Cos'è l'apprendimento per rinforzo? L'apprendimento per rinforzo (RL) è un modello di apprendimento automatico in cui l'agente impara da tentativi ed errori per raggiungere l'obiettivo. È un algoritmo orientato all'obiettivo in cui un agente riceve una ricompensa quando esegue l'azione corretta. Questi premi aiutano gli agenti a navigare in un ambiente complesso per raggiungere l'obiettivo finale. Proprio come un bambino che impara a camminare da solo per tentativi ed errori. Allo stesso modo, una macchina impara a svolgere compiti complessi senza l'intervento umano. L'apprendimento per rinforzo è abbastanza diverso da altri algoritmi di apprendimento automatico. Impara dall'ambiente e ottiene prestazioni migliori rispetto agli esseri umani. Mentre i modelli di apprendimento supervisionato e non supervisionato dipendono dai dati esistenti raccolti dagli esseri umani e sono limitati all'intelligenza umana. Ad esempio, AlphaGo di Deepmind ha imparato da solo varie strategie per sconfiggere il campione del mondo del gioco da tavolo Go. Come funziona l'apprendimento per rinforzo? Prendiamo un esempio di un gioco di Mario. All'inizio del gioco l'agente (Mario) è allo stato zero, in base al suo stato l'agente eseguirà un'azione. In questo caso, Mario andrà avanti. Ora l'agente è in un nuovo stato (nuovo frame). L'agente riceverà una ricompensa poiché è sopravvissuto andando avanti. L'agente continuerà a fare mosse fino a quando non avrà terminato la fase o non sarà morto nel processo. L'obiettivo principale dell'apprendimento per rinforzo è massimizzare la raccolta delle ricompense adottando misure minime. Vantaggi dell'apprendimento per rinforzo L'apprendimento per rinforzo è applicabile a un'ampia gamma di problemi complessi che non possono essere affrontati con altri algoritmi di apprendimento automatico. L'apprendimento per rinforzo è più vicino all'intelligenza artificiale generale (AGI), poiché possiede la capacità di cercare un obiettivo a lungo termine esplorando varie possibilità in modo autonomo. Alcuni dei vantaggi dell'apprendimento per rinforzo includono: Si concentra sul problema nel suo insieme. Gli algoritmi di apprendimento automatico convenzionali sono progettati per eccellere in sottoattività specifiche, senza una nozione del quadro generale. L'apprendimento per rinforzo, invece, non divide il problema in sottoproblemi; funziona direttamente per massimizzare la ricompensa a lungo termine. Ha uno scopo ovvio, comprende l'obiettivo ed è in grado di scambiare ricompense a breve termine con benefici a lungo termine. Non necessita di una fase di raccolta dati separata. Nell'apprendimento per rinforzo, i dati di addestramento vengono ottenuti tramite l'interazione diretta dell'agente con l'ambiente. I dati di addestramento sono l'esperienza dell'agente di apprendimento, non una raccolta separata di dati che devono essere forniti all'algoritmo. Ciò riduce notevolmente l'onere per il supervisore responsabile del processo di formazione. Funziona in ambienti dinamici e incerti. Gli algoritmi di apprendimento per rinforzo sono intrinsecamente adattivi e costruiti per rispondere ai cambiamenti nell'ambiente. Nell'apprendimento per rinforzo, il tempo conta e l'esperienza che l'agente raccoglie non è distribuita in modo indipendente e identico (iid), a differenza degli algoritmi di apprendimento automatico convenzionali. Applicazioni dell'apprendimento per rinforzo: Al momento, le applicazioni di machine learning sono limitate a una singola attività e dipendono dai dati esistenti. Ma in futuro tutto questo cambierà, combineremo l'apprendimento per rinforzo con visione artificiale, traduzione automatica e vari tipi di modelli per ottenere prestazioni sovrumane, ad esempio: Auto a guida autonoma : viaggiare diventa più sicuro e veloce Automazione del settore : gestione del magazzino Trading e finanza : previsione del prezzo delle azioni NLP (Natural Language Processing) : sintesi del testo, risposta alle domande e traduzione automatica Sanità : individuazione e cura efficaci delle malattie Engineering : ottimizzare la produzione su larga scala Sistemi di raccomandazione: notizie migliori, film e consigli sui prodotti. Gioco : migliorare i livelli di gioco per ottimizzare il coinvolgimento dei giocatori Marketing e pubblicità : identifica le persone e indirizzale con annunci in base alle esigenze. Robotica : esecuzione di compiti complessi e ripetitivi. Componenti dell'apprendimento per rinforzo : Ci sono così tante cose da imparare sull'apprendimento per rinforzo prima di iniziare a costruirne una nostra. In questa sezione, impareremo i componenti chiave dell'apprendimento per rinforzo e come ogni componente interagisce tra loro. Agente : può essere un personaggio del gioco, un robot o un'auto. Un agente è un algoritmo che esegue un'azione. Nella vita reale l'agente è un essere umano. Azione (A) : è un insieme di tutte le possibili mosse che un agente può eseguire. Ad esempio, Mario può saltare, spostarsi a sinistra, a destra e chinarsi. Fattore di sconto : le ricompense future sono ridotte, quindi vale meno di un'azione immediata per imporre un edonismo a breve termine all'agente. Ambiente: è un mondo che interagisce con gli agenti. In Mario, l'ambiente è la mappa. Prende lo stato corrente e l'azione dell'agente come input e restituisce la ricompensa e lo stato successivo. Stato (S) : è come una cornice. Quando un agente esegue un'azione, lo stato viene modificato dal frame corrente al frame successivo in un gioco di Mario. Lo stato attuale e successivo è fornito dall'ambiente. Ricompensa (R) : è un feedback o un premio assegnato a un agente in base all'azione precedente. Può essere positivo se l'agente ha completato l'attività e negativo se non riesce. I premi possono anche essere immediati e ritardati. Politica (?) : è una strategia che gli agenti dipendenti per ottenere le ricompense più alte possibili in base allo stato e all'azione. In parole semplici, definisce come un agente agirà in base allo stato corrente. Valore (V) : è un rendimento atteso a lungo termine con uno sconto. Traiettoria : è una sequenza di stati e azioni influenzate da quegli stati. Episodio : un ciclo completo di un agente, dall'inizio alla fine. Ad esempio, Mario inizia dall'inizio e, quando la fase corrente è completata, il primo episodio è completato. L'episodio è completato anche quando Mario muore. Sfruttare : intraprendere l'azione migliore per massimizzare la raccolta di ricompense. Esplora l'azione casuale intrapresa per esplorare l'ambiente senza considerare le ricompense. Algoritmi di apprendimento per rinforzo : Piuttosto che fare riferimento a un algoritmo specifico , il campo dell'apprendimento per rinforzo è costituito da diversi algoritmi che adottano approcci leggermente diversi. Le differenze sono dovute principalmente alle loro strategie per esplorare i loro ambienti. Stato-azione-ricompensa-stato-azione (SARSA). Questo algoritmo di apprendimento per rinforzo inizia fornendo all'agente ciò che è noto come una politica . La politica è essenzialmente una probabilità che le dice le probabilità di determinate azioni che si traducono in ricompense o stati benefici. Q-learning. Questo approccio all'apprendimento per rinforzo adotta l'approccio opposto. L'agente non riceve alcuna politica, il che significa che la sua esplorazione del suo ambiente è più autodiretta. Deep Q-Reti. Questi algoritmi utilizzano le reti neurali oltre alle tecniche di apprendimento per rinforzo. Utilizzano l'esplorazione dell'ambiente autodiretto dell'apprendimento per rinforzo. Le azioni future si basano su un campione casuale di azioni benefiche passate apprese dalla rete neurale. In che modo l'apprendimento per rinforzo è diverso dall'apprendimento supervisionato e non supervisionato? L'apprendimento per rinforzo è considerato il ramo a sé stante dell'apprendimento automatico, sebbene abbia alcune somiglianze con altri tipi di apprendimento automatico, che si suddividono nei seguenti quattro domini: Apprendimento supervisionato. Nell'apprendimento supervisionato, gli algoritmi si addestrano su un corpo di dati etichettati. Gli algoritmi di apprendimento supervisionato possono apprendere solo gli attributi specificati nel set di dati. Le applicazioni comuni dell'apprendimento supervisionato sono i modelli di riconoscimento delle immagini. Questi modelli ricevono una serie di immagini etichettate e imparano a distinguere gli attributi comuni dei moduli predefiniti. Apprendimento senza supervisione. Nell'apprendimento non supervisionato, gli sviluppatori liberano gli algoritmi su dati completamente privi di etichetta. L'algoritmo apprende catalogando le proprie osservazioni sulle caratteristiche dei dati senza che gli venga detto cosa cercare. Apprendimento semi-supervisionato. Questo metodo adotta un approccio di mezzo. Gli sviluppatori inseriscono un set relativamente piccolo di dati di addestramento etichettati, nonché un corpus più ampio di dati senza etichetta. L'algoritmo viene quindi incaricato di estrapolare ciò che apprende dai dati etichettati ai dati non etichettati e trarre conclusioni dall'insieme nel suo insieme. Insegnamento rafforzativo. Questo richiede un approccio completamente diverso. Situa un agente in un ambiente con parametri chiari che definiscono l'attività benefica e l'attività non benefica e un obiettivo generale da raggiungere. È simile in qualche modo all'apprendimento supervisionato in quanto gli sviluppatori devono dare agli algoritmi obiettivi chiaramente specificati e definire ricompense e punizioni. Ciò significa che il livello di programmazione esplicita richiesta è maggiore rispetto all'apprendimento non supervisionato. Ma, una volta impostati questi parametri, l'algoritmo funziona da solo, rendendolo molto più autodiretto rispetto agli algoritmi di apprendimento supervisionato. Per questo motivo, le persone a volte si riferiscono all'apprendimento per rinforzo come a una branca dell'apprendimento semisupervisionato, ma in verità è spesso riconosciuto come un tipo a sé stante di apprendimento automatico. Librerie Python per l'apprendimento per rinforzo 1. KerasRL KerasRL è unalibreria Python di Deep Reinforcement Learning . Implementa alcuni algoritmi RL all'avanguardia e si integra perfettamente con lalibreria di Deep Learning Keras . Inoltre, KerasRL funziona immediatamente con OpenAI Gym . Ciò significa che puoi valutare e giocare con diversi algoritmi abbastanza facilmente. Per installare KerasRL usa semplicemente un comando pip: pip install keras-rl Vediamo se KerasRL soddisfa i criteri: Numero di algoritmi SOTA RL implementati Ad oggi KerasRL ha implementato i seguenti algoritmi: Deep Q-Learning ( DQN ) e suoi miglioramenti ( Doppio e Duello ) Gradiente di policy deterministico profondo ( DDPG ) DQN continuo ( CDQN o NAF ) Metodo dell'entropia incrociata ( CEM ) SARSA profonda Come avrai notato, a KerasRL mancano due agenti importanti: metodi Actor-Critic e Proximal Policy Optimization (PPO).Docume.ntazione ufficiale, disponibilità di tutorial ed esempi. Il codice è facile da leggere ed è pieno di commenti, il che è abbastanza utile. Tuttavia, la documentazione sembra incompleta poiché manca la spiegazione dei parametri e dei tutorial. Inoltre, gli esempi pratici lasciano molto a desiderare. Codice leggibile e facile da personalizzare Molto facile. Tutto quello che devi fare è creare un nuovo agente seguendo l'esempio e quindi aggiungerlo a rl.agents . Numero di ambienti supportati KerasRL è stato creato per funzionare solo con OpenAI Gym . Pertanto è necessario modificare l'agente se si desidera utilizzare qualsiasi altro ambiente. Supporto per strumenti di registrazione e monitoraggio Il supporto degli strumenti di registrazione e monitoraggio non è implementato. Caratteristica dell'ambiente vettorizzato Include una funzione di ambiente vettorizzato. Aggiornamenti regolari La libreria sembra non essere più mantenuta in quanto gli ultimi aggiornamenti risalgono a più di un anno fa. Per riassumere, KerasRL ha una buona serie di implementazioni. Sfortunatamente, mancano punti preziosi come strumenti di visualizzazione, nuove architetture e aggiornamenti. Probabilmente dovresti usare un'altra libreria. 2. Pyqlearning Pyqlearning è una libreria Python per implementare RL. Si concentra su Q-Learning e Deep Q-Network multi-agente. Pyqlearning fornisce componenti per i progettisti, non per scatole nere all'avanguardia per gli utenti finali. Pertanto, questa libreria è difficile da usare. Puoi usarlo per progettare l'algoritmo di ricerca delle informazioni, ad esempio GameAI o web crawler. Per installare Pyqlearning è sufficiente utilizzare un comando pip: pip installa pyqlearning Vediamo se Pyqlearning soddisfa i criteri: Numero di algoritmi SOTA RL implementati Ad oggi Pyqlearning ha implementato i seguenti algoritmi: Deep Q-Learning ( DQN ) e suoi miglioramenti ( Epsilon Greedy e Boltzmann ) Come avrai notato, Pyqlearning ha un solo agente importante. La libreria lascia molto a desiderare. Documentazione ufficiale, disponibilità di tutorial ed esempi Pyqlearning ha un paio di esempi per vari compiti e due tutorial con Maze Solving e il gioco di evasione degli inseguimenti di Deep Q-Network . Puoi trovarli nella documentazione ufficiale . La documentazione sembra incompleta in quanto si concentra sulla matematica e non sulla descrizione e sull'utilizzo della libreria. Codice leggibile e facile da personalizzare Pyqlearning è una libreria open source. Il codice sorgente può essere trovato su Github . Il codice manca di commenti. Può essere un compito complicato personalizzarlo. Tuttavia, i tutorial potrebbero aiutare. Numero di ambienti supportati Poiché la libreria è agnostica, è relativamente facile aggiungerla a qualsiasi ambiente. Supporto per strumenti di registrazione e monitoraggio L'autore utilizza un semplice pacchetto di registrazione nei tutorial. Pyqlearning non supporta altri strumenti di registrazione e monitoraggio, ad esempio TensorBoard . Caratteristica dell'ambiente vettorizzato Pyqlearning non supporta la funzionalità dell'ambiente vettorizzato. Aggiornamenti regolari La biblioteca è mantenuta. L'ultimo aggiornamento è stato effettuato due mesi fa. Tuttavia, il processo di sviluppo sembra essere lento. Per riassumere, Pyqlearning lascia molto a desiderare. Non è una libreria che utilizzerai comunemente. Quindi, probabilmente dovresti usare qualcos'altro. 3. Tensorforce Tensorforce è una libreria Deep RL open source basata sul framework Tensorflow di Google. È semplice nel suo utilizzo e ha il potenziale per essere una delle migliori librerie di apprendimento per rinforzo . Tensorforce ha scelte di progettazione chiave che lo differenziano dalle altre librerie RL: Design modulare basato sui componenti: le implementazioni delle funzionalità, soprattutto, tendono ad essere il più generalmente applicabili e configurabili possibile. Separazione dell'algoritmo RL e dell'applicazione: gli algoritmi sono indipendenti dal tipo e dalla struttura degli input (stati/osservazioni) e degli output (azioni/decisioni), nonché dall'interazione con l'ambiente dell'applicazione. Per installare Tensorforce usa semplicemente un comando pip: pip install tensorforce Vediamo se Tensorforce soddisfa i criteri: Numero di algoritmi SOTA RL implementati Ad oggi, Tensorforce ha implementato il seguente set di algoritmi: Deep Q-Learning ( DQN ) e suoi miglioramenti ( Doppio e Duello ) Gradiente della politica vaniglia ( PG ) Gradiente di policy deterministico profondo ( DDPG ) DQN continuo ( CDQN o NAF ) Attore critico ( A2C e A3C ) Ottimizzazione della politica della regione di fiducia ( TRPO ) Ottimizzazione delle politiche prossimali ( PPO ) Come avrai notato, Tensorforce non ha implementato l' implementazione Soft Actor Critic ( SAC ). Oltre a questo è perfetto. Documentazione ufficiale, disponibilità di tutorial ed esempi È abbastanza facile iniziare a utilizzare Tensorforce grazie alla varietà di semplici esempi e tutorial. La documentazione ufficiale sembra completa e comoda da navigare. Codice leggibile e facile da personalizzare Tensorforce trae vantaggio dal suo design modulare. Ogni parte dell'architettura, ad esempio reti, modelli, corridori è distinta. Pertanto, puoi modificarli facilmente. Tuttavia, il codice manca di commenti e questo potrebbe essere un problema. Numero di ambienti supportati Tensorforce funziona con più ambienti, ad esempio OpenAI Gym , OpenAI Retro e DeepMind Lab . Ha anche documentazione per aiutarti a collegarti ad altri ambienti. Supporto per strumenti di registrazione e monitoraggio La libreria supporta TensorBoard e altri strumenti di registrazione/tracciamento. Caratteristica dell'ambiente vettorizzato Tensorforce supporta la funzionalità dell'ambiente vettorizzato. Aggiornamenti regolari Tensorforce viene aggiornato regolarmente. L'ultimo aggiornamento risale a poche settimane fa. Per riassumere, Tensorforce è un potente strumento RL. È aggiornato e contiene tutta la documentazione necessaria per iniziare a lavorarci. Qual è il futuro dell'apprendimento per rinforzo? Negli ultimi anni sono stati compiuti progressi significativi nell'area dell'apprendimento per rinforzo profondo. L'apprendimento per rinforzo profondo utilizza reti neurali profonde per modellare la funzione del valore (basata sul valore) o la politica dell'agente (basata sulla politica) o entrambi (critico dell'attore). Prima del successo diffuso delle reti neurali profonde, è stato necessario progettare funzionalità complesse per addestrare un algoritmo di apprendimento per rinforzo. Ciò significava una ridotta capacità di apprendimento, limitando l'ambito dell'apprendimento per rinforzo ad ambienti semplici. Con il deep learning, i modelli possono essere costruiti utilizzando milioni di pesi addestrabili, liberando l'utente dalla noiosa progettazione delle funzionalità. Le funzionalità rilevanti vengono generate automaticamente durante il processo di formazione, consentendo all'agente di apprendere le politiche ottimali in ambienti complessi. Tradizionalmente, l'apprendimento per rinforzo viene applicato a un'attività alla volta. Ogni attività viene appresa da un agente di apprendimento per rinforzo separato e questi agenti non condividono la conoscenza. Questo rende l'apprendimento di comportamenti complessi, come guidare un'auto, inefficiente e lento. I problemi che condividono una fonte di informazioni comune, hanno una struttura sottostante correlata e sono interdipendenti possono ottenere un enorme aumento delle prestazioni consentendo a più agenti di lavorare insieme. Più agenti possono condividere la stessa rappresentazione del sistema addestrandoli contemporaneamente, consentendo di sfruttare i miglioramenti nelle prestazioni di un agente da parte di un altro. A3C (Asynchronous Advantage Actor-Critic) è uno sviluppo entusiasmante in quest'area, in cui le attività correlate vengono apprese contemporaneamente da più agenti. Questo scenario di apprendimento multi-tasking sta avvicinando l'apprendimento per rinforzo all'AGI, dove un meta-agente impara a imparare.
- Scegliere l'algoritmo di clustering giusto per i tuoi dati
Applicare un algoritmo di clustering è molto più semplice di selezionare quello migliore. Ogni tipo offre vantaggi e svantaggi che devono essere considerati se stai cercando una struttura di cluster ordinata. In questo articolo ti spiegheremo come scegliere l'algoritmo di clustering giusto per i tuoi dati. Il clustering dei dati è un passaggio essenziale nella predisposizione di un modello di dati corretto e completo. Per completare un'analisi, il volume delle informazioni dovrebbe essere ordinato in base ai punti in comune. La domanda principale è quale parametro di comunanza fornisce i migliori risultati e cosa è implicato nella definizione di "migliore" Introduzione sulla scelta dell'algoritmo di clustering giusto per i tuoi dati Questo articolo dovrebbe essere utile per i data scientist alle prime armi o per gli esperti che desiderano rinfrescare la propria memoria sull'argomento. Include gli algoritmi di clustering più diffusi e la loro revisione approfondita. A seconda delle particolarità di ciascun metodo, vengono fornite le raccomandazioni che considerano la loro applicazione. Che cosa sono gli algoritmi di clustering? Gli algoritmi di clustering vengono utilizzati per raggruppare i dati in gruppi di elementi simili. I cluster sono utili perché consentono di trovare modelli e tendenze nei dati. Sono disponibili molti diversi algoritmi di clustering tra cui scegliere. Il miglior algoritmo di clustering da utilizzare dipenderà dal tuo set di dati specifico. Dipenderà anche da cosa stai cercando di ottenere con il tuo set di dati. Vantaggio degli algoritmi di clustering Gli algoritmi di clustering sono un ottimo modo per raggruppare punti dati simili in un set di dati. Un algoritmo di clustering è uno strumento matematico che fornisce un modo per raggruppare dati simili. Ciò è utile perché quando si raggruppano dati simili, è possibile trovare facilmente schemi nei dati. Puoi utilizzare algoritmi di clustering per fare molte cose, come trovare modelli nei dati, identificare valori anomali o trovare dati simili ai dati che hai. Gli algoritmi di clustering sono utilizzati in una varietà di campi, come la biologia e l'astronomia. Vengono utilizzati anche per trovare elementi simili in un set di dati. Ad esempio, un algoritmo di clustering può essere utilizzato per trovare articoli simili in un set di dati di abbigliamento per proporre unj nuovo acquisto al cliente. Gli algoritmi di clustering sono davvero utili e sono disponibili in una varietà di forme diverse, Come scegliere l'algoritmo di clustering giusto? Quattro algoritmi di base e come sceglierne uno A seconda dei modelli di clusterizzazione, si differenziano quattro classi comuni di algoritmi. Ci sono non meno di 100 algoritmi in generale, ma la loro popolarità è piuttosto moderata, così come il loro campo di applicazione. Come scegliere l'algoritmo di clustering giusto 1. Clustering basato sulla connettività La clusterizzazione, basata sul calcolo delle distanze tra gli oggetti dell'intero set di dati, è chiamata basata sulla connettività o gerarchica. A seconda della "direzione" dell'algoritmo, può unire o, inversamente, dividere l'array di informazioni: i nomi agglomerati e divisivi sono apparsi da questa esatta variazione. Il tipo più diffuso e ragionevole è quello agglomerato, dove si inizia inserendo il numero di punti dati, che poi vengono uniti in cluster sempre più grandi, fino al raggiungimento del limite. L'esempio più importante di clusterizzazione basata sulla connettività è la classificazione delle piante. L '"albero" del set di dati inizia con una specie particolare e termina con alcuni regni di piante, ciascuno costituito da ammassi ancora più piccoli (phyla, classi, ordini, ecc.) Dopo aver applicato uno degli algoritmi basati sulla connettività, ricevi un dendrogramma di dati, che ti presenta la struttura delle informazioni piuttosto che la sua distinta separazione sui cluster. Tale caratteristica può avere sia il vantaggio che il danno: la complessità dell'algoritmo può risultare eccessiva o semplicemente inapplicabile per set di dati con una gerarchia minima o nulla. Mostra anche scarse prestazioni: a causa dell'abbondanza di iterazioni, l'elaborazione completa richiederà una quantità di tempo irragionevole. Inoltre, non otterrai una struttura precisa usando l'algoritmo gerarchico. Allo stesso tempo, i dati in ingresso richiesti dal contatore si riducono al numero di punti dati, che non influenza sostanzialmente il risultato finale, o alla metrica di distanza preimpostata, che è anche grossolana e approssimativa. Come scegliere l'algoritmo di clustering giusto 2. Clustering basato su centroide Il clustering basato su centroide, dalla mia esperienza, è il modello più frequente grazie alla sua semplicità comparativa. Il modello ha lo scopo di classificare ogni oggetto del set di dati in un particolare cluster. Il numero di cluster ( k ) è scelto casualmente, che è probabilmente la più grande “debolezza” del metodo. Questo algoritmo k - mean è particolarmente popolare nell'apprendimento automatico grazie alla somiglianza con il metodo k-nearest neighbors (kNN). Il processo di calcolo consiste in più passaggi. In primo luogo, vengono scelti i dati in entrata, che è il numero approssimativo dei cluster in cui dovrebbe essere suddiviso il set di dati. I centri dei cluster dovrebbero essere situati il più lontano possibile l'uno dall'altro, ciò aumenterà l'accuratezza del risultato. In secondo luogo, l'algoritmo trova le distanze tra ogni oggetto del set di dati e ogni cluster. La coordinata più piccola (se stiamo parlando di rappresentazione grafica) determina in quale cluster viene spostato l'oggetto. Successivamente, il centro del cluster viene ricalcolato in base alla media delle coordinate di tutti gli oggetti. Il primo passaggio dell'algoritmo si ripete, ma con un nuovo centro del cluster che è stato ricalcolato. Tali iterazioni continuano a meno che non vengano raggiunte determinate condizioni. Ad esempio, l'algoritmo potrebbe terminare quando il centro del cluster non si è spostato o si è spostato in modo insignificante rispetto all'iterazione precedente. Nonostante la semplicità, sia matematica che di codifica, k-means ha alcuni inconvenienti che non mi consentono di usarlo ovunque possibile. Quello include: un bordo negligente di ogni cluster, perché le priorità sono fissate al centro del cluster, non ai suoi confini; l'impossibilità di creare una struttura di un set di dati con oggetti che possono essere classificati in più cluster in egual misura; la necessità di indovinare il numero k ottimale o la necessità di eseguire calcoli preliminari per specificare questo indicatore. Esempio Python: Come scegliere l'algoritmo di clustering giusto 3. Clustering di massimizzazione delle aspettative L'algoritmo di massimizzazione delle aspettative , allo stesso tempo, consente di evitare tali complicazioni fornendo un livello di accuratezza ancora più elevato. In poche parole, calcola la probabilità di relazione di ciascun punto del set di dati con tutti i cluster che abbiamo specificato. Il principale "strumento" utilizzato per questo modello di clusterizzazione è il Gaussian Mixture Models (GMM) , il presupposto che i punti del set di dati generalmente seguano la distribuzione gaussiana . L'algoritmo k-mean è, fondamentalmente, una versione semplificata del principio EM. Entrambi richiedono l'immissione manuale del numero dei cluster e questa è la principale complessità dei metodi. A parte questo, i principi del calcolo (o per GMM o k-mean) sono semplici: l'intervallo approssimativo del cluster viene specificato gradualmente ad ogni nuova iterazione. A differenza dei modelli basati sul centroide, l'algoritmo EM consente di classificare i punti per due o più cluster: ti presenta semplicemente la possibilità di ciascun evento, utilizzando il quale puoi condurre ulteriori analisi. Inoltre, i bordi di ogni ammasso compongono ellissoidi di misure diverse a differenza delle k-medie, dove l'ammasso è rappresentato visivamente come un cerchio. Tuttavia, l'algoritmo semplicemente non funzionerebbe per set di dati in cui gli oggetti non seguono la distribuzione gaussiana. Questo è il principale svantaggio del metodo: è più applicabile a problemi teorici piuttosto che alle misurazioni o osservazioni effettive. Come scegliere l'algoritmo di clustering giusto 4. Clustering basato sulla densità Infine, arriva il clustering basato sulla densità , il preferito non ufficiale dei cuori degli scienziati dei dati . Il nome comprende il punto principale del modello: per dividere il set di dati in cluster, il contatore immette il parametro ε, la distanza di "quartiere". Se l'oggetto si trova all'interno del cerchio (sfera) del raggio ε, quindi si riferisce all'ammasso. Passo dopo passo, l'algoritmo DBSCAN (Density-Based Spatial Clustering of Applications with Noise) controlla ogni oggetto, cambia il suo stato in "visualizzato", lo classifica nel cluster OR noise, fino a quando l'intero set di dati non viene elaborato. I cluster determinati con DBSCAN possono avere forme arbitrarie, quindi sono estremamente accurati. Inoltre, l'algoritmo non ti fa calcolare il numero di cluster: viene determinato automaticamente. Tuttavia, anche un capolavoro come DBSCAN ha uno svantaggio. Se il set di dati è costituito da cluster a densità variabile, il metodo mostra scarsi risultati. Potrebbe anche non essere una tua scelta se il posizionamento degli oggetti è troppo vicino e il parametro ε non può essere stimato facilmente. Conclusione sulla scelta l'algoritmo di clustering giusto per i tuoi dati Riassumendo, non esiste un algoritmo scelto male: alcuni di essi sono semplicemente più adatti per le particolari strutture del set di dati. Per scegliere sempre l'algoritmo migliore (leggi - più adatto), è necessario avere una comprensione completa dei loro vantaggi, svantaggi e peculiarità. Alcuni algoritmi potrebbero essere esclusi fin dall'inizio se, ad esempio, non corrispondono alle specifiche del set di dati. Per evitare lavori strani, puoi dedicare un po' di tempo a memorizzare le informazioni invece di scegliere il percorso per tentativi ed errori e imparare dai tuoi stessi errori. Ti auguriamo di scegliere sempre il miglior algoritmo all'inizio.
- La scienza dei dati
La scienza dei dati è oggi una parte essenziale di molti settori, date le enormi quantità di dati che vengono prodotti, ed è uno degli argomenti più dibattuti. La sua popolarità è cresciuta nel corso degli anni e le aziende hanno iniziato a implementare tecniche della scienza dei dati per far crescere il proprio business e aumentare la soddisfazione dei clienti. Cos'è la scienza dei dati ? La scienza dei dati è il campo dell'applicazione di tecniche di analisi avanzate e principi scientifici per estrarre informazioni preziose dai dati per il processo decisionale aziendale, la pianificazione strategica e altri usi. È sempre più fondamentale per le aziende: le informazioni generate dalla scienza dei dati aiutano le organizzazioni ad aumentare l'efficienza operativa, identificare nuove opportunità di business e migliorare i programmi di marketing e vendita, tra gli altri vantaggi. In definitiva, possono portare a vantaggi competitivi rispetto ai rivali in affari. Da che discipline è composta la scienza dei dati ? La scienza dei dati incorpora varie discipline, ad esempio ingegneria dei dati, preparazione dei dati, data mining , analisi predittiva, apprendimento automatico e visualizzazione dei dati, nonché statistica, matematica e programmazione software. Viene eseguito principalmente da esperti di dati , sebbene possano essere coinvolti anche analisti di dati di livello inferiore. Inoltre, molte organizzazioni ora si affidano in parte ai Team di data scientist , un gruppo che può includere professionisti della business intelligence (BI), analisti aziendali, utenti aziendali esperti di dati, ingegneri dei dati e altri lavoratori che non hanno un background formale di scienza dei dati ma sono esperti nel dominio di analisi. Questa guida completa alla scienza dei dati spiega approfonditamente cosa studia questa scienza, perché è importante per le organizzazioni, come funziona, i vantaggi aziendali che offre e le sfide che pone. Troverai anche una panoramica delle applicazioni, degli strumenti e delle tecniche di data science, oltre a informazioni su ciò che fanno i data scientist e sulle competenze di cui hanno bisogno. In tutta la guida sono presenti collegamenti ipertestuali ad articoli TechTarget correlati che approfondiscono gli argomenti trattati qui e offrono informazioni dettagliate e consigli di esperti sulle iniziative di scienza dei dati. Perché la scienza dei dati è importante? La scienza dei dati gioca un ruolo importante praticamente in tutti gli aspetti delle operazioni e delle strategie aziendali. Ad esempio, fornisce informazioni sui clienti che aiutano le aziende a creare campagne di marketing più efficaci e pubblicità mirata per aumentare le vendite dei prodotti. Aiuta a gestire i rischi finanziari, rilevare transazioni fraudolente e prevenire guasti alle apparecchiature negli impianti di produzione e in altri contesti industriali. Aiuta a bloccare gli attacchi informatici e altre minacce alla sicurezza nei sistemi IT. Da un punto di vista operativo, le iniziative di data science possono ottimizzare la gestione delle catene di approvvigionamento, delle scorte di prodotti, delle reti di distribuzione e del servizio clienti. A un livello più fondamentale, indicano la strada verso una maggiore efficienza e costi ridotti. La scienza dei dati consente inoltre alle aziende di creare piani aziendali e strategie basati su un'analisi informata del comportamento dei clienti, delle tendenze del mercato e della concorrenza. Senza di essa, le aziende potrebbero perdere opportunità e prendere decisioni errate. La scienza dei dati è vitale anche in aree al di là delle normali operazioni aziendali. Nel settore sanitario, i suoi usi includono la diagnosi di condizioni mediche, l'analisi delle immagini, la pianificazione del trattamento e la ricerca medica. Le istituzioni accademiche utilizzano la scienza dei dati per monitorare le prestazioni degli studenti e migliorare il loro marketing per i potenziali studenti. Le squadre sportive analizzano le prestazioni dei giocatori e pianificano le strategie di gioco tramite la scienza dei dati. Anche le agenzie governative e le organizzazioni di politica pubblica sono grandi utenti. Come hai potuto notare la scienza dei dati non è una scienza a se stante , ma viene applicata in qualsiasi capo Processo e ciclo di vita della scienza dei dati : I progetti di scienza dei dati prevedono una serie di fasi di raccolta e analisi dei dati. In un articolo che descrive il processo di data science , Donald Farmer, principale della società di consulenza analitica TreeHive Strategy, ha delineato questi sei passaggi principali: Identificare un'ipotesi relativa al dominio da verificare. Raccogli i dati e preparali per l'analisi. Sperimenta diversi modelli analitici. Scegli il modello migliore ed eseguilo sui dati. Presentare i risultati ai dirigenti aziendali. Distribuire il modello per l'uso continuo con dati aggiornati. Farmer ha affermato che il processo rende la scienza dei dati uno sforzo scientifico. Tuttavia, ha scritto che nelle imprese aziendali, il lavoro di scienza dei dati "sarà sempre più utilmente focalizzato su semplici realtà commerciali" che possono avvantaggiare l'azienda. Di conseguenza, ha aggiunto, i data scientist dovrebbero collaborare con le parti interessate del business su progetti durante tutto il ciclo di vita dell'analisi. Il processo di data science include questi sei passaggi. Vantaggi della scienza dei dati In un webinar dell'ottobre 2020 organizzato dall'Institute for Applied Computational Science dell'Università di Harvard, Jessica Stauth, amministratore delegato per la scienza dei dati nell'unità Fidelity Labs di Fidelity Investments, ha affermato che : Esiste "una relazione molto chiara" tra il lavoro di scienza dei dati e i risultati aziendali. Ha citato potenziali vantaggi aziendali che includono ROI più elevato, crescita delle vendite, operazioni più efficienti, time to market più rapido e maggiore coinvolgimento e soddisfazione dei clienti. In generale, uno dei maggiori vantaggi della scienza dei dati è potenziare e facilitare un migliore processo decisionale. Le organizzazioni che vi investono possono tenere conto di prove quantificabili basate sui dati nelle loro decisioni aziendali. Idealmente, tali decisioni basate sui dati porteranno a prestazioni aziendali migliori, risparmi sui costi e processi e flussi di lavoro più fluidi. I vantaggi aziendali specifici della scienza dei dati variano a seconda dell'azienda e del settore. Nelle organizzazioni rivolte ai clienti, ad esempio, la scienza dei dati aiuta a identificare e perfezionare il pubblico di destinazione. I reparti marketing e vendite possono estrarre i dati dei clienti per migliorare i tassi di conversione e creare campagne di marketing personalizzate e offerte promozionali che generano vendite più elevate. In altri casi, i vantaggi includono una riduzione delle frodi, una gestione del rischio più efficace , un commercio finanziario più redditizio, un aumento dei tempi di attività della produzione, migliori prestazioni della catena di approvvigionamento , protezioni della sicurezza informatica più forti e migliori risultati per i pazienti. La scienza dei dati consente anche l'analisi in tempo reale dei dati man mano che vengono generati. Applicazioni della scienza dei dati e casi d'uso Le applicazioni comuni in cui i data scientist si impegnano includono la modellazione predittiva , il riconoscimento di modelli, il rilevamento di anomalie, la classificazione, la categorizzazione e l'analisi del sentimento, nonché lo sviluppo di tecnologie come motori di raccomandazione, sistemi di personalizzazione e strumenti di intelligenza artificiale (AI) come chatbot e veicoli autonomi. Tali applicazioni guidano un'ampia varietà di casi d'uso nelle organizzazioni, inclusi i seguenti: analisi dei clienti intercettazione di una frode gestione del rischio commercio di azioni pubblicità mirata personalizzazione del sito web assistenza clienti manutenzione predittiva logistica e gestione della filiera riconoscimento delle immagini riconoscimento vocale elaborazione del linguaggio naturale sicurezza informatica diagnosi medica Sfide nella scienza dei dati La scienza dei dati è intrinsecamente impegnativa a causa della natura avanzata dell'analisi che implica. Le grandi quantità di dati che vengono generalmente analizzate aumentano la complessità e aumentano il tempo necessario per completare i progetti. Inoltre, i data scientist lavorano spesso con enormi quantità di big data che possono contenere una varietà di dati strutturati, non strutturati e semistrutturati, complicando ulteriormente il processo di analisi. Questi ostacoli sono tra le sfide affrontate dai team di data science. Una delle maggiori sfide è eliminare le distorsioni nei set di dati e nelle applicazioni di analisi. Ciò include problemi con i dati sottostanti stessi e quelli che i data scientist integrano inconsciamente in algoritmi e modelli predittivi. Tali pregiudizi possono distorcere i risultati dell'analisi se non vengono identificati e affrontati, creando risultati errati che portano a decisioni aziendali fuorvianti. Peggio ancora, possono avere un impatto dannoso su gruppi di persone, ad esempio nel caso di pregiudizi razziali nei sistemi di intelligenza artificiale . Trovare i dati giusti da analizzare è un'altra sfida. In un rapporto pubblicato a gennaio 2020, l'analista di Gartner Afraz Jaffri e quattro dei suoi colleghi della società di consulenza hanno anche citato la scelta degli strumenti giusti, la gestione delle implementazioni di modelli analitici, la quantificazione del valore aziendale e il mantenimento dei modelli come ostacoli significativi. Cosa fanno i data scientist e di quali competenze hanno bisogno? Il ruolo principale dei data scientist è analizzare i dati, spesso in grandi quantità, nel tentativo di trovare informazioni utili che possono essere condivise con dirigenti aziendali, dirigenti aziendali e lavoratori, nonché funzionari governativi, medici, ricercatori e molti altri. I data scientist creano anche strumenti e tecnologie di intelligenza artificiale per l'implementazione in varie applicazioni. In entrambi i casi, raccolgono dati, sviluppano modelli analitici e quindi addestrano, testano ed eseguono i modelli rispetto ai dati. Di conseguenza, i data scientist devono possedere una combinazione di preparazione dei dati , data mining, modellazione predittiva, apprendimento automatico, analisi statistica e abilità matematiche, nonché esperienza con algoritmi e codifica, ad esempio abilità di programmazione in linguaggi come Python, R e SQL. Molti hanno anche il compito di creare visualizzazioni di dati, dashboard e report per illustrare i risultati dell'analisi. I data scientist hanno una varietà di skill professionali e personali. Oltre a quelle competenze tecniche, i data scientist richiedono una serie di soft-skill , tra cui conoscenza aziendale, curiosità e pensiero critico. Un'altra abilità importante è la capacità di presentare informazioni dettagliate sui dati e spiegarne il significato in un modo facilmente comprensibile per gli utenti aziendali. Team della scienza dei dati Molte organizzazioni hanno creato un team separato, o più team, per gestire le attività di data science. Come spiega la scrittrice di tecnologia Mary K. Pratt in un articolo su come creare un team di data science , in un team efficace c'è di più degli stessi data scientist. Può anche includere le seguenti posizioni: Ingegnere dei dati. Le responsabilità includono la creazione di pipeline di dati e l'assistenza nella preparazione dei dati e nella distribuzione dei modelli, lavorando a stretto contatto con i data scientist . Analista dati. Questa è una posizione di livello inferiore per i professionisti dell'analisi che non hanno il livello di esperienza o le competenze avanzate dei data scientist. Ingegnere di apprendimento automatico. Questo lavoro orientato alla programmazione prevede lo sviluppo dei modelli di apprendimento automatico necessari per le applicazioni di scienza dei dati. Sviluppatore di visualizzazione dati. Questa persona collabora con i data scientist per creare visualizzazioni e dashboard utilizzati per presentare i risultati di analisi agli utenti aziendali. Traduttore di dati. Chiamato anche traduttore di analisi, è un ruolo emergente che funge da collegamento con le unità aziendali e aiuta a pianificare progetti e comunicare i risultati. Architetto dei dati. Un architetto di dati progetta e supervisiona l'implementazione dei sistemi sottostanti utilizzati per archiviare e gestire i dati per usi analitici. Il team è comunemente gestito da un direttore della scienza dei dati, un responsabile della scienza dei dati o uno scienziato dei dati principale, che può riferire al chief data officer, al chief analytics officer o al vice president of analytics; chief data scientist è un'altra posizione dirigenziale emersa in alcune organizzazioni. Alcuni team di data science sono centralizzati a livello aziendale, mentre altri sono decentralizzati in singole business unit o hanno una struttura ibrida che combina questi due approcci. Business intelligence vs scienza dei dati Come la scienza dei dati, la business intelligence di base e il reporting mirano a guidare il processo decisionale operativo e la pianificazione strategica. Ma la BI si concentra principalmente sull'analisi descrittiva: cosa è successo o sta accadendo ora a cui un'organizzazione dovrebbe rispondere o affrontare? Gli analisti BI e gli utenti BI self-service lavorano principalmente con dati di transazione strutturati estratti dai sistemi operativi, ripuliti e trasformati per renderli coerenti e caricati in un data warehouse o data mart per l'analisi. Il monitoraggio delle prestazioni, dei processi e delle tendenze aziendali è un caso d'uso comune della BI. La scienza dei dati coinvolge applicazioni di analisi più avanzate. Oltre all'analisi descrittiva, comprende l'analisi predittiva che prevede comportamenti ed eventi futuri, nonché l'analisi prescrittiva, che cerca di determinare la migliore linea d'azione da intraprendere in merito al problema analizzato. I tipi di dati non strutturati o semistrutturati, ad esempio file di registro, dati dei sensori e testo, sono comuni nelle applicazioni di data science, insieme ai dati strutturati. Inoltre, i data scientist spesso desiderano accedere ai dati grezzi prima che siano stati ripuliti e consolidati in modo da poter analizzare l'intero set di dati o filtrarlo e prepararlo per usi di analisi specifici. Di conseguenza, i dati grezzi possono essere archiviati in un data lake basato su Hadoop, un servizio di archiviazione di oggetti cloud, un database NoSQL o un'altra piattaforma di big data. Tecnologie, tecniche e metodi della scienza dei dati La scienza dei dati si basa molto sugli algoritmi di apprendimento automatico . L'apprendimento automatico è una forma di analisi avanzata in cui gli algoritmi apprendono i set di dati e quindi cercano modelli, anomalie o approfondimenti in essi. Utilizza una combinazione di metodi di apprendimento supervisionato, non supervisionato, semisupervisionato e di rinforzo, con algoritmi che ottengono diversi livelli di formazione e supervisione da parte dei data scientist. C'è anche il deep learning , una sottobranca più avanzata dell'apprendimento automatico che utilizza principalmente reti neurali artificiali per analizzare grandi insiemi di dati senza etichetta. I modelli predittivi sono un'altra tecnologia di base della scienza dei dati. I data scientist li creano eseguendo algoritmi di machine learning, data mining o statistici su set di dati per prevedere scenari aziendali e probabili risultati o comportamenti. Nella modellazione predittiva e in altre applicazioni di analisi avanzate, il campionamento dei dati viene spesso eseguito per analizzare un sottoinsieme rappresentativo di dati, una tecnica di data mining progettata per rendere il processo di analisi più gestibile e dispendioso in termini di tempo. Le tecniche statistiche e analitiche comuni utilizzate nei progetti di scienza dei dati includono quanto segue: classificazione, che separa gli elementi di un set di dati in diverse categorie; regressione, che traccia i valori ottimali delle relative variabili di dati in una linea o in un piano; e clustering, che raggruppa i punti dati con un'affinità o attributi condivisi. I tre tipi di tecniche statistiche e analitiche più utilizzate dai data scientist Strumenti e piattaforme per la scienza dei dati : Sono disponibili numerosi strumenti che i data scientist possono utilizzare nel processo di analisi, comprese opzioni commerciali e open source: piattaforme dati e motori di analisi, come database Spark, Hadoop e NoSQL; linguaggi di programmazione, come Python, R, Julia, Scala e SQL; strumenti di analisi statistica come SAS e IBM SPSS; piattaforme e librerie di machine learning, tra cui TensorFlow, Weka, Scikit-learn, Keras e PyTorch; Jupyter Notebook, un'applicazione web per la condivisione di documenti con codice, equazioni e altre informazioni; e strumenti e librerie di visualizzazione dei dati, come Tableau, D3.js e Matplotlib. Inoltre, i fornitori di software offrono un insieme diversificato di piattaforme di data science con caratteristiche e funzionalità diverse. Ciò include piattaforme di analisi per data scientist esperti, piattaforme di machine learning automatizzate che possono essere utilizzate anche dai citizen data scientist e hub di flusso di lavoro e collaborazione per i team di data science. L'elenco dei fornitori include Alteryx, AWS, Databricks, Dataiku, DataRobot, Domino Data Lab, Google, H2O.ai, IBM, Knime, MathWorks, Microsoft, RapidMiner, SAS Institute, Tibco Software e altri. Carriere nella scienza dei dati Con l'aumento della quantità di dati generati e raccolti dalle aziende, aumenta anche il loro bisogno di scienziati dei dati. Ciò ha suscitato una forte domanda di lavoratori con esperienza o formazione nella scienza dei dati, rendendo difficile per alcune aziende occupare i posti di lavoro disponibili. In un sondaggio condotto nel 2020 dalla sussidiaria Kaggle di Google, che gestisce una community online per data scientist, il 51% dei 2.675 intervistati impiegati come data scientist ha dichiarato di avere un master di qualche tipo, mentre il 24% aveva una laurea e il 17% aveva un dottorato. Molte università ora offrono corsi di laurea e di laurea in scienza dei dati, che possono essere un percorso diretto verso il lavoro . Un percorso di carriera alternativo prevede che le persone che lavorano in altri ruoli vengano riqualificate come data scientist, un'opzione popolare per le organizzazioni che hanno difficoltà a trovare quelle esperte. Oltre ai programmi accademici, i potenziali data scientist possono prendere parte a bootcamp di scienza dei dati e corsi online su siti Web didattici come Coursera e Udemy. Quanto si guadagna nella scienza dei dati ? A dicembre 2021, il sito di ricerca di lavoro e recensioni aziendali di Glassdoor elencava uno stipendio base medio di $ 113.000 per i data scientist negli Stati Uniti, con un intervallo compreso tra $ 83.000 e $ 154.000; lo stipendio medio per un data scientist senior era di $ 134.000. Sul sito Indeed job, gli stipendi medi erano di $ 123.000 per un data scientist e $ 153.000 per un data scientist senior. In che modo le industrie si affidano alla scienza dei dati Prima di diventare essi stessi fornitori di tecnologia, Google e Amazon sono stati i primi utenti della scienza dei dati e dell'analisi dei big data per applicazioni interne, insieme ad altre società di Internet e di e-commerce come Facebook, Yahoo ed eBay. Ora, la scienza dei dati è diffusa in organizzazioni di ogni tipo. Ecco alcuni esempi di come viene utilizzato in diversi settori: Divertimento. La scienza dei dati consente ai servizi di streaming di monitorare e analizzare ciò che gli utenti guardano, il che aiuta a determinare i nuovi programmi TV e film che producono. Gli algoritmi basati sui dati vengono utilizzati anche per creare consigli personalizzati basati sulla cronologia di visualizzazione di un utente. Servizi finanziari. Le banche e le società di carte di credito estraggono e analizzano i dati per rilevare transazioni fraudolente, gestire i rischi finanziari su prestiti e linee di credito e valutare i portafogli dei clienti per identificare opportunità di upselling. Assistenza sanitaria. Gli ospedali e altri fornitori di servizi sanitari utilizzano modelli di apprendimento automatico e componenti aggiuntivi per la scienza dei dati per automatizzare l'analisi dei raggi X e aiutare i medici nella diagnosi delle malattie e nella pianificazione dei trattamenti in base ai precedenti esiti dei pazienti. Produzione. L'uso della scienza dei dati presso i produttori include l'ottimizzazione della gestione e della distribuzione della catena di approvvigionamento, oltre alla manutenzione predittiva per rilevare potenziali guasti alle apparecchiature negli impianti prima che si verifichino. Al dettaglio. I rivenditori analizzano il comportamento dei clienti e i modelli di acquisto per ottenere consigli personalizzati sui prodotti e pubblicità, marketing e promozioni mirate. La scienza dei dati li aiuta anche a gestire gli inventari dei prodotti e le loro catene di approvvigionamento per mantenere gli articoli in magazzino. Trasporto. Le società di consegna, i corrieri e i fornitori di servizi logistici utilizzano la scienza dei dati per ottimizzare i percorsi e gli orari di consegna, nonché le migliori modalità di trasporto per le spedizioni. Viaggiare. La scienza dei dati aiuta le compagnie aeree nella pianificazione dei voli per ottimizzare le rotte, la programmazione dell'equipaggio e il carico dei passeggeri. Gli algoritmi determinano anche prezzi variabili per voli e camere d'albergo. Altri usi della scienza dei dati, in aree come la sicurezza informatica, il servizio clienti e la gestione dei processi aziendali, sono comuni in diversi settori. Un esempio di quest'ultimo è l'assistenza nel reclutamento dei dipendenti e nell'acquisizione di talenti : Google Analytics può identificare le caratteristiche comuni dei migliori risultati, misurare l'efficacia degli annunci di lavoro e fornire altre informazioni per aiutare nel processo di assunzione. Queste sono sei applicazioni comuni per i data scientist. Storia della scienza dei dati In un articolo pubblicato nel 1962, lo statistico americano John W. Tukey scrisse che l'analisi dei dati "è intrinsecamente una scienza empirica". Quattro anni dopo, Peter Naur, un pioniere della programmazione software danese, propose la datalogy - "la scienza dei dati e dei processi di dati" - come alternativa all'informatica . In seguito ha usato il termine scienza dei dati nel suo libro del 1974, Concise Survey of Computer Methods , descrivendolo come "la scienza della gestione dei dati" - anche se sempre nel contesto dell'informatica, non dell'analisi. Nel 1996, la Federazione internazionale delle società di classificazione ha incluso la scienza dei dati nel nome della conferenza che ha tenuto quell'anno. In una presentazione all'evento, lo statistico giapponese Chikio Hayashi ha affermato che la scienza dei dati comprende tre fasi: "progettazione dei dati, raccolta di dati e analisi sui dati". Un anno dopo, CF Jeff Wu, un professore universitario statunitense nato a Taiwan, propose che le statistiche venissero rinominate data science e che gli statistici fossero chiamati data scientist L'informatico americano William S. Cleveland ha delineato la scienza dei dati come una disciplina analitica completa in un articolo intitolato "Data Science: An Action Plan for Expanding the Technical Areas of Statistics", pubblicato nel 2001 sull'International Statistical Review. Nei prossimi due anni sono state lanciate due riviste di ricerca incentrate sulla scienza dei dati. Il primo utilizzo di data scientist come titolo professionale è attribuito a DJ Patil e Jeff Hammerbacher, che hanno deciso insieme di adottarlo nel 2008 mentre lavoravano rispettivamente presso LinkedIn e Facebook. Nel 2012, un articolo della Harvard Business Review scritto insieme a Patil e all'accademico americano Thomas Davenport ha definito il data scientist "il lavoro più sexy del 21 ° secolo". Da allora, la scienza dei dati ha continuato a crescere in importanza, alimentata in parte dal maggiore utilizzo dell'IA e dell'apprendimento automatico nelle organizzazioni. Futuro della scienza dei dati Poiché la scienza dei dati diventa ancora più diffusa nelle organizzazioni, ci si aspetta che i citizen data scientist assumano un ruolo più importante nel processo di analisi. Nel suo rapporto Magic Quadrant del 2022 sulle piattaforme di data science e machine learning, Gartner ha affermato che la necessità di supportare un'ampia gamma di utenti di data science è "sempre più la norma". Un probabile risultato è un maggiore utilizzo dell'apprendimento automatico automatizzato, anche da parte di esperti di dati che cercano di semplificare e accelerare il proprio lavoro. Gartner ha anche citato l'emergere delle operazioni di apprendimento automatico (MLOPs), un concetto che adatta le pratiche DevOps dallo sviluppo del software nel tentativo di gestire meglio lo sviluppo, l'implementazione e la manutenzione dei modelli di apprendimento automatico. I metodi e gli strumenti di MLOps mirano a creare flussi di lavoro standardizzati in modo che i modelli possano essere programmati, costruiti e messi in produzione in modo più efficiente. Altre tendenze che influenzeranno il lavoro dei data scientist in futuro includono la crescente spinta per un'IA spiegabile , che fornisce informazioni per aiutare le persone a capire come funzionano l'IA e i modelli di apprendimento automatico e quanto fidarsi delle loro scoperte nel prendere decisioni, e un'attenzione correlata su principi di IA responsabile progettati per garantire che le tecnologie di IA siano eque, imparziali e trasparenti.
- Hosting gratis per progetti di machine learning
Scopriamo la piattaforme di hosting gratuite e facili da implementare per i tuoi progetti di machine learning. Introduzione ai migliori hosting gratis per progetti di machine learning Dopo aver lavorato al progetto di apprendimento automatico, è il momento di mostrare le prestazioni del tuo modello. Puoi creare un'applicazione front-end o utilizzare l'API REST. Con l'introduzione di Streamlit, Gradio e FAST API, la creazione di applicazioni front-end è diventata semplice. Questi framework Web richiedono alcune righe di codice per creare un'interfaccia utente interattiva. Condividere il tuo lavoro con il pubblico ti aiuta a creare un solido portfolio di data science. Aiuta anche le persone non tecniche a capire il tuo progetto. Quindi, dopo aver creato l'app Web, è il momento di distribuire l'app sul server cloud. In questo blog impareremo le cinque migliori piattaforme di hosting gratuite per le demo di machine learning. Condividerò la mia esperienza su ciascuna piattaforma e spiegherò perché sono speciali. Hosting gratis per progetti di machine learning 1. Hugging Face Spaces è diventato una nuova rivoluzione nella comunità di machine learning. Uso questa piattaforma per distribuire quasi tutte le demo di machine learning. Ha un'opzione facile da implementare utilizzando Git e fornisce soluzioni adatte ai principianti per problemi relativi all'ambiente e ai pacchetti Python. Spaces consente di distribuire applicazioni Web basate su Streamlit, Gradio e HTML. È veloce e affidabile con tempi di attività del server più lunghi. Non devi nemmeno caricare i modelli o i dati. Fornisce una perfetta integrazione con il set di dati e i modelli Hugging Face. Inoltre, Gradio ci consente di salvare e aggiornare un set di dati contrassegnato utilizzando un callback, che è una funzionalità piuttosto interessante. Hai visto quanto è semplice distribuire un modello ? Da non credere... Gli spazi sono piattaforme di condivisione di demo di machine learning guidate dalla community. Puoi trovare applicazioni Web su computer vision, audio, elaborazione del linguaggio naturale, tabulari e persino semplici dashboard. Puoi mantenere la tua applicazione privata o condividerla con il pubblico. La parte migliore della piattaforma è che ti offre così tante funzionalità senza alcun costo. Hugging Face sta davvero democratizzando l'apprendimento automatico. Hosting gratis per progetti di machine learning 2. Streamlit Cloud Streamlit Cloud ti consente di distribuire gratuitamente un'applicazione Streamlit pubblica privata e illimitata. La piattaforma offre un'opzione di distribuzione con un clic utilizzando l'integrazione di GitHub. In breve, spingerai il tuo codice nel repository GitHub e il cloud Streamlit rileverà automaticamente le modifiche e ricostruirà il server. Oltre a questo, puoi goderti l'integrazione sicura con le origini dati, l'autenticazione, la collaborazione sul progetto Streamlit e fino a 1 GB di spazio di archiviazione. Adoro Streamlit Cloud perché è realizzato esclusivamente per il framework Web open source . Con ogni nuova versione, la piattaforma sta migliorando in termini di velocità, tempo di attività e accessibilità. È adatto ai principianti e offre un'implementazione senza problemi. Tutti i nostri servizi web sono in hosting su Streamlit , clicca qui per provarli . Hosting gratis per progetti di machine learning 3. Heroku Heroku è una piattaforma cloud per la distribuzione di tutti i tipi di applicazioni web. Puoi iniziare in piccolo e poi ridimensionare il progetto con il tempo. Heroku supporta i più diffusi linguaggi di programmazione, database e framework web. Inoltre, puoi trovare tantissime integrazioni per registrazione, notifiche e-mail, test, dashboard, elaborazione delle immagini e DevOps. La mia prima esperienza con il servizio di hosting è stata con Heroku e trovo abbastanza facile modificare e distribuire la modifica sul server. Puoi distribuire la tua app utilizzando l'integrazione di GitHub, Heroku CLI e Git Remote. Ho smesso di usarlo a causa dei suoi limiti di archiviazione, ma lo considero ancora una delle migliori piattaforme di hosting per applicazioni dati. Facile da usare e integrazioni multiple ne fanno le mie prime tre piattaforme di riferimento per gli sviluppi web. Hosting gratis per progetti di machine learning 4. Deta Deta è la soluzione migliore per i microservizi. Puoi distribuire API REST o applicazioni Node.JS con spazio di archiviazione e database gratuiti. Deta ti offre il suo sapore di database SQL e un servizio di archiviazione di grandi dimensioni. Oltre a ciò, puoi anche pianificare esecuzioni, domini personalizzati e aggiungere chiavi API. Alla mia prima esperienza con Deta, ero totalmente innamorato della semplicità e delle potenti funzionalità fornite da Deta CLI e server. Mi ci sono voluti 5 minuti per comprendere i documenti, installare la CLI e distribuire la mia applicazione di machine learning. Se desideri creare il tuo microservizio di machine learning e avviare la tua azienda, Deta è il punto di partenza migliore. Hosting gratis per progetti di machine learning 5. Replit Replit è un ambiente di sviluppo integrato nel cloud (IDE) che fornisce servizi di elaborazione, archiviazione e hosting gratuiti per tutti i tipi di progetti. È una piattaforma guidata dalla comunità in cui le persone (per lo più studenti) condividono i loro progetti relativi a giochi, progettazione Web, creazione di microservizi e persino la creazione di un nuovo framework. In che modo ci aiuta a creare applicazioni di machine learning? In ogni progetto, puoi eseguire un server temporaneo e ospitare la tua applicazione con un URL pubblico. Ad esempio, crea un'applicazione di apprendimento automatico FastAPI e, quando premi il pulsante Esegui, avvierà automaticamente un server Web con un URL che puoi condividere. Puoi mantenere il server acceso usando ping hack o acquistando la versione Pro. Se sei un principiante di programmazione e vuoi entrare nel mondo dell'apprendimento automatico, allora inizia con Replit. Quindi ricapitolando Migliori Hosting gratis per progetti di machine learning : Spaces di HuggingFace ( velocità, semplicità estrema e limiti abbondanti ) Streamlit ( facilità d'uso , nessun limite di applicazioni pubbliche ) Heroku ( ottimo hosting gratis , meno semplice dei precedenti ) Migliore Hosting gratis per API di machine learning : Deta ( non adattissimo a principianti , ma molto potente ) Migliore Hosting gratis per principianti di machine learning : Replit ( ambiente molto semplice adatto a semplici progetti ) Conclusione sugli hosting gratis per progetti di machine learning In conclusione, abbiamo appena visto cinque piattaforme gratuite per la distribuzione di applicazioni di machine learning. Ogni piattaforma ha i suoi vantaggi e svantaggi. La scelta va fatta in base ad alcuni fattori. Se hai domande o non sai con quale iniziare lascia un commento qui sotto , i nostri tecnici ti risponderanno subito.
- Tecniche per gestire dati e dataset sbilanciati
Questo articolo introduce sette tecniche comunemente applicate in domini come il rilevamento delle frodi o le offerte in tempo reale, su dati o dataset che sono spesso estremamente sbilanciati. I dati possono essere uno strumento potente. Possono fornire informazioni su come e dove possiamo migliorare la nostra attività. Tuttavia, i dati possono anche essere fuorvianti. È qui che la gestione dei dati diventa difficile. Esistono molte tecniche che possono essere utilizzate per gestire i dati sbilanciati. Queste tecniche ti permetteranno di andare oltre l'utilizzo dei dati per creare piani strategici. Introduzione alle tecniche per gestire dati e dataset sbilanciati Che cosa hanno in comune i set di dati in domini come il rilevamento delle frodi nel settore bancario, le offerte in tempo reale nel marketing o il rilevamento delle intrusioni nelle reti? I dati utilizzati in queste aree spesso contengono meno dell'1% di eventi rari ma “interessanti” (ad es. truffatori che utilizzano carte di credito, utenti che fanno clic su annunci pubblicitari o server corrotti che scansionano la propria rete). Mentre la maggior parte dei dati è abbastanza ben bilanciata, alcuni dati non lo sono. Questi dati possono essere distorti in qualche modo e devono essere analizzati con maggiore attenzione. Tuttavia, la maggior parte degli algoritmi di apprendimento automatico non funziona molto bene con set di dati sbilanciati. Le seguenti sette tecniche possono aiutarti ad addestrare un classificatore a rilevare la classe anormale. Cosa sono i dati sbilanciati? I dati sbilanciati si riferiscono a quei tipi di set di dati in cui la classe target ha una distribuzione non uniforme delle osservazioni, ovvero un'etichetta di classe ha un numero molto elevato di osservazioni e l'altra ha un numero molto basso di osservazioni. Possiamo capirlo meglio con un esempio. Supponiamo che XYZ sia una banca che emette una carta di credito ai propri clienti. Ora la banca è preoccupata che alcune transazioni fraudolente siano in corso e quando la banca controlla i propri dati ha scoperto che per ogni transazione 2000 ci sono solo 30 No di frode registrati. Quindi, il numero di frodi per 100 transazioni è inferiore al 2%, o possiamo dire che più del 98% della transazione è di natura "Nessuna frode". Qui, la classe "No Fraud" è chiamata classe di maggioranza e la classe "Frode" di dimensioni molto più piccole è chiamata classe di minoranza . Tecnica per gestire dati e dataset sbilanciati 1. Usa le giuste metriche di valutazione L'applicazione di metriche di valutazione inadeguate per il modello generato utilizzando dati sbilanciati può essere pericoloso. Immagina che i nostri dati di allenamento siano quelli illustrati nel grafico sopra. Se l'accuratezza viene utilizzata per misurare la bontà di un modello, un modello che classifica tutti i campioni di prova in "0" avrà un'accuratezza eccellente (99,8%), ma ovviamente questo modello non fornirà alcuna informazione preziosa per noi. In questo caso possono essere applicate altre metriche di valutazione alternative come: Precisione/Specificità: quante istanze selezionate sono rilevanti. Richiamo/Sensibilità: quante istanze rilevanti sono selezionate. Punteggio F1: media armonica di precisione e richiamo. MCC: coefficiente di correlazione tra le classificazioni binarie osservate e previste. AUC: relazione tra tasso di veri positivi e tasso di falsi positivi. Tecnica per gestire dati e dataset sbilanciati 2. Ricampiona il set di addestramento Oltre a utilizzare criteri di valutazione diversi, si può anche lavorare per ottenere set di dati diversi. Due approcci per creare un insieme di dati equilibrato da uno sbilanciato sono il sottocampionamento e il sovracampionamento. 2.1. Sottocampionamento Il sottocampionamento bilancia il set di dati riducendo le dimensioni della classe abbondante. Questo metodo viene utilizzato quando la quantità di dati è sufficiente. Mantenendo tutti i campioni nella classe rara e selezionando casualmente un numero uguale di campioni nella classe abbondante, è possibile recuperare un nuovo set di dati bilanciato per ulteriori modelli. 2.2. Sovracampionamento Al contrario, il sovracampionamento viene utilizzato quando la quantità di dati è insufficiente. Cerca di bilanciare il set di dati aumentando le dimensioni di campioni rari. Invece di eliminare campioni abbondanti, vengono generati nuovi campioni rari utilizzando, ad esempio, la ripetizione, il bootstrapping o SMOTE (tecnica di sovracampionamento della minoranza sintetica) Si noti che non vi è alcun vantaggio assoluto di un metodo di ricampionamento rispetto a un altro. L'applicazione di questi due metodi dipende dal caso d'uso a cui si applica e dal set di dati stesso. Anche una combinazione di sovra e sottocampionamento ha spesso successo. Tecnica per gestire dati e dataset sbilanciati 3. Usa la convalida incrociata K-fold nel modo giusto È interessante notare che la convalida incrociata dovrebbe essere applicata correttamente mentre si utilizza il metodo di campionamento eccessivo per affrontare i problemi di squilibrio. Tieni presente che il sovracampionamento prende campioni rari osservati e applica il bootstrap per generare nuovi dati casuali basati su una funzione di distribuzione. Se la convalida incrociata viene applicata dopo un campionamento eccessivo, in pratica ciò che stiamo facendo è adattare il nostro modello a uno specifico risultato di bootstrapping artificiale. Ecco perché la convalida incrociata dovrebbe sempre essere eseguita prima di sovracampionare i dati, proprio come dovrebbe essere implementata la selezione delle funzionalità. Solo ricampionando i dati ripetutamente, la casualità può essere introdotta nel set di dati per assicurarsi che non ci siano problemi di overfitting. Tecnica per gestire dati e dataset sbilanciati 4. Insieme diversi set di dati ricampionati Il modo più semplice per generalizzare correttamente un modello è utilizzare più dati. Il problema è che classificatori fuori dagli schemi come la regressione logistica o la foresta casuale tendono a generalizzare scartando la classe rara. Una pratica ottimale è costruire n modelli che utilizzino tutti i campioni della classe rara e campioni n-differenti della classe abbondante. Dato che vuoi mettere insieme 10 modelli, manterrai ad esempio i 1.000 casi della classe rara e campionaresti casualmente 10.000 casi della classe abbondante. Quindi dividi i 10.000 casi in 10 blocchi e alleni 10 modelli diversi. Questo approccio è semplice e perfettamente scalabile orizzontalmente se disponi di molti dati, poiché puoi semplicemente addestrare ed eseguire i tuoi modelli su diversi nodi del cluster. I modelli di ensemble tendono anche a generalizzare meglio, il che rende questo approccio facile da gestire. Tecnica per gestire dati e dataset sbilanciati 5. Ricampiona con rapporti diversi L'approccio precedente può essere perfezionato giocando con il rapporto tra la classe rara e quella abbondante. Il rapporto migliore dipende fortemente dai dati e dai modelli utilizzati. Ma invece di addestrare tutti i modelli con lo stesso rapporto nell'insieme, vale la pena provare a mettere insieme rapporti diversi. Quindi, se vengono addestrati 10 modelli, potrebbe avere senso avere un modello con un rapporto di 1:1 (raro:abbondante) e un altro con 1:3 o anche 2:1. A seconda del modello utilizzato, ciò può influenzare il peso che ottiene una classe. Tecnica per gestire dati e dataset sbilanciati 6. Raggruppa la classe abbondante Un approccio elegante è stato proposto da Sergey su Quora [2]. Invece di fare affidamento su campioni casuali per coprire la varietà dei campioni di addestramento, suggerisce di raggruppare la classe abbondante in gruppi r, dove r è il numero di casi in r. Per ogni gruppo viene mantenuto solo il medoid (centro del cluster). Il modello viene quindi addestrato con la classe rara e solo con i medoidi. Tecnica per gestire dati e dataset sbilanciati 7. Progetta i tuoi modelli Tutti i metodi precedenti si concentrano sui dati e mantengono i modelli come un componente fisso. Ma in realtà, non è necessario ricampionare i dati se il modello è adatto per dati sbilanciati. Il famoso XGBoost è già un buon punto di partenza se le classi non sono troppo sbilanciate, perché internamente si preoccupa che le borse su cui si allena non siano sbilanciate. Ma poi di nuovo, i dati vengono ricampionati, stanno solo accadendo segretamente. Progettando una funzione di costo che penalizzi una classificazione errata della classe rara più che una classificazione errata della classe abbondante, è possibile progettare molti modelli che si generalizzano naturalmente a favore della classe rara. Ad esempio, modificare un SVM per penalizzare le classificazioni errate della classe rara con lo stesso rapporto in cui questa classe è sottorappresentata. Osservazioni finali sulle tecniche per gestire dati e dataset sbilanciati Questo non è un elenco esclusivo di tecniche, ma piuttosto un punto di partenza per gestire dati sbilanciati. Non esiste un approccio o un modello migliore adatto a tutti i problemi e si consiglia vivamente di provare diverse tecniche e modelli per valutare ciò che funziona meglio. Cerca di essere creativo e combina diversi approcci. È anche importante essere consapevoli del fatto che in molti ambiti (es. rilevamento di frodi, offerte in tempo reale), dove si verificano classi sbilanciate, le “regole di mercato” cambiano continuamente. Quindi, controlla se i dati passati potrebbero essere diventati obsoleti.
- Comandi Git per data scientist
Scopri i comandi Git essenziali per il controllo delle versioni e la collaborazione a progetti di data science. Storicamente, la maggior parte dei data scientist non è a conoscenza delle pratiche e degli strumenti di sviluppo software come i sistemi di controllo delle versioni. Ma questo sta cambiando, i progetti di scienza dei dati stanno adottando le migliori pratiche dell'ingegneria del software e Git è diventato uno strumento essenziale per il controllo delle versioni di file e dati. I moderni data team lo usano per collaborare a progetti di codebase e risolvere i conflitti più velocemente. Che cos'è il controllo della versione? Il software di controllo della versione ti consente di salvare il tuo lavoro mentre procedi, così puoi tornare indietro nel tempo e riprendere da dove eri rimasto. Il software di controllo della versione più comunemente usato è Git. Cos'è Git? Git è un versatile sistema di controllo della versione utilizzato nello sviluppo di software. Viene utilizzato per gestire e tenere traccia delle modifiche a file e attività. Git è un successore del sistema di controllo del codice sorgente (SCCS) degli sviluppatori. Git utilizza un sistema di controllo della versione distribuito che consente a più sviluppatori di lavorare sullo stesso progetto contemporaneamente. È un buon strumento da usare insieme ad altri sistemi di controllo della versione come Subversion. Cos'è un Comando Git ? Git è un popolare sistema di controllo delle versioni che aiuta a gestire le modifiche ai documenti in un ambiente di lavoro collaborativo. Se non conosci il controllo della versione, ti starai chiedendo come usarlo. Se sei già un data scientist e non sai come usare Git, ti starai chiedendo come può aiutare il tuo flusso di lavoro. Ad ogni modo, troverai utile questo elenco di comandi Git. In questo post, impareremo 14 comandi Git essenziali che ti aiuteranno a inizializzare un progetto, creare e unire rami, seguire la versione dei file, sincronizzarlo con un server remoto e monitorare le modifiche. Nota: assicurati di aver installato correttamente Git dal sito ufficiale . Comandi Git per data scientist 1. Inizializzazione Puoi inizializzare il sistema di controllo della versione Git nella directory corrente digitando: git init Oppure puoi inizializzare Git in una directory specifica. git init Comandi Git per data scientist 2. Clona Il comando clone copierà tutti i file di progetto da un server remoto alla macchina locale. Aggiungerà anche un nome remoto come `origine` per sincronizzare i file con il server remoto. Git clone richiede un collegamento HTTPS e un collegamento SSH per la connessione sicura. git clone Comandi Git per data scientist 3. Remote È possibile connettersi a uno o più server remoti aggiungendo il nome del remoto e l'indirizzo HTTPS/SSH. git remote add Nota: la clonazione di un repository da GitHub o qualsiasi server remoto aggiunge automaticamente remote come `origine`. Comandi Git per data scientist 4. Crea Ramo I rami sono il modo migliore per lavorare su una nuova funzionalità o eseguire il debug del codice. Ti permette di lavorare in isolamento senza disturbare il ramo `main`. Crea un nuovo ramo usando il comando checkout con il tag `-b` e il nome del ramo. git checkout -b Oppure usa switch con il tag `-c` e il nome del ramo git switch -c O semplicemente usa il comando branch git branch Comandi Git per data scientist 5. Cambiare ramo Per passare da un ramo corrente a un altro ramo, è possibile utilizzare il comando checkout o switch seguito dal nome del ramo. git checkout git switch Comandi Git per data scientist 6. Pull Per sincronizzare le modifiche con un server remoto, è necessario prima eseguire il pull delle modifiche dal repository remoto al repository locale utilizzando il comando pull . Ciò è necessario quando vengono apportate modifiche in un repository remoto. git pull Puoi aggiungere un nome remoto seguito da un nome di ramo per estrarre un singolo ramo. git pull Per impostazione predefinita, il comando pull recupera le modifiche e le unisce al ramo corrente. Per rebase, invece di unire, puoi aggiungere il flag `--rebase` prima del nome e del ramo remoti. git pull --rebase origin master Comandi Git per data scientist 7. Aggiungi Usa il comando aggiungi per aggiungere file nell'area di gestione temporanea. Richiede il nome del file o l'elenco dei nomi dei file. git add Puoi anche aggiungere tutti i file usando il flag `.` o `-A`. git add . Comandi Git per data scientist 8. Commit Dopo aver aggiunto i file all'area di staging, puoi creare una versione utilizzando il comando commit . Il comando commit richiede il titolo del commit usando il flag `-m`. Se hai apportato più modifiche e vuoi elencarle tutte, aggiungile alla descrizione usando un altro flag `-m`. git commit -m "Titolo" -m "Descrizione" Nota: assicurati di aver configurato il nome utente e l'e -mail prima di confermare le modifiche. git config --global user.name git config --global user.email Comandi Git per data scientist 9. Push Per sincronizzare le modifiche locali su server remoti utilizzando il comando push . Puoi semplicemente digitare `git push` per inviare le modifiche al repository remoto. Per eseguire il push delle modifiche su uno specifico server remoto e succursale, utilizzare il comando seguente. git push Comandi Git per data scientist 10. Annulla commit Git revert annulla le modifiche a un commit specifico e lo aggiunge come nuovo commit, mantenendo intatto il registro. Per ripristinare, devi fornire un hash di un commit specifico. git revert Puoi anche annullare le modifiche usando il comando reset . Reimposta le modifiche su un commit specifico, scartando tutti i commit effettuati dopo. git reset Nota: l'utilizzo del comando reset è sconsigliato in quanto modifica la cronologia del registro git Comandi Git per data scientist 11. Unione Il comando di unione unirà semplicemente le modifiche del ramo specifico nel ramo corrente. Il comando richiede un nome di ramo. git merge Questo comando è molto utile quando si lavora con più rami e si desidera unire le modifiche al ramo principale. Comandi Git per data scientist 12. Registro Per controllare la cronologia completa dei commit precedenti, puoi utilizzare il comando log. Per mostrare i log più recenti, puoi aggiungere `-` seguito dal numero e ti mostrerà un numero limitato di cronologia dei commit recenti. Ad esempio, limita i log a 5: git log -5 Puoi anche controllare i commit effettuati da autori specifici. git log --author=”” Nota: git log ha più flag per filtrare tipi specifici di commit. Consulta la documentazione completa . Comandi Git per data scientist 13. Differenza L'uso del comando diff visualizzerà il confronto tra le modifiche non salvate con il commit corrente. git diff Per confrontare due diversi commit, utilizzare: git diff E per confrontare due rami, usa: git diff Comandi Git per data scientist 14. Stato Lo stato del comando mostra lo stato corrente della directory di lavoro. Include informazioni sulle modifiche di cui eseguire il commit, i percorsi non uniti, le modifiche non organizzate per il commit e l'elenco dei file non tracciati. git status Conclusione sui miliori comandi Git per data scientist Speriamo che il nostro articolo sui comandi Git essenziali per i data scientist ti sia piaciuto. L'apprendimento di queste competenze vitali farà un'enorme differenza nel tuo lavoro e nella tua carriera come professionista della scienza dei dati. Naturalmente, sappiamo che non tutti i data scientist hanno il tempo o la voglia di imparare questi comandi, quindi abbiamo fornito una serie di tutorial facili da seguire che forniscono una pratica pratica nell'uso di Git. Grazie per aver letto, siamo sempre entusiasti quando uno dei nostri post è in grado di fornire informazioni utili per i professionisti della scienza dei dati.
- I migliori modelli linguistici open source
In questo articolo, discuteremo dell'importanza dei modelli linguistici di grandi dimensioni e suggeriremo alcuni dei migliori modelli open source e le attività NLP per cui possono essere utilizzati. Cos'è un modello linguistico? Un modello linguistico è solo una distribuzione di probabilità su sequenze di token (parole). I modelli linguistici sono il fulcro della moderna elaborazione del linguaggio naturale (NLP) e le loro applicazioni possono essere per una varietà di attività NLP come sintesi vocale, analisi del sentimento, riepilogo del testo, controllo ortografico, classificazione dei token, ecc. Nella maggior parte della NLP compiti, i modelli linguistici possono determinare la probabilità del prossimo token analizzando il testo dato. Il modello linguistico può essere sotto forma di reti Unigrams, N-grams, Exponential o Neural. Perhè usare i modelli linguistici ? Nel 2019, c'è stato un grande incremento nella popolarità del Language Modeling grazie allo sviluppo di trasformatori come BERT, GPT-2 e XLM. Questi modelli basati su trasformatori possono essere adattati da un modello di linguaggio generico a un'attività a valle specifica nota come messa a punto. Il processo di ottimizzazione richiede molti meno dati rispetto all'addestramento del modello linguistico da zero. Questo è uno dei motivi che rende le modalità basate su trasformatore straordinarie rispetto ai precedenti approcci utilizzati nella modellazione linguistica. Un altro motivo per cui i modelli linguistici sono così utilizzati è che un singolo modello può essere utilizzato per più attività NLP , ad esempio come risposta alle domande, classificazione di token e testo, riassunto di documenti, generazione di testo, traduzione e molti altri. I modelli linguistici basati su trasformatore possono eseguire queste attività NLP con prestazioni molto più elevate grazie alla presenza di più parametri e più dati di addestramento. Questo post include alcuni dei migliori modelli di linguaggio open source. I migliori modelli linguistici 1. GPT-Neo, GPT-J e GPT-NeoX GPT-Neo, GPT-J e GPT-NeoX sono modelli di intelligenza artificiale molto potenti e possono essere utilizzati per problemi di apprendimento a pochi colpi. L'apprendimento immediato è come l'addestramento/la messa a punto di qualsiasi modello di apprendimento profondo, tuttavia richiede solo un numero limitato di campioni. I modelli GPT-Neo, GPT-J e GPT-NeoX sono stati addestrati e rilasciati da EleutherAI come versioni open source di GPT-3, che è stato rilasciato da Open-AI ed è rimasto privato fino ad oggi. I modelli GPT-J e GPT-Neo sono simili a GPT-2 ed entrambi sono stati addestrati sul set di dati Pile. The Pile è un set di dati di modellazione del linguaggio open source da 825 GiB che consiste in 22 set di dati più piccoli combinati. L'importanza di Pile è la diversità delle sue fonti di dati che migliora la conoscenza generale tra domini e le attività della PNL a valle. GPT-NeoX è un miglioramento dei modelli GPT open source rilasciati in precedenza basati principalmente su Megatron-LM e DeepSeed. A causa della complessità e delle sue dimensioni, è stato costruito su Mesh TensorFlow e progettato per GPU. Il modello GPT-NeoX-20B ha 20 miliardi di parametri ed è stato addestrato sul Pile, il che lo rende il più grande modello autoregressivo denso disponibile pubblicamente. GPT-NeoX-20B può aiutare a sviluppare prove di concetto per misurare la fattibilità del progetto grazie all'apprendimento a colpi di poche. I migliori modelli linguistici 2. XLNET I ricercatori della Carnegie Mellon University e di Google hanno sviluppato un nuovo modello chiamato XLNet per eseguire attività di NLP come la comprensione della lettura, la classificazione del testo, l'analisi del sentimento e altro. La sua formulazione autoregressiva consente l'apprendimento di contesti bidirezionali massimizzando la probabilità su tutte le permutazioni dell'ordine di fattorizzazione e supera i limiti di BERT. Segue un metodo di pre-allenamento autoregressivo generalizzato. Inoltre, XLNet integra le idee di Transformer-XL, il modello autoregressivo all'avanguardia, nel pre-training. Empiricamente, XLNet supera BERT su 20 attività, per lo più con un ampio margine, e ottiene risultati all'avanguardia su 18 attività come risposta alle domande, inferenza del linguaggio naturale, analisi del sentimento e classifica dei documenti. I migliori modelli linguistici 3. Roberta I ricercatori di Facebook AI e dell'Università di Washington hanno analizzato come è stata addestrata la rappresentazione dell'encoder bidirezionale di Google da Transformers (BERT). Hanno apportato diverse modifiche al processo di allenamento e hanno anche migliorato le prestazioni. Inoltre, i ricercatori hanno utilizzato un set di dati più ampio per l'addestramento, hanno scelto mini-batch più grandi, hanno rimosso la Next Sentence Prediction (NSP) e hanno addestrato il modello con molte più iterazioni rispetto a BERT. Ciò ha portato a un modello ottimizzato chiamato RoBERTa (Robustly Optimized BERT Approach) che corrispondeva ai punteggi del modello XLNet sul benchmark GLUE (General Language Understanding Evaluation). È stato dimostrato che l'apprendimento trasferito nella PNL è altamente efficiente per le attività di classificazione del testo. I modelli RoBERTa raggiungono una precisione competitiva in un'ampia gamma di attività a valle, il che lo ha reso un modello "Go-to" per le attività di classificazione di token e testo da parte di molte aziende. I migliori modelli linguistici 4. DeBERTa I ricercatori di Microsoft Research hanno proposto BERT potenziato con la decodifica con un'attenzione districata per migliorare i modelli BERT e RoBERTa utilizzando due tecniche. In primo luogo, ha districato il meccanismo dell'attenzione, in cui ogni parola è rappresentata utilizzando due vettori che ne codificano rispettivamente il contenuto e la posizione, e i pesi dell'attenzione tra le parole sono calcolati utilizzando matrici districate sul loro contenuto e posizioni relative. In secondo luogo, viene utilizzato un decodificatore maschera avanzato per sostituire il livello softmax di output per prevedere i token mascherati per il pre-training del modello. Tanya sottolinea che queste due tecniche migliorano significativamente l'efficienza del pre-addestramento del modello e l'esecuzione delle attività a valle. Il modello DeBERTa supera per la prima volta la linea di base umana sul benchmark GLUE al momento della pubblicazione. Fino ad oggi i modelli DeBERTa sono utilizzati principalmente per una varietà di attività NLP come la risposta a domande, il riepilogo e la classificazione di token e testi. I migliori modelli linguistici 5. XLM-RoBERTa Nel mondo degli affari di oggi, le aziende di maggior successo hanno raggiunto il punto in cui devono offrire i propri servizi in lingue diverse dall'inglese. Grazie ai ricercatori del team AI di Facebook, XLM-RoBERTa è un modello linguistico basato su trasformatore ed è in grado di elaborare testo da 100 lingue diverse. In passato, ciò richiedeva di moltiplicare gli sforzi per ogni nuova lingua, occupandosi dei dettagli intricati di ogni lingua. Sebbene spesso non forniscano le migliori prestazioni per attività, i modelli multilingue come XLM-RoBERTa consentono alle aziende di generare valore per gli utenti che non parlano inglese molto più velocemente. I migliori modelli linguistici 6. DistilBERT Mentre altri modelli mirano a ottimizzare le prestazioni di BERT, DistilBERT ha un obiettivo diverso. Mentre XLNet, RoBERTa e DeBERTa hanno apportato miglioramenti alle prestazioni, DistilBERT cerca di migliorare la velocità di inferenza. Il suo obiettivo è ridurre le grandi dimensioni e aumentare la velocità di BERT_{BASE} e BERT_{LARGE} con parametri rispettivamente di 110M e 340M, pur mantenendo quanta più potenza possibile. DistilBERT riduce le dimensioni di BERT_{BASE} del 40% e migliora la velocità del 60% mantenendo il 97% delle sue capacità. I migliori modelli linguistici 7. BLOOM Con i suoi 176 miliardi di parametri, BLOOM è in grado di generare testo in 46 linguaggi naturali e 13 linguaggi di programmazione. Per quasi tutti, come spagnolo, francese e arabo, BLOOM sarà il primo modello linguistico con oltre 100 miliardi di parametri mai creato. Questo è il culmine di un anno di lavoro che ha coinvolto oltre 1000 ricercatori provenienti da oltre 70 paesi e oltre 250 istituzioni, che ha portato a un ciclo finale di 117 giorni (11 marzo - 6 luglio) per addestrare il modello BLOOM sul supercomputer Jean Zay nel sud di Parigi, Francia grazie a una sovvenzione di calcolo del valore stimato di 3 milioni di euro dalle agenzie di ricerca francesi CNRS e GENCI. I ricercatori possono ora scaricare, eseguire e studiare BLOOM per studiare le prestazioni e il comportamento di modelli linguistici di grandi dimensioni recentemente sviluppati fino alle loro operazioni interne più profonde. Più in generale, qualsiasi individuo o istituzione che accetti i termini della Licenza per l'IA responsabile del modello(sviluppato durante il progetto BigScience stesso) può utilizzare e costruire sul modello su una macchina locale o su un provider cloud. In questo spirito di collaborazione e miglioramento continuo, stiamo rilasciando, per la prima volta, anche i checkpoint intermedi e gli stati di ottimizzazione della formazione. Non hai 8 A100 con cui giocare? Un'API di inferenza, attualmente supportata dal cloud TPU di Google e da una versione FLAX del modello, consente anche test rapidi, prototipazione e utilizzo su scala ridotta. Puoi già giocarci su Hugging Face Hub. Facci sapere nei commenti se conosci altri modelli linguistici open source su cui poter mettere mano !
- Ottimizzare gli iperparametri con GridSearchCV e Python
Il processo decisionale basato sui dati ha un ampio coinvolgimento degli algoritmi di apprendimento automatico. Per un problema aziendale, il professionista non si affida mai a un algoritmo. Si applicano sempre più algoritmi rilevanti in base al problema e si seleziona il modello migliore in base alle migliori metriche di prestazione mostrate dai modelli. Ma questa non è la fine. È possibile aumentare le prestazioni del modello utilizzando gli iperparametri. Pertanto, trovare gli iperparametri ottimali ci aiuterebbe a ottenere il modello con le migliori prestazioni. In questo articolo impareremo su Hyperparameters, Grid Search, Cross-Validation, GridSearchCV e l'ottimizzazione di Hyperparameters in Python. Gli iperparametri per un modello possono essere scelti utilizzando diverse tecniche come Ricerca casuale, Ricerca griglia, Ricerca manuale, Ottimizzazioni bayesiane, ecc. In questo articolo impareremo su GridSearchCV che utilizza la tecnica Grid Search per trovare gli iperparametri ottimali per aumentare il modello prestazione. Indice su Come ottimizzare gli iperparametri con GridSearchCV Iperparametri vs parametri Comprensione della ricerca nella griglia Convalida incrociata e GridSearchCV Come applicare GridSearchCV? Conclusioni Iperparametri vs parametri Sia i parametri che gli iperparametri sono associati al modello di Machine Learning, ma entrambi sono pensati per attività diverse. Capiamo come sono diversi tra loro nel contesto del Machine Learning. I parametri sono le variabili utilizzate dall'algoritmo di Machine Learning per prevedere i risultati in base ai dati storici di input. Questi sono stimati utilizzando un algoritmo di ottimizzazione dello stesso algoritmo di Machine Learning. Pertanto, queste variabili non sono impostate o codificate dall'utente o dal professionista. Queste variabili sono servite come parte dell'addestramento del modello. Esempio di parametri: Coefficiente di variabili indipendenti Regressione lineare e Regressione logistica. Gli iperparametri sono le variabili che l'utente specifica in genere durante la creazione del modello di Machine Learning. Quindi, gli iperparametri vengono specificati prima di specificare i parametri o possiamo dire che gli iperparametri vengono utilizzati per valutare i parametri ottimali del modello. La parte migliore degli iperparametri è che i loro valori sono decisi dall'utente che sta costruendo il modello. Ad esempio, max_depth negli algoritmi della foresta casuale, k nel classificatore KNN. Tieni a mente questa differenza, solitamente viene fatta ai colloqui. Comprensione della ricerca nella griglia Ora che sappiamo cosa sono gli iperparametri, il nostro obiettivo dovrebbe essere trovare i migliori valori di iperparametri per ottenere i risultati di previsione perfetti dal nostro modello. Ma sorge la domanda, come trovare questi migliori insiemi di iperparametri? Si può provare il metodo di ricerca manuale, utilizzando il processo hit and trial e si possono trovare i migliori iperparametri che richiederebbero molto tempo per costruire un singolo modello. Per questo motivo sono stati introdotti metodi come Random Search, GridSearch. Qui, discuteremo come viene eseguita Grid Seach e come viene eseguita con la convalida incrociata in GridSearchCV. Questa ricerca a griglia utilizza una combinazione diversa di tutti gli iperparametri specificati e dei relativi valori, calcola le prestazioni per ciascuna combinazione e seleziona il valore migliore per gli iperparametri. Ciò rende l'elaborazione dispendiosa in termini di tempo e costo in base al numero di iperparametri coinvolti. Ricerca della griglia su due parametri (immagine di Alexander Elvers da WikiMedia ) Convalida incrociata e GridSearchCV In GridSearchCV, insieme a Grid Search, viene eseguita anche la convalida incrociata. La convalida incrociata viene utilizzata durante l'addestramento del modello. Come sappiamo, prima di addestrare il modello con i dati, dividiamo i dati in due parti: dati di training e dati di test . Nella convalida incrociata, il processo divide ulteriormente i dati del treno in due parti: i dati del treno e i dati di convalida. Il tipo più popolare di convalida incrociata è la convalida incrociata K-fold. È un processo iterativo che divide i dati del treno in k partizioni. Ogni iterazione conserva una partizione per il test e le restanti partizioni k-1 per il training del modello. L'iterazione successiva imposterà la partizione successiva come dati di test e il restante k-1 come dati del treno e così via. In ogni iterazione, registrerà le prestazioni del modello e alla fine darà la media di tutte le prestazioni. Pertanto, è anche un processo che richiede tempo. Pertanto, GridSearch insieme alla convalida incrociata impiega molto tempo cumulativamente per valutare i migliori iperparametri. Ora vedremo come utilizzare GridSearchCV nel nostro problema di Machine Learning. Convalida incrociata K-Fold (immagine di Gufosowa da WikiMedia ) Come applicare GridSearchCV? Il metodo .GridSearchCV() è disponibile nella classe scikit-learn model_selection. Può essere avviato creando un oggetto di GridSearchCV(): clf = GridSearchCv(stimatore, param_grid, cv, punteggio) In primo luogo, sono necessari 4 argomenti, ovvero estimator , param_grid , cv e scoring . La descrizione degli argomenti è la seguente: 1. estimatore – Un modello scikit-learn 2. param_grid – Un dizionario con nomi di parametri come chiavi ed elenchi di valori di parametro. 3. punteggio – La misura della performance. Ad esempio, ' r2 ' per i modelli di regressione, ' precision ' per i modelli di classificazione. 4. cv – Un numero intero che è il numero di pieghe per la convalida incrociata K-fold. GridSearchCV può essere utilizzato su diversi iperparametri per ottenere i valori migliori per gli iperparametri specificati. Ora applichiamo GridSearchCV con un set di dati di esempio: Potete scaricare il dataset cliccando qui , e cercando heart.csv utilizzando l'icona in alto a destra (il tasto evidenziato nella fotto seguente) . Come ottimizzare gli iperparametri con GridSearchCV e Python ? Dopo aver visto la teoria base, sporchiamoci le mani con un pò di codice. #importiamo le librerie necessarie import pandas as pd from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split from sklearn.model_selection import GridSearchCV from sklearn import metrics import warnings warnings.filterwarnings('ignore') #carichiamo il dataset scaricato df = pd.read_csv('heart.csv') print(df.head()) Dividiamo le variabili indipendenti e dipendenti(target) X = df.drop('target', axis = 1) y = df['target'] Dividiamo i dati in Train e Test X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 42) Inizializziamo un modello Random Forest Classifier rfc = RandomForestClassifier() Qui, abbiamo creato l'oggetto rfc di RandomForestClassifier(). Inizializzazione dell'oggetto GridSearchCV() e adattamento con iperparametri forest_params = [{'max_depth': list(range(10, 15)), 'max_features': list(range(0,14))}] clf = GridSearchCV(rfc, forest_params, cv = 10, scoring='accuracy') clf.fit(X_train, y_train) Qui, abbiamo passato l'oggetto estimatore rfc , param_grid come forest_params , cv = 5 e il metodo di punteggio come accuratezza in GridSearchCV() come argomenti. Otteniamo i migliori iperparametri print(clf.best_params_) Questo darà la combinazione di iperparametri insieme a valori che danno le migliori prestazioni della nostra stima specificata. Mettiamo tutto il codice insieme import pandas as pd from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split from sklearn.model_selection import GridSearchCV from sklearn import metrics import warnings warnings.filterwarnings('ignore') df = pd.read_csv('heart.csv') X = df.drop('target', axis = 1) y = df['target'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 42) rfc = RandomForestClassifier() forest_params = [{'max_depth': list(range(10, 15)), 'max_features': list(range(0,14))}] clf = GridSearchCV(rfc, forest_params, cv = 10, scoring='accuracy') clf.fit(X_train, y_train) print(clf.best_params_) print(clf.best_score_) Eseguendo il codice sopra, otteniamo: Migliori parametri e miglior punteggio del classificatore foresta casuale Pertanto, clf.best_params_ fornisce la migliore combinazione di iperparametri ottimizzati e clf.best_score_ fornisce il punteggio medio con convalida incrociata del nostro Classificatore di foresta casuale. Conclusioni su come Ottimizzare gli iperparametri con GridSearchCV e Python In questo articolo, abbiamo appreso di Grid Search, K-fold Cross-Convalidation, GridSearchCV e come fare un buon uso. GridSearchCV è una fase di selezione del modello e dovrebbe essere eseguita dopo le attività di elaborazione dei dati. È sempre bene confrontare le prestazioni dei modelli Tuned e Untuned. Questo ci costerà tempo e denaro ma sicuramente ci darà i migliori risultati. L'API scikit-learn è un'ottima risorsa in caso di aiuto. È sempre bello imparare facendo. Condividi l'articolo per aiutarci a diffondere la cultura del dato e dell'intelligenza artificiale :)
- Intelligenza artificiale nello sviluppo del software il suo ruolo
Il mondo dello sviluppo del software sta cambiando molto velocemente. L'intelligenza artificiale sta avendo un enorme impatto su tutto lo sviluppo del software. Il viaggio dell'IA nello sviluppo del software è iniziato quando è stato coniato per la prima volta il termine "intelligenza artificiale". L'intelligenza artificiale è già utilizzata nello sviluppo di software in vari modi, ma non è affatto vicina a raggiungere il suo pieno potenziale. Questo blog esplorerà come l'IA può aiutare lo sviluppo del software. Introduzione al uolo dell' I.A. nello sviluppo del software Nel 2022, le statistiche giornaliere sulla generazione di dati si attestano a 2,5 quintilioni di byte, la cui conversione di unità in Gigabyte diventa un compito da capogiro. Ora, potresti chiederti perché una raccolta di valori dispari è importante in quest'era in cui le persone etichettano i dati come il nuovo petrolio. Qui entra in gioco il concetto di data science. La scienza dei dati è una raccolta di varie tecniche analitiche, descrittive e predittive per estrarre conoscenze e informazioni utili dai dati. La domanda di data scientist è sempre in eccedenza nel mercato. Questo mostra l'importanza dei dati e quanto potente può diventare un insieme casuale di dati come un array, diciamo [0,1,1,2,3,5,8,13]. Questi dati hanno alimentato il settore dell'automazione con l'aiuto dell'intelligenza artificiale. Questo ci porta a una domanda importante. Come verrà cambiato lo sviluppo del software con l' Intelligenza Artificiale? Nell'industria del software, l'introduzione dell'intelligenza artificiale ha il potenziale per migliorare la produttività degli sviluppatori di software, rendendo lo sviluppo del software più efficiente. L'industria del software sta crescendo rapidamente e gli sviluppatori di software stanno lottando per tenere il passo con la rapida crescita. L'IA ha il potenziale per migliorare la produttività degli sviluppatori di software. L'intelligenza artificiale potrebbe aiutare a monitorare, gestire e analizzare grandi volumi di dati generati dal processo di sviluppo del software. L'IA aiuterebbe anche gli esperti di sviluppo software a prendere decisioni migliori sulla progettazione. Ruoli dell' intelligenza artificiale nello sviluppo di software : Ecco come l' intelligenza artificiale viene applicata allo sviluppo software: Esperienza utente aumentata Aumento della velocità di sviluppo Maggiore sicurezza e privacy Sistemi di raccomandazione Eliminazione degli errori Processo decisionale e stima del tempo Ruolo dell' intelligenza artificiale nello sviluppo software Società SaaS affermate come Netflix, Spotify, Amazon Prime, Youtube, ecc., utilizzano ampiamente l'IA sulla loro piattaforma per soddisfare le esigenze dei clienti e fornire un servizio soddisfacente ai propri utenti. C'è stato un cambiamento crescente verso l'IA nello sviluppo del software e l'IA è sicuramente il futuro dello sviluppo del software. Ecco alcuni modi in cui l'intelligenza artificiale può aiutarti a creare il tuo prossimo prodotto software "wow". Ruolo dell' intelligenza artificiale nello sviluppo software : Esperienza utente aumentata Ogni software deve fornire una piattaforma per consentire all'utente di comunicare le sue domande e ottenere una soluzione. Una piattaforma non è tutto, ma piuttosto una piattaforma basata sull'intelligenza artificiale (AI Chatbot) che risponde istantaneamente a ogni query e offre agli utenti un'esperienza di qualità di prim'ordine. Quasi tutti i siti Web del servizio clienti, come IRCTC, BookMyShow, MakeMyTrip , ecc., sono basati su chatbot AI per aiutare i clienti. Anche Alexa e altri assistenti vocali intelligenti supportati dall'intelligenza artificiale hanno aiutato gli utenti con un'ampia gamma di attività a proprio piacimento. Ruolo dell' intelligenza artificiale nello sviluppo software : Aumento della velocità di sviluppo Le tecniche di machine learning e deep learning possono aiutare DevOp a ridurre diversi processi di test del software. Gli analisti del controllo qualità non sarebbero più necessari per testare manualmente il software poiché l'IA testerebbe il tuo software automaticamente in ogni fase. Le società fintech stanno adottando bot di trading basati sull'intelligenza artificiale per automatizzare le operazioni dei loro libri. Ruolo dell' intelligenza artificiale nello sviluppo software : Maggiore sicurezza e privacy I modelli di deep learning più potenti possono classificare e identificare quasi tutto in un frame. Pertanto, l'IA può migliorare la sicurezza consentendo l'accesso solo a persone identificate e verificate, mantenendo la privacy a livello di utente fornendo un accesso diverso a utenti diversi come definito dall'amministratore. Le applicazioni bancarie utilizzano esclusivamente l'IA per proteggere i dati dei propri clienti. Ruolo dell' intelligenza artificiale nello sviluppo software : Sistema di raccomandazione Se il tuo prodotto è un servizio di streaming video o un servizio di streaming di podcast/musica, l'alimentazione del software con un sistema di suggerimenti aumenterebbe l'esperienza utente e il tempo di permanenza dell'utente sulla tua applicazione. Il sistema di raccomandazione funziona comprendendo gli interessi dell'utente e prevedendo la migliore opzione successiva. Aziende come Netflix e Facebook curano ampiamente i contenuti degli utenti con l'aiuto dell'IA. Ruolo dell' intelligenza artificiale nello sviluppo software : Eliminazione degli errori L'intelligenza artificiale può aiutare a diagnosticare e trattare un errore senza l'intervento umano, riducendo anche i costi di manutenzione. L'IA può utilizzare l'apprendimento per rinforzo per affrontare gli errori con il concetto di ricompensa e punizione. I dati vengono quindi riqualificati per evitare gli stessi errori in futuro. In questo modo, garantisce che un errore trattato sia un errore eliminato per sempre. Ruolo dell' intelligenza artificiale nello sviluppo software : Processo decisionale e stima del tempo La capacità dell'IA include la capacità di prendere decisioni. In base a vincoli e criteri definiti, la macchina può prendere la decisione più adatta e accurata. Diversi modelli di regressione possono aiutare a prevedere il periodo di tempo stimato e la stima dei costi per il progetto corrente se addestrati con le tempistiche del progetto passate e le stime dei costi. Gli algoritmi di apprendimento supervisionato e non supervisionato possono aiutare in modo significativo uno sviluppatore con servizi avanzati. Il futuro dell sviluppo del software con l'intelligenza artificiale L'ambito dell'IA nello sviluppo del software è enorme e l'elenco continua con altre applicazioni come la codifica automatizzata, la progettazione automatizzata dell'interfaccia utente, ecc. Questo è il motivo per cui si ritiene che l'80% delle aziende stia investendo nell'IA e circa il 50 La % di queste aziende ha già iniziato a definire le proprie strategie di intelligenza artificiale. Il ruolo dell'IA non si limita solo allo sviluppo del software, ma aiuta anche gli sviluppatori a distribuire il proprio software nel modo più conveniente. È possibile condurre sondaggi per conoscere gli interessi e le esigenze degli utenti e gli algoritmi di Machine Learning possono gestire i dati per selezionare la regione migliore e il momento migliore per distribuire il prodotto. Dopo la distribuzione, l'IA può essere utilizzata nell'analisi sentimentale per comprendere il feedback degli utenti e aiutare gli sviluppatori a introdurre nuovi aggiornamenti per la soddisfazione degli utenti. L'analisi sentimentale può essere eseguita utilizzando l'elaborazione del linguaggio naturale, che aiuta a estrarre l'ambito dei miglioramenti da ogni feedback fornito dall'utente. Conclusione sull'Intelligenza artificiale nello sviluppo del software L'IA può essere utilizzata per migliorare le prestazioni operative e l'esperienza dell'utente. Puoi fare in modo che la tua IA raccomandi contenuti personalizzati e personalizzati per l'utente. Con l'intelligenza artificiale, ottieni sicurezza e privacy dei dati di nuova generazione poiché i suoi algoritmi complessi garantiscono la crittografia. Infine, elimina gli errori e prende decisioni importanti per mantenere il processo senza intoppi. Il futuro della razza umana sembra luminoso con questi progressi tecnologici. Ci auguriamo che i cambiamenti apportati dall'IA siano nella giusta direzione e verso il miglioramento della società e degli individui nel loro insieme. In sostanza, non ci sarebbe nulla che un essere umano avrebbe bisogno di eseguire manualmente una volta che il potere supremo dell'intelligenza artificiale è combinato con imminenti scoperte umane.
- Migliori progetti Open Source Python di Intelligenza Artificiale da provare nel 2023
Se sei interessato a imparare Python, ecco i migliori progetti open source Python dedicati all' I.A. da provare nel 2023 Lavorando come data scientist o data engineer, Python è un linguaggio di programmazione che non puoi permetterti di non conoscere . Forse non c'è modo migliore per imparare Python che lavorare su progetti open source. Ti aiuterà a diventare più abile nella programmazione, soprattutto in ambito di I.A. Ecco i migliori progetti open source Python da provare: Teano Scikit-learn Chainer Caffè Gensim PyTorch Shogun Pylearn2 Nilearn Numenta Teano Theano ti consente di ottimizzare, valutare e definire espressioni matematiche che coinvolgono array multidimensionali. È una libreria Python e ha molte funzionalità che la rendono un must per qualsiasi professionista dell'apprendimento automatico. È ottimizzato per stabilità e velocità e può generare codice C dinamico per valutare rapidamente le espressioni. Theano ti consente di utilizzare NumPy.ndarray anche nelle sue funzioni, in modo da poter utilizzare le capacità di NumPy in modo efficace. Scikit-learn Scikit-learn è una libreria di strumenti basata su Python che puoi utilizzare per l'analisi dei dati e il data mining. Puoi riutilizzarlo in numerosi contesti. Ha un'eccellente accessibilità, quindi anche usarlo è abbastanza facile. I suoi sviluppatori lo hanno costruito su matplotlib, NumPy e SciPy. Alcune attività per le quali è possibile utilizzare Scikit-learn includono Clustering, Regression, Classification, Model Selection, Preprocessing e Dimensionality Reduction. Per diventare un vero professionista dell'IA, devi essere in grado di utilizzare questa libreria. Chainer Chainer è un framework basato su Python per lavorare su reti neurali. Supporta più architetture di rete, comprese reti ricorrenti, convnet, reti ricorsive e reti feed-forward. A parte questo, consente il calcolo CUDA in modo da poter utilizzare una GPU con pochissime righe di codice. Puoi eseguire Chainer anche su molte GPU, se necessario. Un vantaggio significativo di Chainer è che rende molto semplice il debug del codice, quindi non dovrai fare molti sforzi in tal senso. Su Github, Chainer ha più di 12.000 commit, quindi puoi capire quanto è popolare. Caffè Caffe è un prodotto di Berkeley AI Research ed è un framework di deep learning incentrato su modularità, velocità ed espressione. È tra i progetti di intelligenza artificiale open source più popolari in Python. Ha un'architettura e una velocità eccellenti in quanto può elaborare più di 60 milioni di immagini in un giorno. Inoltre, ha una fiorente comunità di sviluppatori che lo utilizzano per applicazioni industriali, ricerca accademica, multimedia e molti altri domini. Gensim Gensim è una libreria Python open source in grado di analizzare file di testo normale per comprenderne la struttura semantica, recuperare file semanticamente simili a quello ed eseguire molte altre attività. È scalabile e indipendente dalla piattaforma, come molte delle librerie e dei framework Python di cui abbiamo discusso in questo articolo. Se hai intenzione di utilizzare la tua conoscenza dell'intelligenza artificiale per lavorare su progetti NLP (Natural Language Processing), allora dovresti sicuramente studiare questa libreria. PyTorch PyTorch aiuta a facilitare la prototipazione della ricerca in modo da poter distribuire i prodotti più velocemente. Ti consente di passare da una modalità grafica all'altra tramite TorchScript e fornisce una formazione distribuita che puoi scalare. PyTorch è disponibile anche su più piattaforme cloud e ha numerose librerie e strumenti nel suo ecosistema che supportano la NLP, la visione artificiale e molte altre soluzioni. Per eseguire implementazioni AI avanzate, dovrai acquisire familiarità con PyTorch. Shogun Shogun è una libreria di apprendimento automatico (open-source) e fornisce molti metodi ML unificati ed efficienti. Non è basato esclusivamente su Python, quindi puoi usarlo anche con molti altri linguaggi come Lua, C#, Java, R e Ruby. Consente la combinazione di più classi di algoritmi, rappresentazioni dei dati e strumenti in modo da poter prototipare rapidamente pipeline di dati. Ha una fantastica infrastruttura per i test che puoi utilizzare su varie configurazioni del sistema operativo. Ha anche diversi algoritmi esclusivi, inclusi i metodi Krylov e Multiple Kernel Learning, quindi conoscere Shogun ti aiuterà sicuramente a padroneggiare l'IA e l'apprendimento automatico. Pylearn2 Basato su Theano, Pylearn2 è tra le librerie di machine learning più diffuse tra gli sviluppatori Python. Puoi usare espressioni matematiche per scrivere i suoi plugin mentre Theano si occupa della loro stabilizzazione e ottimizzazione. Su Github, Pylearn2 ha più di 7k commit e sono ancora in crescita, il che dimostra la sua popolarità tra gli sviluppatori ML. Pylearn2 si concentra sulla flessibilità e fornisce un'ampia varietà di funzionalità, inclusa un'interfaccia per i media (immagini, vettori, ecc.) e implementazioni multipiattaforma. Nilearn Nilearn aiuta nei dati di neuroimaging ed è un popolare modulo Python. Utilizza scikit-learn (di cui abbiamo discusso in precedenza) per eseguire varie azioni statistiche come la decodifica, la modellazione, l'analisi della connettività e la classificazione. La neuroimaging è un'area importante nel settore medico e può aiutare a risolvere molteplici problemi come una migliore diagnosi con una maggiore precisione. Se sei interessato a utilizzare l'IA in campo medico, allora questo è il punto di partenza. Numenta Numenta si basa su una teoria della neocorteccia chiamata HTM (Hierarchical Temporal Memory). Molte persone hanno sviluppato soluzioni basate su HTM e sul software. Tuttavia, c'è molto lavoro in corso in questo progetto. HTM è un framework di intelligenza artificiale basato sulla neuroscienza. Condividi l'articolo se ti è piaciuto : )
- Machine learning con excel
Tranquilli non siamo impazziti 🤣 nel blog post di oggi andiamo a vedere come applicare il machine sui tuoi dati utilizzando direttamente excel. Alla fine di questo tutorial, avrai implementato il tuo primo algoritmo senza scrivere una singola riga di codice. Utilizzerai le tecniche di Machine Learning per classificare i dati reali utilizzando le funzioni di base in Excel. Non devi essere un genio o un programmatore per capire l'apprendimento automatico. Nonostante le applicazioni popolari di auto a guida autonoma, robot killer e riconoscimento facciale, le basi dell'apprendimento automatico (ML) sono abbastanza semplici. Questa è un'occasione per bagnare i piedi e comprendere la potenza di queste nuove tecniche. Prima di iniziare chiediamo scusa a tutti i data scientist che leggeranno questo articolo🙌 Cosa ne pensiamo NOI del Machine learning con excel Tutti i data scientist probabilmente stanno rabbrividendo al titolo di questo tutorial. Excel è generalmente considerato uno strumento terribile per l'analisi dei dati seria. Non è scalabile per elaborare i grandi set di dati con cui abbiamo a che fare nel mondo reale e manca di alcune funzionalità chiave dei linguaggi di programmazione e delle librerie di apprendimento automatico. Vedrai che molte delle formule fornite in questo tutorial sono complicate da capire per le carenze e le peculiarità di Excel. Il motivo per cui sto usando Excel è rendere questa introduzione accessibile ai non programmatori poiché la maggior parte di noi ha una conoscenza di base dello strumento. Coloro che scelgono di perseguire più seriamente l'apprendimento automatico e la scienza dei dati alla fine passeranno all'utilizzo di Python o R, ma non c'è nulla di male nell'iniziare in modo semplice. Machine learning con excel : Il nostro obiettivo finale L'obiettivo finale di questo tutorial è utilizzare Machine Learning per costruire un modello di classificazione su un insieme di dati reali utilizzando un'implementazione dell'algoritmo k-nearest neighbors (KNN). Non lasciarti sopraffare, analizziamo poco a poco cosa significa. Apprendimento automatico Machine Learning è una raccolta di tecniche per creare o ottimizzare i modelli. In altre parole, Machine Learning prende i modelli che abbiamo costruito e usa i dati del mondo reale per "imparare" come mettere a punto i parametri del modello per essere più utili in uno scenario del mondo reale basato sui dati di addestramento. In questo tutorial applicheremo l'apprendimento automatico a un modello di classificazione. Non preoccuparti se non sei del tutto chiaro in questo momento, alla fine del tutorial saprai esattamente di cosa sto parlando. Set di allenamento vs set di prova Gli algoritmi di Machine Learning adattano il modello in base a una serie di dati di addestramento. I dati di allenamento sono un set di dati che contiene tutte le variabili che abbiamo a disposizione e la corretta classificazione. I set di allenamento possono essere sviluppati in vari modi, ma in questo tutorial utilizzeremo un set di allenamento classificato da un esperto umano. È importante ricordare che i modelli di apprendimento automatico sono validi solo quanto i dati di addestramento. Più sono accurati i tuoi dati di allenamento e più ne hai, meglio è. In altre parole: spazzatura dentro, spazzatura fuori. Un set di test è in genere un sottoinsieme dei dati di addestramento in quanto contiene anche tutte le variabili e le classificazioni corrette. La differenza sta nel modo in cui lo usiamo. Mentre il set di allenamento aiuta a sviluppare il modello, il set di test lo prova in uno scenario reale e vede come se la cava bene. Esistono molti modi complicati per misurare gli errori e testare i modelli, ma finché ottieni l'idea di base possiamo andare avanti. Machine learning con excel : Modelli di classificazione Un modello di classificazione è semplicemente uno strumento matematico per determinare quale categoria o classe di qualcosa hai a che fare in base a un insieme di variabili o input. Ad esempio, se volessi classificare se un animale è un gatto o un pesce, potrei usare variabili come se l'animale nuota o meno, se ha o meno la pelliccia e se mangia o meno per determinare quale classe appartiene sotto. Noterai due cose. In primo luogo, più variabili hai, meglio è. Con ulteriori informazioni, puoi essere più sicuro che la tua classificazione sia corretta. In secondo luogo, alcune variabili sono più utili o predittivedi altri. Prendi l'ultimo esempio, indipendentemente dal fatto che l'animale mangi o meno. L'osservatore casuale sa che sia i pesci che i gatti mangiano, quindi avere questo dato non è utile per determinare la classe dell'animale. L'obiettivo del machine learning in questo contesto è quello di creare il modello di classificazione più utile dati i dati disponibili e di eliminare gli input che non migliorano l'efficacia del modello. Machine learning con excel : K-Nearest Neighbors K-Nearest Neighbors (KNN) è un tipo specifico di modello di classificazione. L'intuizione è semplice da capire. Il modello prende tutti i dati disponibili su un punto dati sconosciuto e li confronta con un set di dati di addestramento per determinare a quali punti in quel set di addestramento il punto sconosciuto è più simile o più vicino. L'idea è che il punto dati sconosciuto molto probabilmente rientrerà nella stessa classe dei punti dati noti a cui è più simile. KNN è semplicemente un modo matematico per determinare la somiglianza tra due punti dati. Il set di dati dell'iris Per questo tutorial utilizzeremo un set di dati classico utilizzato per insegnare l'apprendimento automatico chiamato Iris Data Set . Questa è una raccolta di dati su tre specie di fiori di Iris e quattro dati su di esse: lunghezza del sepalo, larghezza del sepalo, lunghezza del petalo e larghezza del petalo. Il set di dati è già stato preparato per facilitare l'accesso ai principianti. Puoi scaricare i dati in un formato excel compatibile a questo link facendo clic su "scarica zip" in alto a destra e aprendo i contenuti in Excel. Machine learning con excel : Preparare i nostri dati Come ho già detto, questo set di dati è pensato per essere semplice da utilizzare. Ognuna delle prime 4 colonne (AD) è una dimensione, o caratteristica, dei dati. La quinta colonna, E, è la varietà o la classe del fiore. Ogni riga è il proprio record o punto dati. Come puoi vedere, abbiamo 150 punti dati noti con cui lavorare. Abbiamo una decisione importante da prendere: come vogliamo segregare questo set di dati in un set di addestramento e un set di test. Dato un set di dati più grande, ci sono tecniche di ottimizzazione che potremmo usare per prendere questa decisione. Poiché questo set di dati è piccolo e pensato per i principianti, lo divideremo 70/30 per convenzione. In altre parole, utilizzeremo il 70% dei dati, ovvero 105 punti dati come set di addestramento e i restanti 45 punti dati come set di test. Ora useremo Excel per campionare casualmente il 70% dei dati. Innanzitutto, aggiungi una colonna al tuo foglio chiamata "Valore casuale" e usa la funzione RAND() per selezionare casualmente un valore compreso tra 0 e 1. Tieni presente che la funzione RAND() riseleziona un nuovo numero ogni volta che il tuo foglio ricalcola. Per evitarlo, dopo aver generato i miei numeri li copierò (Ctrl+C) e poi li incollerò in modo speciale come valori (Ctrl+Shift+V) in modo che rimangano fissi. Inizieremo nella cella F2 e trascineremo fino all'ultimo punto dati. =RAND() Successivamente li classificherò da 1 a 150 utilizzando la funzione RANK() di Excel, iniziando nella cella G2 come mostrato di seguito e trascinando fino all'ultimo punto dati. Assicurati di bloccare il quadro di riferimento come mostrato premendo F4 o aggiungendo manualmente i segni $, altrimenti questa formula non funzionerà come previsto. =RANGO(F2, $F$2:$F$15) Ora abbiamo un valore univoco compreso tra 1 e 150 per ciascun punto dati. Poiché vogliamo 105 valori per il nostro set di allenamento, aggiungeremo un'altra colonna e selezionare i valori classificati da 1 a 105 per il nostro set di allenamento utilizzando una funzione IF() rapida. In caso contrario, aggiungeremo il valore al nostro set di test. Di nuovo, inizieremo da H2 e trascineremo fino all'ultimo punto dati. =SE(G2<=105,”Train”, “Test”) A questo punto il tuo set di dati dovrebbe essere impostato come lo screenshot. Ricorda che poiché ognuno di noi ha preso un campione casuale diverso, i valori specifici nelle colonne FH avranno un aspetto diverso per te. Dovresti anche dedicare un minuto all'aggiunta di filtri per il nostro passaggio successivo. Successivamente suddivideremo i nostri due set di dati nei loro fogli di lavoro (o schede) per mantenere le cose organizzate. Crea un nuovo foglio di lavoro chiamato "Training Set" e filtra i dati "Training" nel foglio di lavoro originale. Copia questi dati insieme alle intestazioni e incollali nel tuo "Training Set". Dovresti avere 106 righe (105 valori + la riga di intestazione). Fai lo stesso per il foglio di lavoro "Set di test". Dovresti avere 46 righe (45 valori + la riga di intestazione). A questo punto puoi eliminare il foglio di lavoro "Iris" ed eliminare le colonne FH in entrambi i fogli di lavoro rimanenti poiché abbiamo già separato i nostri dati. Infine, aggiungerò una colonna "ID" all'inizio di ogni foglio di lavoro ed etichetterò ciascun punto dati rispettivamente 1–105 e 1–45 semplicemente digitando il numero (trascinando verso il basso il quadratino di riempimento sarà tuo amico qui per salvarti il lavoro ). Questo ci aiuterà a fare i nostri calcoli nelle prossime sezioni. Assicurati che ciascuno dei tuoi set sia organizzato come nell'esempio seguente. Machine learning con excel : Costruire il modello I nostri dati sono ora pronti e possiamo procedere alla costruzione del nostro modello. Come promemoria, questo modello funziona confrontando il punto dati sconosciuto che desideriamo classificare con i suoi k più vicini o più simili. Per fare ciò dovremo prendere ogni punto nel nostro set di test e calcolare la sua distanza da ciascun punto nel set di allenamento. per k intendiamo "oggetti o istanze" dello stesso tipo Machine learning con excel : Il concetto di distanza La distanza è il modo in cui i matematici determinano quali punti sono più simili in uno spazio n-dimensionale. L'intuizione è che più piccola è la distanza tra i punti più sono simili. La maggior parte di noi è abituata a calcolare la distanza in uno spazio bidimensionale, come un sistema di coordinate x,y, o usando longitudine e latitudine. Esistono diversi modi per calcolare la distanza, ma per semplificare utilizzeremo la distanza euclidea. Di seguito è riportata una visualizzazione della formula della distanza euclidea in uno spazio bidimensionale. Come puoi vedere, la formula funziona creando un triangolo rettangolo tra due punti e determinando la lunghezza dell'ipotenusa, il lato più lungo del triangolo, come identificato dalla freccia. Il nostro set di dati è a 4 dimensioni. È difficile per noi visualizzare spazi oltre le 3 dimensioni, ma indipendentemente dal fatto che tu possa visualizzarlo o meno possiamo comunque calcolare la distanza tra due punti allo stesso modo indipendentemente dal numero di dimensioni. Ecco la formula generica per la distanza euclidea: In parole povere questo sta dicendo è che la distanza euclidea tra due punti, q & p, può essere determinata prendendo ogni dimensione per ogni punto, a partire dalla prima dimensione, e quadrando la differenza tra loro in modo iterativo finché non lo hai fatto per tutte le dimensioni e sommate le differenze. Quindi prendiamo la radice quadrata di quella somma e abbiamo la distanza euclidea. Sembra complicato ma vedrai che in realtà è abbastanza semplice da usare una volta che torniamo nei nostri dati. Machine learning con excel : Calcolo della distanza Nella nostra cartella di lavoro, crea un nuovo foglio di lavoro chiamato "Distanza". Il nostro obiettivo per questo foglio è creare una matrice 45X105 delle distanze tra ciascun punto dati nel set di test e il set di allenamento. Nel nostro caso, ogni riga corrisponderà a un punto dati nel set di test e ogni colonna corrisponderà a un punto dati nel set di addestramento. Partendo da A2 e procedendo riga per riga fino a raggiungere A46, riempi ogni cella con i numeri 1–45. Anche in questo caso, il quadratino di riempimento è utile qui, quindi non è necessario digitare i numeri uno per uno. Ora, lavorando da B1 e poi colonna per colonna orizzontalmente fino a quando non colpisci DB1, riempi ogni colonna con i numeri 1–105. La tua matrice dovrebbe assomigliare allo screenshot qui sotto che ne mostra una piccola parte. Prima di andare avanti, dovrai convertire la tua matrice in una tabella in modo da poter mantenere le cose organizzate. Seleziona l'intera matrice e premi Ctrl+T, quindi nomina la tabella "Distance_Table" e seleziona per creare la tabella con le intestazioni. Successivamente, ti consigliamo di nominare la tua prima colonna "ID test" digitandolo nella cella A1. Ora che la nostra tabella è impostata possiamo iniziare i nostri calcoli. Inizieremo nella cella B2 che calcolerà la distanza tra il primo punto nel nostro Training Set (ID #1) e il primo punto nel nostro Test Set (ID #1). Possiamo applicare rapidamente la formula della distanza euclidea utilizzando la funzione CERCA.VERT in Excel per trovare i valori per ciascuna dimensione e quindi eseguire i calcoli secondo necessità. È meglio copiare e incollare questa formula nella barra della formula nella cella B2 poiché gestisce un paio di particolarità della funzione Tabella in Excel, ma assicurati di capire che tutto ciò che questa formula sta facendo è applicare la formula Distanza euclidea di cui abbiamo discusso in precedenza. Come scritto, puoi quindi trascinarlo per riempire l'intera tabella. =SQRT(((VLOOKUP(NUMBERVALUE(Distance_Table[[#Headers],[1]]), ‘Training Set’!$A$1:$F$106, 2, FALSE)-VLOOKUP(Distance_Table[@[Test ID]:[Test ID]], ‘Test Set’!$A$1:$F$46, 2, FALSE)) ^ 2+(VLOOKUP(NUMBERVALUE(Distance_Table[[#Headers],[1]]), ‘Training Set’!$A$1:$F$106, 3, FALSE)-VLOOKUP(Distance_Table[@[Test ID]:[Test ID]], ‘Test Set’!$A$1:$F$46, 3, FALSE)) ^ 2+(VLOOKUP(NUMBERVALUE(Distance_Table[[#Headers],[1]]), ‘Training Set’!$A$1:$F$106, 4, FALSE)-VLOOKUP(Distance_Table[@[Test ID]:[Test ID]], ‘Test Set’!$A$1:$F$46, 4, FALSE)) ^ 2+(VLOOKUP(NUMBERVALUE(Distance_Table[[#Headers],[1]]), ‘Training Set’!$A$1:$F$106, 5, FALSE)-VLOOKUP(Distance_Table[@[Test ID]:[Test ID]], ‘Test Set’!$A$1:$F$46, 5, FALSE)) ^ 2)) Dovresti finire con qualcosa del genere: Machine learning con excel : Trovare i K più vicini A questo punto abbiamo calcolato la distanza tra ogni punto del nostro set di test e ogni punto del nostro set di allenamento. Ora dobbiamo identificare i k più vicini a ciascun punto nel nostro set di test. Crea un nuovo foglio di lavoro chiamato "k più vicini" e iniziando da A2 lavora riga per riga per riempire le celle con i numeri 1–45 in modo che corrispondano ai punti nel nostro set di test. Le nostre colonne non rappresenteranno il Training Set come nei fogli precedenti. Invece, questi rappresenteranno i 6 k più vicini, iniziando con il primo più vicino e poi il secondo più vicino e così via. Il primo vicino più vicino ha la distanza più piccola, il secondo vicino più vicino ha la seconda distanza più piccola e così via. Il tuo foglio dovrebbe assomigliare a questo: Come abbiamo già fatto, scriveremo una formula nella cella B2 che può essere trascinata per riempire il resto della nostra matrice. Il nostro approccio consiste nell'identificare il valore più piccolo nella riga corrispondente (2) nella tabella delle distanze, trovare il numero di colonna per quel valore e quindi restituire il nome della colonna poiché questo ci darà l'ID del valore nel Training Set. Utilizzeremo una combinazione delle funzioni Indice e Match per raggiungere questo obiettivo. Nota che siamo in grado di semplificare questa formula perché abbiamo avuto la lungimiranza di impostare la nostra matrice Distanza come tabella in Excel e quindi possiamo facilmente inserire le intestazioni. =INDEX(Distance_Table[#Headers], MATCH(SMALL(Distance!$B2:$DB2, 1), Distance!2:2, FALSE)) Trascina questa formula per riempire la riga superiore della matrice dei tuoi k più vicini. Dovrai regolare manualmente il valore in grassetto nella funzione SMALL() per rappresentare il vicino che stiamo cercando. Quindi, ad esempio, per trovare il secondo vicino più vicino la formula sarebbe la seguente. =INDEX(Distance_Table[#Headers], MATCH(SMALL(Distance!$B2:$DB2, 2), Distance!2:2, FALSE)) Ricorda che i tuoi valori saranno diversi poiché il tuo campione casuale utilizzato per formare il set di test è diverso dal mio. A questo punto, di solito mi prendo un minuto per ricontrollare manualmente una delle righe quando possibile solo per assicurarmi che le mie formule funzionino come previsto. Su larga scala ti consigliamo di utilizzare i test automatizzati, ma per ora lo stiamo semplificando. Abbiamo un ultimo passaggio: dobbiamo identificare la classificazione di ciascuno dei nostri vicini più prossimi. Torneremo alla formula in B2 e la modificheremo per eseguire un VLOOKUP dell'ID nel Training Set e restituire la classifica. Lo trascineremo quindi per riempire la matrice. =VLOOKUP(NUMBERVALUE(INDEX(Distance_Table[#Headers], MATCH(SMALL(Distance!$B2:$DB2, 1), Distance!2:2, FALSE))), ‘Training Set’!$A$1:$F$106, 6, FALSE) Fare un passo indietro Facciamo un passo indietro e guardiamo cosa abbiamo realizzato. Ora hai identificato per ogni punto nel tuo test impostato la classificazione per i 6 k più vicini. Probabilmente noterai che per tutti o quasi tutti i tuoi punti dati i 6 k più vicini rientreranno tutti nella stessa classificazione. Ciò significa che il nostro set di dati è altamente raggruppato. Nel nostro caso, i nostri dati sono altamente raggruppati per due motivi. In primo luogo, come discusso all'inizio del tutorial, il set di dati è progettato per essere facile da usare. In secondo luogo, questo è un set di dati a bassa dimensione poiché stiamo lavorando solo con 4 dimensioni. Man mano che gestisci i dati del mondo reale, scoprirai in genere che sono molto meno raggruppati, soprattutto all'aumentare del numero di dimensioni. Minore è il raggruppamento dei dati, maggiore dovrà essere il training set per creare un modello utile. Ottimizzazione con l'apprendimento automatico Se i nostri dati fossero sempre raggruppati in modo ordinato come il set di dati Iris, non ci sarebbe bisogno dell'apprendimento automatico. Troveremmo semplicemente il vicino più vicino usando la nostra formula e la useremmo per determinare la classificazione di ogni punto dati sconosciuto. Poiché di solito non è così, l'apprendimento automatico ci aiuta a prevedere con maggiore precisione la classificazione di un punto dati sconosciuto osservando più vicini contemporaneamente. Ma quanti vicini dobbiamo guardare? È qui che entra in gioco la "K" in K-Nearest Neighbors. K descrive il numero di vicini che prenderemo in considerazione quando prevediamo la classificazione di un punto dati sconosciuto. Troppi pochi o troppi vicini Intuitivamente, è importante capire perché questo problema è complicato. È possibile guardare troppo pochi vicini e anche troppi vicini. Soprattutto con l'aumento del numero di dimensioni, è possibile che il vicino più vicino non sia sempre la classificazione corretta. Guardare troppo pochi vicini limita la quantità di informazioni che il tuo modello ha a disposizione per fare la sua determinazione. Considerare troppi vicini degraderà effettivamente la qualità delle informazioni utilizzate dal tuo modello come input. Questo perché man mano che vengono introdotti più vicini, si introduce anche rumore nei dati. Pensaci: non avrebbe senso considerare tutti i 104 vicini nel nostro esempio! Vedere una rappresentazione visiva di questo concetto di seguito. Quindi questo diventa un classico problema di ottimizzazione in cui tentiamo di trovare il valore K che fornisce la maggior parte delle informazioni senza essere troppo alto o troppo basso. Usiamo il tuo set di prova Per questo tutorial, utilizzeremo un processo molto semplice di tentativi ed errori per determinare il valore K ottimale. Prima di andare avanti, ti consiglio di guardare il foglio di lavoro k più vicini e di fare un'ipotesi su quale potrebbe essere il miglior valore k, solo per divertimento. Lo scopriremo presto se hai ragione! Machine Learning con Excel : Impostazione dell'algoritmo Un algoritmo è solo un insieme di passaggi che un computer deve ripetere più e più volte secondo un insieme definito di regole. In questo caso, diremo al computer di provare diversi valori K, calcoleremo il tasso di errore per ciascuno utilizzando il nostro set di test e quindi alla fine restituiremo il valore che produce il tasso di errore più basso. Per fare ciò dovremo creare un nuovo foglio di lavoro chiamato "Modello KNN". Lo configureremo come segue, etichettando le righe da A4 a A48 con 1–45 per ciascuno dei nostri punti dati di test. Iniziamo con il valore previsto nella colonna B. Abbiamo bisogno che questa formula si aggiusti in base al valore K. Nel caso in cui il valore K sia 1, la formula è semplice, prendiamo solo il vicino più vicino. =’Nearest Neighbors’!B2 Nel caso in cui il valore K sia maggiore di 1, prenderemo il vicino più comune che appare. Se l'occorrenza dei vicini è equamente distribuita, ad esempio se 3 dei vicini sono Setosa e 3 dei vicini sono Virginica quando K=6, ci si schiererà con la classificazione del vicino più prossimo. La formula per K=2 sarebbe la seguente. Usiamo IFERROR perché questa formula restituisce un errore quando ci sono due vicini che si verificano un numero uguale di volte per il valore K dato. =IFERROR(INDEX(‘Nearest Neighbors’!B2:C2,MODE(MATCH(‘Nearest Neighbors’!B2:C2,’Nearest Neighbors’!B2:C2,0))), ‘Nearest Neighbors’!B2) Ti consigliamo di utilizzare la formula espansa di seguito nella cella B4 che ti consente di utilizzare valori K fino a K = 6 incluso. Non c'è bisogno di preoccuparsi delle specifiche di questa formula, basta copiarla e incollarla. A proposito, dover usare formule complicate, schizzinose e difficili da capire come queste sono uno dei limiti di Excel a cui mi riferivo in precedenza. Questo sarebbe stato un gioco da ragazzi in Python. Nota che questa formula restituirà un errore se non c'è un valore in K o un valore non compreso tra 1 e 6. Dovresti copiare questa formula dalla cella B4 alla colonna B. =IFS($B$1=1, 'Nearest Neighbors'!B2, $B$1=2, IFERROR(INDEX('Nearest Neighbors'!B2:C2,MODE(MATCH('Nearest Neighbors'!B2:C2,'Nearest Neighbors'!B2:C2,0))), 'Nearest Neighbors'!B2), $B$1=3, IFERROR(INDEX('Nearest Neighbors'!B2:D2,MODE(MATCH('Nearest Neighbors'!B2:D2,'Nearest Neighbors'!B2:D2,0))), 'Nearest Neighbors'!B2), $B$1=4, IFERROR(INDEX('Nearest Neighbors'!B2:E2,MODE(MATCH('Nearest Neighbors'!B2:E2,'Nearest Neighbors'!B2:E2,0))), 'Nearest Neighbors'!B2), $B$1=5, IFERROR(INDEX('Nearest Neighbors'!B2:F2,MODE(MATCH('Nearest Neighbors'!B2:F2,'Nearest Neighbors'!B2:F2,0))), 'Nearest Neighbors'!B2),$B$1=6, IFERROR(INDEX('Nearest Neighbors'!B2:G2,MODE(MATCH('Nearest Neighbors'!B2:G2,'Nearest Neighbors'!B2:G2,0))), 'Nearest Neighbors'!B2)) Successivamente, vogliamo inserire la classificazione effettiva e nota di ciascun punto di test in modo da poter determinare se il nostro modello aveva ragione o meno. Per questo utilizziamo un rapido VLOOKUP nella colonna C, partendo dalla cella C4 e trascinando verso il basso. =VLOOKUP(A4, ‘Test Set’!$A$1:$F$46, 6, FALSE) Quindi imposteremo una formula nella colonna D per restituire un 1 se la previsione era errata o errata e uno 0 se la previsione era corretta. Inizierai nella cella D4 e trascinerai la formula verso il basso. =IF(B4=C4, 0, 1) Infine calcoleremo il tasso di errore dividendo il numero di errori per il numero totale di punti dati, utilizzando questa formula nella cella B2. Per convenzione lo formatteremo come percentuale. =SUM(D4:D48)/COUNT(D4:D48) Machine Learning con Excel : Esecuzione dell'algoritmo Ora siamo pronti per eseguire il nostro algoritmo per diversi valori K. Poiché stiamo testando solo 6 valori, potremmo farlo a mano. Ma non sarebbe divertente e, cosa più importante, non scala. Prima di procedere , dovrai abilitare il componente aggiuntivo Risolutore per Excel seguendo le istruzioni in questo articolo. Ora vai alla barra multifunzione Dati e fai clic sul pulsante Risolutore. Il pulsante del risolutore esegue automaticamente le prove e gli errori secondo le nostre istruzioni. Avrai una finestra di dialogo di parametri o istruzioni, che vorrai impostare come mostrato di seguito. Lo stiamo configurando in modo che cerchi di ridurre al minimo il tasso di errore durante il test di valori compresi tra 1 e 6, testando solo valori interi . Excel girerà per un minuto e potresti vedere lampeggiare alcuni valori sullo schermo prima di visualizzare questa finestra di dialogo. È necessario fare clic su OK per mantenere la soluzione del risolutore. Interpretazione del tasso di errore e della soluzione del risolutore Molti algoritmi di ottimizzazione hanno più soluzioni a causa del fatto che i dati hanno più minimi o massimi. Questo è successo nel mio caso. Infatti, nel mio caso particolare, tutti i valori interi da 1 a 6 rappresentano i minimi con un tasso di errore di circa il 2%. Quindi, cosa facciamo ora? Alcune cose mi passano per la testa. Innanzitutto, questo set di test non è molto buono. Il modello non ha ottenuto alcun vantaggio di ottimizzazione dal set di test e, in quanto tale, probabilmente rifarei il set di test e riprovare per vedere se ottengo risultati diversi. Considererei anche l'utilizzo di metodi di test più sofisticati come la convalida incrociata. A un tasso di errore così basso nel mio set di test, comincio anche a preoccuparmi di un adattamento eccessivo. L'overfitting è un problema che si verifica nell'apprendimento automatico quando un modello è troppo adattato alle sfumature di un particolare set di dati di addestramento o test. Quando un modello è troppo adatto, non è così predittivo o efficace quando incontra nuovi dati in natura. Ovviamente, con un set di dati accademici come questo ci aspetteremmo che il nostro tasso di errore fosse piuttosto basso. La considerazione successiva è quale valore scegliere se ho identificato diversi minimi. Sebbene il test non sia stato efficace in questo particolare esempio, in genere sceglierei il numero più basso di vicini che è al minimo per risparmiare risorse di calcolo. Il mio modello funzionerà più velocemente se deve considerare meno vicini. Non farà la differenza con un piccolo set di dati, ma decisioni come questa consentono di risparmiare risorse sostanziali su larga scala. Conclusione sul Machine Learning con Excel Complimenti! Hai imparato le basi dell'apprendimento automatico e implementato l'algoritmo KNN senza uscire dai confini di Excel. Ricorda che Excel è semplicemente uno strumento e che la parte importante è comprendere i concetti che fanno funzionare questo approccio. Comprendere i fondamenti ti aiuterà ad approfondire la scienza dei dati e l'apprendimento automatico e iniziare a sviluppare i tuoi modelli. Ora però il nostro consiglio è quello di iniziare a utilizzare Python o strumenti più scalabili di excel.
- Cos'è il TinyML o Tiny Machine Learning ?
Scopriamo insieme un sottosezione di machine learning (ML) chiamata Tiny Machine Learning (TinyML), che cos'è, le sue applicazioni, i requisiti hardware e software e i suoi vantaggi. TinyML è un tipo di machine learning che riduce le reti di deep learning per adattarle a hardware minuscolo. Riunisce intelligenza artificiale e dispositivi intelligenti. Sono 45x18mm di Intelligenza Artificiale in tasca . Improvvisamente, il progetto del fine settimana fai-da-te sulla tua scheda Arduino ha un modello di apprendimento automatico in miniatura incorporato al suo interno. I dispositivi embedded a bassissima potenza stanno invadendo il nostro mondo e, con i nuovi framework embedded di machine learning, consentiranno ulteriormente la proliferazione di dispositivi IoT basati sull'intelligenza artificiale. Cos'è TinyML ? E, cosa più importante, per cosa può (e non può) essere utilizzato? L'apprendimento automatico (ML) è un campo dinamico e potente dell'informatica che ha permeato quasi ogni cosa digitale con cui interagiamo, siano essi i social media, i nostri telefoni cellulari, le nostre auto o persino gli elettrodomestici. Tuttavia, ci sono molti posti in cui ML vorrebbe andare ma ha difficoltà a raggiungerlo. Ciò è dovuto al fatto che molti modelli di apprendimento automatico all'avanguardia richiedono risorse di elaborazione e consumo di energia significativi per eseguire l'inferenza, che è l'atto di eseguire i modelli ML e fare previsioni sui dati immessi. La necessità di risorse di elaborazione ad alte prestazioni ha confinato molte applicazioni ML nel cloud, dove l'elaborazione a livello di data center è prontamente disponibile. Per consentire al ML di ampliare la sua portata e sbloccare una nuova era di applicazioni nel processo, dobbiamo trovare modi per facilitare l'inferenza del ML su dispositivi più piccoli e con risorse limitate. Questa ricerca ha portato al campo noto come Tiny Machine Learning o TinyML (un termine registrato dalla TinyML Foundation che è diventato sinonimo di tecnologia). Che cos'è Tiny Machine Learning o TinyML? L'apprendimento automatico stesso è una tecnologia che utilizza algoritmi chiamati reti neurali (un esempio è mostrato nella Figura 1) per insegnare a un computer a riconoscere i modelli. Questo viene estrapolato a una varietà di applicazioni tra cui il riconoscimento di oggetti e l'elaborazione del linguaggio naturale. Figura 1. Una visualizzazione di un esempio di rete neurale Perceptron. TinyML, d'altra parte, può essere definito come un sottocampo di ML che persegue l'abilitazione di applicazioni ML su dispositivi economici, nonché con risorse e potenza limitate. L'obiettivo di TinyML è portare l'apprendimento automatico all'edge in modo estremo, in cui i dispositivi embedded basati su microcontroller alimentati a batteria possono eseguire attività ML con reattività in tempo reale. Questo sforzo è straordinariamente multidisciplinare e richiede l'ottimizzazione e la massimizzazione in campi quali hardware, software, scienza dei dati e apprendimento automatico. Il campo ha in gran parte guadagnato popolarità negli ultimi anni a causa della maturazione degli ecosistemi hardware e software che ne sono alla base. Applicazioni del TinyML : Che tu te ne renda conto o meno, TinyML è probabilmente una parte della tua vita quotidiana in qualche modo. Le applicazioni per TinyML includono: individuazione delle parole chiave riconoscimento e classificazione degli oggetti riconoscimento gestuale rilevamento dell'audio monitoraggio della macchina Un esempio di applicazione TinyML nella vita quotidiana è il modello di rilevamento della parola sveglia audio utilizzato all'interno dei dispositivi Google e Android. Un esempio di componenti di rilevamento delle parole di riattivazione è mostrato nella Figura 2. Per "accendersi" quando sentono le parole "OK Google", i dispositivi Android utilizzano un modello ML di rilevamento vocale da 14 kB che funziona su un DSP. Lo stesso si può dire per molti altri assistenti virtuali. Figura 2. Componenti per un'applicazione wake-word. Altri esempi di applicazioni TinyML degli studenti di Harvard includono il rilevamento dei cervi in autostrada per le auto (un esempio di rilevamento di oggetti), il rilevamento di zanzare basato sull'audio (un esempio di riconoscimento audio) e molti altri. Hardware utilizzato nelle applicazioni TinyML Quando si tratta del lato hardware delle cose, TinyML è impressionante in quanto mira a lavorare su hardware piuttosto insignificante. Da un certo punto di vista, il vero obiettivo di TinyML è eseguire l'inferenza ML alla minor potenza possibile. Pete Warden , ampiamente considerato il padre di TinyML, afferma nel suo libro fondamentale sull'argomento che TinyML dovrebbe mirare a funzionare con un consumo energetico inferiore a 1 mW . La ragione di questo numero apparentemente arbitrario è che il consumo di 1 mW rende un dispositivo in grado di funzionare con una batteria a bottone standard con una durata ragionevole da mesi a un anno. Quindi, quando pensi alle fonti di alimentazione per TinyML, pensa alle batterie a bottone, alle piccole batterie Li-Po e ai dispositivi di raccolta dell'energia. Dal punto di vista del calcolo, TinyML non si basa su unità di elaborazione grafica (GPU), circuiti integrati specifici dell'applicazione (ASIC) e microprocessori come la maggior parte delle applicazioni ML. Un esempio di kit di apprendimento che utilizza un Arduino può essere visto nella Figura 3. Figura 3. Un esempio di TinyML Learning Kit. Per raggiungere gli elevati obiettivi di 1 mW, siamo quasi esclusivamente limitati a hardware di elaborazione meno capaci come microcontrollori (MCU) e processori di segnali digitali (DSP). Questi dispositivi sono spesso basati su Cortex-M e ci si può aspettare che non abbiano più di poche centinaia di kB di RAM, quantità simili di flash e velocità di clock di decine di MHz. Oltre a questo, altro hardware che potresti aspettarti di trovare su un dispositivo TinyML include sensori (ad es. fotocamera, microfono) e possibilmente una connettività BLE (Bluetooth Low Energy). Software TinyML: TensorFlow In molti modi, il software alla base degli strumenti e dei concetti alla base di TinyML è la sua caratteristica più importante. In generale, l'ecosistema più popolare e integrato per lo sviluppo di TinyML è TensorFlow Lite for Microcontrollers (TF Lite Micro). Un flusso di lavoro generalizzato per TinyML su TF Lite Micro è mostrato di seguito nella Figura 4. TF Lite Micro è stato progettato specificamente per l'attività di ML su dispositivi con risorse limitate, con al centro gli MCU. Un ambiente basato su Python, TF Lite Micro è pieno di librerie e toolkit integrati per: Acquisizione dei dati Preelaborazione Architettura del modello Addestramento Valutazione Ottimizzazione Quantizzazione Figura 4. Il flusso di lavoro di TensorFlow Lite Micro. Come toccheremo negli articoli successivi, la quantizzazione è davvero la salsa segreta che rende possibile TinyML. Ma in breve e in minima parte, la quantizzazione è un processo mediante il quale si riduce la precisione (dimensione in bit) dei pesi e delle distorsioni di un modello in modo tale che il modello occupi meno memoria, funzioni più velocemente e richieda meno energia, il tutto con un minimo di precisione! Con un modello quantizzato, la maggior parte delle applicazioni dei dispositivi TinyML sono scritte in C/C++ per un sovraccarico minimo. Vantaggi di TinyML Il principale vantaggio di TinyML è la sua portabilità. L'utilizzo di microcontrollori economici con batterie minuscole e basso consumo energetico significa che, utilizzando TinyML, è possibile integrare facilmente ML praticamente in qualsiasi cosa a basso costo. Inoltre, TinyML ha anche il vantaggio di una maggiore sicurezza grazie alla natura locale dell'elaborazione, ovvero non è necessario inviare i dati al cloud. Questo può essere significativo quando si lavora con i dati personali in applicazioni come IoT. Con una solida introduzione al campo di TinyML, ora possiamo approfondire gli aspetti più tecnici del campo nel prossimo articolo. TinyML e il suo futuro Nel 2020, Harvard ha lanciato il corso CS249R: Tiny Machine Learning , affermando che "la crescita esplosiva dell'apprendimento automatico e la facilità d'uso di piattaforme come TensorFlow (TF) lo rendono un argomento di studio indispensabile per lo studente di informatica moderno". Oggi ci sono oltre 250 miliardi di dispositivi embedded attivi nel mondo, con una crescita prevista del 20% annuo . Questi dispositivi stanno raccogliendo grandi quantità di dati e l'elaborazione nel cloud ha rappresentato una vera sfida. Di questi 250 miliardi di dispositivi, circa 3 miliardi attualmente in produzione sono in grado di supportare TensorsFlow Lite attualmente in produzione. TinyML potrebbe colmare il divario tra hardware edge e intelligenza del dispositivo. Rendere TinyML più accessibile agli sviluppatori sarà fondamentale per consentire alla proliferazione di massa dell'apprendimento automatico incorporato di trasformare i dati sprecati in informazioni fruibili e per creare nuove applicazioni in molti settori. Con l'emergere di nuovi tipi di interfacce uomo-macchina (HMI) e il numero di dispositivi intelligenti in aumento, TinyML ha il potenziale per incorporare l'intelligenza artificiale e l'informatica ai margini onnipresenti, più economici, scalabili e più prevedibili, cambiando il paradigma nel ML.
- Come vengono utilizzati i dati nel calcio
È difficile immaginare che ai giorni nostri il calcio sia ancora nei secoli bui in termini di capacità di utilizzare i dati per aiutare il gioco e, a sua volta, aiutare lo sport. Ma non è così. Mentre molti team esteri utilizzano i dati nel mondo del calcio, pochi in Italia sanno a cosa servono realmente i dati nel gioco. Con i rapidi progressi della tecnologia, i dati stanno diventando uno strumento essenziale per gli sviluppatori di metodi di coaching e per gli appassionati di questo sport. I dati nel mondo del calcio I dati vengono utilizzati in vari modi nel calcio, sia per dare maggiori opportunità a un giocatore o per ottenere un vantaggio rispetto alla concorrenza. I dati sono uno degli aspetti più importanti del calcio e vengono utilizzati per aiutare le squadre. In questo post del blog noi di Soccerment, vi spiegheremo gli utilizzi dei dati nel calcio e come anche voi potete iniziare ad approcciarvi a questo mondo. Il calcio è uno degli sport più popolari al mondo. Questo sport molto divertente ha un ruolo molto significativo nella società. - curiosità Il mondo del calcio è in continua evoluzione. Nel corso degli anni, club, giocatori e manager hanno utilizzato i dati a proprio vantaggio, per aiutare nel processo decisionale, nello scouting, nella tattica e nella selezione dei giocatori. Man mano che il gioco si evolve, aumenta anche il ruolo dei dati nel calcio. Adesso entriamo nelle specifico e vediamo punto punto come relamente come vengono utilizzati i dati nel calcio Come vengono utilizzati i dati nel calcio ? Le applicazioni dei dati nel mondo del calcio sono molteplici ed in particolare sono suddivisibili in tre macro aree: Scouting: utilizzo di dataset permette di visionare i calciatori in modo più efficiente rispetto ai metodi tradizionali. I dati sono usati come collo largo di un processo di selezione a “imbuto” che verranno filtrati secondo gli obiettivi dello scout, fino alla creazione di una shortlist. Questi calciatori verranno poi osservati tramite una fase di scouting più tradizionale. Team/opposition analysis: analisi tecnico-tattica delle prestazioni della propria squadra per individuare punti di forza e punti di debolezza e per valutare in modo più oggettivo trend recenti. Il medesimo approccio si può applicare all’avversario in preparazione della partita. Valutazione di performance atletica e tecnica in allenamento: l’utilizzo dei dati atletici in allenamento ha un raggio di applicazione più esteso, grazie alle pettorine GPS. Anche questo campo presenta innovazioni, come ad esempio l’innovativo Smart Wearables come XSEED di Soccerment, che permette la raccolta di dati sia atletici che tecnici, garantendo un'analisi ancora più profonda delle performance del calciatore. Chi si occupa di analizzare i dati nel calcio ? Il Football Data Analyst I data analyst sono figure professionali sempre più ricercate all’interno delle squadre di calcio. Inserito in un team specializzato questa figura avrà l’obiettivo di focalizzarsi sulla parte di data science sfruttando le proprie conoscenze di Machine Learning e di Data Visualization. A livello pratico un Football Data Analyst dovrà essere in grado di tradurre domande e problemi calcistici in data problems, valutarne la fattibilità e comunicarne i risultati, questo ri-traducendoli dal linguaggio macchina al linguaggio calcistico. L’analista deve quindi avere anche una buona conoscenza dello sport di riferimento, infatti la domain knowledge è fondamentale in ogni processo di Machine Learning o Data Science. Sfruttare i dati nel calcio usando il Machine Learning Dopo aver visto, come i dati possono cambiare il mondo del calcio, tramite il loro utilizzo e grazie alle nuove figure professionali, noi di Soccerment vogliamo spiegarvi di più. Ad oggi, nel mondo del calcio, ci sono 3 principali metodologie per sviluppare un Machine Learning efficiente: Modelli di regressione logistica (supervised learning): le metriche avanzate più note, come ad esempio gli xG, sono basati su modelli di regressione logistica binaria, dove le variabili predittive sono principalmente date dalla posizione del tiro, da informazioni contestuali come la situazione di gioco e dal tipo di assist se presente. Nella pratica questi modelli vengono implementati con diversi strumenti a seconda del contesto, dalla regressione logistica classica a strumenti come alberi decisionali, metodi di ensemble (random forest, gradient boosting), fino alle reti neurali. Modelli di clustering per classificazione (unsupervised learning): il clustering è una tecnica utilizzata principalmente per classificare giocatori e squadra in base allo stile di gioco. Tipicamente questo processo consiste in questi passaggi: Creazione di un dataset con un certo numero di statistiche Preprocessing, ossia standardizzazione o normalizzazione seguita da riduzione di dimensionalità tramite metodi come PCA, UMAP o altri Creazione di un modello di clustering con vari possibili scelte di algoritmo, dal semplice KMeans a modelli più complessi come Gaussian Mixture (usato da Soccerment) . Data Visualization: una componente fondamentale della football analytics è la fase di comunicazione dei risultati, e quindi traduzione dell’analisi, e del suo esito, dai termini matematici, statistici e informatici a quelli calcistici. È sempre consigliabile utilizzare la forma grafica per rendere fin da subito i risultati intuitivi e fruibili. Proprio per questo le capacità di data visualization sono assolutamente necessarie, nonostante siano tra le meno tecniche presenti nel machine learning. Nel libro The Clustering Project pubblicato da Soccerment troviamo un interessante esempio di utilizzo di questo algoritmo per classificare i giocatori in base alla loro funzione in campo, discostandosi definitivamente da concetti obsoleti basati unicamente sulla loro posizione sul terreno di gioco (terzino, punta, etc.). Esempi di utilizzo dei dati nel calcio Ecco qualche esempio di lavori prodotti dai Football Data Analyst di Soccerment: Esempio dinamico prodotto dai Football Data Analyst di Soccerment: Vuoi imparare a usare i dati nel calcio ? Le singole conoscenze tecniche di statistica, di matematica e di programmazione sono solo una parte degli strumenti must-have affinchè un Football Data Analyst possa applicare questi metodi con profitto all’interno di una squadra di calcio.Proprio per questo Soccerment ha lanciato, in collaborazione con SICS, un corso di “Football Data Intelligence” dedicato alla formazione e certificazione del Data Analyst, con al suo interno docenti di spicco come Antonio Gagliardi (ex Head of Match Analysis Nazionale Italiana, FIGC, Assistant Coach), Francesco Bordin (Match Analyst e coach UEFA A) e Roberto Angioni (Head of Data Science di Soccerment). Il corso avrà come finale un esame attraverso il quale verranno individuati i migliori tre talenti che avranno la possibilità di svolgere uno stage in una Squadra di serie A, presso SICS e presso Soccerment. Chi è soccerment ? Soccerment è un'azienda Italiana specializzata in Football Data Intelligence. Attraverso lo sviluppo di strumenti per raccogliere e analizzare le prestazioni calcistiche, ha l’obiettivo di accelerare l’adozione dei dati nel calcio, con la convinzione che un approccio data-driven possa rivoluzionare lo sport più amato del mondo, rendendolo più meritocratico ed inclusivo per i giovani talenti e più efficiente ed economicamente sostenibile per club e talent scout. Grazie alla piattaforma di Football analytics, lo sviluppo di metriche avanzate proprietarie, una data visualization immediata ed accessibile e le innumerevoli pubblicazioni e ricerche, Soccerment sta diventando un punto di riferimento internazionale per club, scout, media e per la crescente community di Football Data Analytics. Grazie per aver letto l'articolo, a presto.
- Valutare le prestazioni dei modelli di Deep Learning
Il deep learning è un campo in continua evoluzione e in costante miglioramento nel consentire alle aziende di fare previsioni ancora più accurate. L'intelligenza artificiale non è solo per le grandi aziende con budget elevati, perché richiede molti dati, è anche uno strumento che può essere utilizzato da aziende di qualsiasi dimensione. Nel post del blog di oggi illustreremo come valutare le prestazioni dei modelli di deep learning. piu' nel particolare vedremo un esempio reale con python e keras. Come valutare le prestazioni dei modelli di deep learning con python Keras è una libreria Python potente e facile da usare per il deep learning. Ci sono molte decisioni da prendere durante la progettazione e la configurazione dei modelli di deep learning. La maggior parte di queste decisioni deve essere risolta empiricamente attraverso tentativi ed errori e valutandole su dati reali. Pertanto, è di fondamentale importanza disporre di un modo solido per valutare le prestazioni delle reti neurali e dei modelli di deep learning. È necessario prendere una miriade di decisioni durante la progettazione e la configurazione dei modelli di deep learning. Molte di queste decisioni possono essere risolte copiando la struttura delle reti di altre persone. In definitiva, la tecnica migliore è progettare effettivamente piccoli esperimenti e valutare empiricamente i problemi utilizzando dati reali. Ciò include decisioni di alto livello come il numero, la dimensione e il tipo di livelli nella tua rete. Include anche le decisioni di livello inferiore come la scelta della funzione di perdita, le funzioni di attivazione, la procedura di ottimizzazione e il numero di epoche . Il deep learning viene spesso utilizzato su problemi con set di dati molto grandi. Sono decine di migliaia o centinaia di migliaia di istanze. Pertanto, è necessario disporre di un solido test che consenta di stimare le prestazioni di una determinata configurazione su dati invisibili e confrontare in modo affidabile le prestazioni con altre configurazioni. Divisione dei dati La grande quantità di dati e la complessità dei modelli richiedono tempi di training molto lunghi. Pertanto, è tipico separare i dati in set di dati di addestramento e test o set di dati di addestramento e convalida. Keras offre due modi convenienti per valutare i tuoi algoritmi di deep learning in questo modo: Utilizza un set di dati di verifica automatica Utilizzare un set di dati di verifica manuale Valutare le prestazioni dei modelli di deep learning usando un set di dati di verifica automatica Keras può separare una parte dei tuoi dati di addestramento in un set di dati di convalida e valutare le prestazioni del tuo modello su quel set di dati di convalida in ogni epoca. Puoi farlo impostando l' argomento validation_split sulla funzione fit() su una percentuale della dimensione del tuo set di dati di addestramento. Ad esempio, un valore ragionevole potrebbe essere 0,2 o 0,33 per il 20% o il 33% dei dati di addestramento trattenuti per la convalida. L'esempio seguente mostra l'uso di un set di dati di convalida automatica su un piccolo problema di classificazione binaria. Tutti gli esempi in questo post utilizzano il set di dati sull'inizio del diabete . Puoi scaricarlo dall'UCI Machine Learning Repository e salvare il file di dati nella tua directory di lavoro corrente con il nome del file diabetes.csv (aggiornamento: scarica da qui ). # Creiamo un modello che poi valuteremo insieme from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense import numpy # Fissiamo un seme così avremo gli stessi risultati numpy.random.seed(7) # carichiamo il dataset dataset = numpy.loadtxt("diabetes.csv", delimiter=",") # input (X) e output (Y) X = dataset[:,0:8] Y = dataset[:,8] # definiamo il nostro modello model = Sequential() model.add(Dense(12, input_dim=8, activation='relu')) model.add(Dense(8, activation='relu')) model.add(Dense(1, activation='sigmoid')) # Compiliamo il modello model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # Alleniamolo model.fit(X, Y, validation_split=0.33, epochs=150, batch_size=10) Eseguendo l'esempio, puoi vedere che l'output dettagliato su ogni epoca mostra la perdita e l'accuratezza sia sul set di dati di addestramento che sul set di dati di convalida. Epoch 145/150 514/514 [==============================] - 0s - loss: 0.5252 - acc: 0.7335 - val_loss: 0.5489 - val_acc: 0.7244 Epoch 146/150 514/514 [==============================] - 0s - loss: 0.5198 - acc: 0.7296 - val_loss: 0.5918 - val_acc: 0.7244 Epoch 147/150 514/514 [==============================] - 0s - loss: 0.5175 - acc: 0.7335 - val_loss: 0.5365 - val_acc: 0.7441 Epoch 148/150 514/514 [==============================] - 0s - loss: 0.5219 - acc: 0.7354 - val_loss: 0.5414 - val_acc: 0.7520 Epoch 149/150 514/514 [==============================] - 0s - loss: 0.5089 - acc: 0.7432 - val_loss: 0.5417 - val_acc: 0.7520 Epoch 150/150 514/514 [==============================] - 0s - loss: 0.5148 - acc: 0.7490 - val_loss: 0.5549 - val_acc: 0.7520 Valutare le prestazioni dei modelli di deep learning usando un set di dati di verifica manuale Keras consente inoltre di specificare manualmente il set di dati da utilizzare per la convalida durante l'addestramento. In questo esempio, puoi utilizzare la pratica funzione train_test_split () della libreria di apprendimento automatico scikit-learn di Python per separare i tuoi dati in un set di dati di addestramento e test. Utilizzare il 67% per la formazione e il restante 33% dei dati per la convalida. Il set di dati di convalida può essere specificato nella fit() funzione in Keras validation_datadall'argomento. Richiede una tupla dei set di dati di input e output. # Creiamo un modello che poi valuteremo insieme from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense import numpy # Fissiamo un seme così avremo gli stessi risultati numpy.random.seed(7) # carichiamo il dataset dataset = numpy.loadtxt("diabetes.csv", delimiter=",") # dividiamo in 67% per l'allenamento e il 33% per il test X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.33, random_state=seed) # creiamo il modello model = Sequential() model.add(Dense(12, input_dim=8, activation='relu')) model.add(Dense(8, activation='relu')) model.add(Dense(1, activation='sigmoid')) # Compiliamolo model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # Alleniamolo model.fit(X_train, y_train, validation_data=(X_test,y_test), epochs=150, batch_size=10) Come prima, l'esecuzione dell'esempio fornisce un output dettagliato dell'addestramento che include la perdita e l'accuratezza del modello sui set di dati di addestramento e convalida per ogni epoca. Epoch 145/150 514/514 [==============================] - 0s - loss: 0.4847 - acc: 0.7704 - val_loss: 0.5668 - val_acc: 0.7323 Epoch 146/150 514/514 [==============================] - 0s - loss: 0.4853 - acc: 0.7549 - val_loss: 0.5768 - val_acc: 0.7087 Epoch 147/150 514/514 [==============================] - 0s - loss: 0.4864 - acc: 0.7743 - val_loss: 0.5604 - val_acc: 0.7244 Epoch 148/150 514/514 [==============================] - 0s - loss: 0.4831 - acc: 0.7665 - val_loss: 0.5589 - val_acc: 0.7126 Epoch 149/150 514/514 [==============================] - 0s - loss: 0.4961 - acc: 0.7782 - val_loss: 0.5663 - val_acc: 0.7126 Epoch 150/150 514/514 [==============================] - 0s - loss: 0.4967 - acc: 0.7588 - val_loss: 0.5810 - val_acc: 0.6929 Convalida incrociata k-Fold manuale Il gold standard per la valutazione del modello di apprendimento automatico è la convalida incrociata k-fold . Fornisce una stima affidabile delle prestazioni di un modello su dati invisibili. Lo fa suddividendo il set di dati di addestramento in k sottoinsiemi, alternando i modelli di addestramento su tutti i sottoinsiemi tranne uno, che è trattenuto, e valutando le prestazioni del modello sul set di dati di convalida trattenuto. Il processo viene ripetuto fino a quando a tutti i sottoinsiemi viene data l'opportunità di essere il set di convalida sospeso. La misura delle prestazioni viene quindi calcolata in media su tutti i modelli creati. È importante capire che la convalida incrociata significa stimare un modello di progettazione (ad esempio, rete neurale a 3 strati rispetto a 4 strati) piuttosto che uno specifico modello adattato. Non si desidera utilizzare un set di dati specifico per adattare i modelli e confrontare il risultato poiché ciò potrebbe essere dovuto a quel particolare set di dati che si adatta meglio a un progetto di modello. Invece, si desidera utilizzare più set di dati per adattarsi, ottenendo più modelli adattati dello stesso design, prendendo la misura delle prestazioni medie per il confronto. La convalida incrociata spesso non viene utilizzata per valutare i modelli di deep learning a causa della maggiore spesa computazionale. Ad esempio, la convalida incrociata k-fold viene spesso utilizzata con 5 o 10 volte. Pertanto, è necessario costruire e valutare 5 o 10 modelli, aumentando significativamente il tempo di valutazione di un modello. Tuttavia, quando il problema è sufficientemente piccolo o se si dispone di risorse di calcolo sufficienti, la convalida incrociata k-fold può fornire una stima meno distorta delle prestazioni del modello. Nell'esempio seguente, utilizzerai la pratica classe StratifiedKFold della libreria di apprendimento automatico Python scikit-learn per dividere il set di dati di addestramento in 10 pieghe. Le pieghe sono stratificate, il che significa che l'algoritmo tenta di bilanciare il numero di istanze di ciascuna classe in ciascuna piega. L'esempio crea e valuta 10 modelli utilizzando le 10 suddivisioni dei dati e raccoglie tutti i punteggi. L'output dettagliato per ogni epoca viene disattivato passando verbose=0alle funzioni fit() e evaluate() sul modello. La performance viene stampata per ciascun modello e memorizzata. La media e la deviazione standard delle prestazioni del modello vengono quindi stampate alla fine della corsa per fornire una stima attendibile dell'accuratezza del modello. # Convalidiamo con un 10-fold cross validation from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from sklearn.model_selection import StratifiedKFold import numpy as np # fissiamo il seed seed = 7 np.random.seed(seed) # carichiamo il dataset dataset = np.loadtxt("pima-indians-diabetes.csv", delimiter=",") # input (X) e output (Y) X = dataset[:,0:8] Y = dataset[:,8] # definiamo il 10-fold cross validation kfold = StratifiedKFold(n_splits=10, shuffle=True, random_state=seed) cvscores = [] for train, test in kfold.split(X, Y): #creiamo il modello model = Sequential() model.add(Dense(12, input_dim=8, activation='relu')) model.add(Dense(8, activation='relu')) model.add(Dense(1, activation='sigmoid')) # Compiliamolo model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) # Alleniamolo model.fit(X[train], Y[train], epochs=150, batch_size=10, verbose=0) # valutiamolo scores = model.evaluate(X[test], Y[test], verbose=0) print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100)) cvscores.append(scores[1] * 100) print("%.2f%% (+/- %.2f%%)" % (np.mean(cvscores), np.std(cvscores))) Nota : i risultati possono variare a causa della natura stocastica dell'algoritmo o della procedura di valutazione, o delle differenze nella precisione numerica. Considera di eseguire l'esempio alcune volte e confrontare il risultato medio. L'esecuzione dell'esempio richiederà meno di un minuto e produrrà il seguente output: acc: 77.92% acc: 68.83% acc: 72.73% acc: 64.94% acc: 77.92% acc: 35.06% acc: 74.03% acc: 68.83% acc: 34.21% acc: 72.37% 64.68% (+/- 15.50%) Riepilogo In questo post, hai scoperto l'importanza di disporre di un modo affidabile per stimare le prestazioni dei tuoi modelli di deep learning su dati invisibili. Hai scoperto tre modi per stimare le prestazioni dei tuoi modelli di deep learning in Python utilizzando la libreria Keras: Usando il set di dati di verifica automatica Utilizzando i set di dati di verifica manuale Utilizzando la convalida incrociata k-Fold manuale