Risultati Ricerca Intelligenza Artificiale Italia
475 elementi trovati per ""
- Come estrarre testo da un'immagine utilizzando Python e Keras-OCR
Sebbene molte informazioni digitali siano disponibili per il consumo da parte delle aziende, i dipendenti devono comunque gestire fatture, volantini, brochure e moduli stampati in copie cartacee o immagini di testo salvate nei formati .jpg,.png o .pdf. La gestione manuale di tali dati in questi file è noiosa, dispendiosa in termini di tempo e soggetta a errori manuali. Tali file non possono essere modificati direttamente ed è necessario renderli prima modificabili o disporre di uno strumento in grado di leggere il contenuto dell'immagine ed estrarlo per un'ulteriore elaborazione. Tutti dobbiamo aver utilizzato strumenti online o offline per convertire le immagini in formati di testo modificabili per semplificare le cose. Ciò è possibile utilizzando l'OCR o il riconoscimento ottico dei caratteri. Cos’è l’OCR (Riconoscimento Ottico dei Caratteri)? Il riconoscimento ottico dei caratteri (OCR) è il processo che converte un'immagine di testo in un formato di testo leggibile dalla macchina. Ad esempio, se si esegue la scansione di un modulo o di una ricevuta, il computer salva la scansione come file immagine. Non sarà possibile utilizzare un editor di testo per modificare, cercare o contare le parole nel file immagine. Tuttavia, è possibile utilizzare l'OCR per convertire l'immagine in un documento di testo con i suoi contenuti archiviati come dati di testo. Perché l’OCR è importante? La maggior parte dei flussi di lavoro delle aziende riguarda la ricezione di informazioni da media stampati. Moduli cartacei, fatture, documenti legali scansionati e contratti stampati sono tutti parte dei processi aziendali. Questi ampi volumi cartacei richiedono tempo e spazio per essere archiviati e gestiti. Sebbene la gestione dei documenti paperless sia la strada da percorrere, la scansione dei documenti in immagini crea delle difficoltà. Il processo richiede un intervento manuale e può essere impegnativo e lento. Inoltre, la digitalizzazione di questi contenuti di documenti crea file di immagini con il testo nascosto al suo interno. Il testo nelle immagini non può essere elaborato dal software di elaborazione di testi allo stesso modo dei documenti di testo. La tecnologia OCR risolve il problema convertendo immagini di testo in dati di testo che possono essere analizzati da altri software aziendali. Si possono dunque utilizzare i dati per eseguire analisi dei dati, semplificare le operazioni, automatizzare i processi e migliorare la produttività. Come funziona l’OCR? Il meccanismo OCR o software OCR funziona con i seguenti passaggi: 1. Acquisizione dell’immagine Uno scanner legge i documenti e li converte in dati binari. Il software OCR analizza l’immagine scansionata e classifica le aree chiare come background e le aree scure come testo. 2. Pre-elaborazione Il software OCR prima pulisce l’immagine e rimuove gli errori per prepararla alla lettura. Ecco alcune delle tecniche di pulizia: Leggero raddrizzamento o ribaltamento del documento scansionato per sistemare i problemi di allineamento durante la scansione. Smacchiatura o rimozione di qualsiasi chiazza sull’immagine digitale o smussatura dei bordi delle immagini di testo. Eliminazione delle caselle e delle linee nell’immagine. Riconoscimento dello script per la tecnologia OCR multi-lingua 3. Riconoscimento testuale I due tipi principali di algoritmi OCR o processi software che un software OCR utilizza per il riconoscimento testuale sono detti pattern matching ed estrazione delle caratteristiche. 4. Pattern matching Il pattern matching funziona isolando un'immagine di carattere, chiamata glifo, e confrontandola con un glifo simile archiviato. Il riconoscimento del pattern funziona solo se il glifo archiviato ha un font e una dimensione simile al glifo di input. Questo metodo funziona bene con le immagini scansionate di documenti che sono stati digitati in un font conosciuto. 5. Estrazione delle caratteristiche L’estrazione delle caratteristiche scompone o decompone i glifi in caratteristiche come linee, cerchi chiusi, direzioni di linea e intersezioni di linea. Quindi utilizza queste caratteristiche per trovare l'abbinamento migliore o più vicino tra i vari glifi archiviati. 6. Post elaborazione Dopo l’analisi, il sistema converte i dati testuali estratti in un file computerizzato. Alcuni sistemi OCR possono creare file PDF annotati che includono sia la prima che la seconda versione del documento scansionato. Quali sono le tipologie di OCR? I data scientist classificano diverse tipologie di tecnologie OCR basati sugli usi e le applicazioni. Ecco alcuni esempi: Software di riconoscimento ottico dei caratteri (OCR) semplice Un meccanismo OCR semplice funziona archiviando diversi font e pattern di immagini testuali sotto forma di modelli. Il software OCR utilizza algoritmi pattern-matching per confrontare immagini testuali, carattere per carattere, con il proprio database interno. Se il sistema abbina il testo parola per parola, è chiamato riconoscimento ottico delle parole. Questa soluzione ha dei limiti perché esistono font e calligrafie infiniti e ogni singolo carattere non può essere acquisito e archiviato nel database. Software di riconoscimento dei caratteri intelligente I moderni sistemi OCR utilizzano la tecnologia di riconoscimento intelligente dei caratteri (ICR) per leggere i testi allo stesso modo degli esseri umani. Utilizzano metodi avanzati che addestrano le macchine a comportarsi come gli umani attraverso l’utilizzo di software di machine learning. Un sistema di machine learning chiamato rete neurale analizza i testi a più livelli, processando ripetutamente l’immagine. Cerca diversi attributi dell’immagine, come curve, linee, intersezioni, cerchi, e combina i risultati di tutti questi livelli diversi di analisi per ottenere il risultato finale. Sebbene l’ICR elabori solitamente le immagini un carattere alla volta, il processo è veloce e restituisce risultati in pochi secondi. Riconoscimento intelligente delle parole Il sistema di riconoscimento intelligente delle parole funziona con gli stessi principi dell’ICR, ma elabora immagini di intere parole invece di pre-elaborare le immagini in caratteri. Riconoscimento ottico dei segni Il riconoscimento ottico dei segni identifica loghi, filigrane e altri simboli di testo in un documento. Quali sono i vantaggi dell'OCR? Di seguito sono illustrati i vantaggi maggiori della tecnologia OCR: Testo ricercabile Le aziende possono convertire i propri documenti esistenti e nuovi in un archivio di conoscenze interamente ricercabile. Possono anche elaborare i database di testo automaticamente, utilizzando software di analisi dei dati per un'ulteriore elaborazione della conoscenza. Efficienza operativa Si può migliorare l’efficienza utilizzando il software OCR per integrare automaticamente flussi di lavoro di documenti e flussi di lavoro digitali all’interno della propria azienda. Ecco alcuni esempi di cosa può fare un software OCR: Scansionare moduli riempiti a mano per verifiche automatiche, revisioni, editing e analisi. Ciò fa risparmiare il tempo necessario per l’elaborazione manuale del documento e l’inserimento dei dati. Trovare i documenti richiesti ricercando rapidamente un termine nel database così da non dover scorrere manualmente attraverso i file di una finestra. Convertire appunti scritti a mano in testi editabili e documenti. Soluzioni di intelligenza artificiale L'OCR è spesso parte di altre soluzioni di intelligenza artificiale che le aziende possono implementare. Ad esempio, scansiona e legge targhe e cartelli stradali nelle auto a guida autonoma, individua i loghi dei brand nei post sui social media o identifica l’imballaggio dei prodotti nelle immagini pubblicitarie. Tale tecnologia di intelligenza artificiale aiuta le aziende a prendere decisioni di marketing e operative migliori in grado di ridurre le spese e ottimizzare l’esperienza cliente. Che cos'è Keras OCR? L'acronimo 'OCR' sta per Optical Character Recognition. Comunemente noto come "riconoscimento del testo", è una tecnica popolare per estrarre il testo dalle immagini. Un programma OCR è uno strumento che estrae e riutilizza i dati da documenti scansionati, immagini della fotocamera e pdf di sole immagini. Un sistema OCR utilizza una combinazione di hardware, come scanner ottici e software in grado di elaborare le immagini. Per l'estrazione del testo, gli strumenti OCR (librerie OCR) utilizzano diversi algoritmi macchina per il riconoscimento dei modelli per identificare la presenza e il layout del testo in un file immagine. Questi strumenti sono addestrati per identificare le forme di caratteri o numeri su un'immagine per riconoscere il testo nell'immagine. Successivamente questi possono ricostruire il testo estratto in un formato leggibile dalla macchina. Per questo motivo, il testo estratto può essere selezionato, modificato o incollato come testo normale. In un senso più semplice, l'OCR converte i dati digitali in formato immagine in documenti di elaborazione testi modificabili. Per fortuna, molti strumenti gratuiti e commerciali (offline e online) consentono alla tecnologia OCR di estrarre testo dalle immagini. Attualmente, gli strumenti OCR sono piuttosto avanzati grazie all'implementazione di tecniche come il riconoscimento intelligente dei caratteri (ICR), in grado di identificare lingue, stili di scrittura, ecc. In questo articolo discuteremo dell'OCR, dei vantaggi dell'OCR, del motivo per cui abbiamo bisogno dell'estrazione di testo dai documenti, delle librerie OCR disponibili in Python e di un esempio di estrazione di testo da un'immagine utilizzando la libreria Keras-OCR in Python. Perché abbiamo bisogno di estrarre il testo dalle immagini? Come accennato nella sezione precedente, il vantaggio principale della tecnologia OCR è che automatizza le attività di immissione dei dati manuali e dispendiose in termini di tempo. Questo perché utilizzando l'OCR possiamo creare documenti digitali che possono essere modificati e archiviati in base alle esigenze. Uno strumento OCR elabora l'immagine per identificare il testo e crea uno strato di testo nascosto dietro l'immagine. Questo livello aggiuntivo può essere facilmente letto da un computer, rendendo così l'immagine riconoscibile e ricercabile. Questo è fondamentale per le aziende in quanto hanno a che fare quotidianamente con media e contenuti. L'OCR offre anche i seguenti vantaggi: Elaborazione e conversione automatizzate e più rapide di documenti cartacei in formati digitali che accelerano i flussi di lavoro Risparmia tempo e riduce la portata degli errori manuali Elimina il requisito per l'immissione manuale dei dati La riduzione dell'immissione manuale dei dati indica una riduzione dei costi complessivi per l'azienda Risparmia carta e spazio di archiviazione poiché più dati possono essere convertiti in formato elettronico Un tipico esempio di domanda OCR può essere visto nell'elaborazione del modulo di richiesta di assicurazione medica. Con l'OCR è più facile confrontare il sinistro assicurativo con i dati dell'assicurato. I sistemi dotati di OCR possono segnalare eventuali anomalie nei dati ai team interessati e prevenire possibili frodi. Anche se l'OCR può estrarre facilmente il testo dalle immagini, a volte deve affrontare delle sfide. Ciò accade quando il testo è disponibile in immagini che rappresentano ambienti naturali, distorsioni geometriche, troppo rumore o sfondi disordinati e complessi e caratteri diversi da quelli normali. Tuttavia, la tecnologia OCR ha un potenziale sempre più forte nelle applicazioni di deep learning per creare strumenti per leggere le targhe dei veicoli, digitalizzare fatture o menu, scansionare carte d'identità, confrontare moduli di richiesta e così via. Librerie Python OCR disponibili Ora che abbiamo compreso l'OCR e il suo utilizzo, diamo un'occhiata ad alcune librerie Python open source comunemente utilizzate per il riconoscimento e l'estrazione del testo. Pytesseract – Chiamato anche "Python-tesseract", è uno strumento OCR per Python che funziona come wrapper per il motore Tesseract-OCR. Questa libreria può leggere tutti i tipi di immagine (.jpeg,.png, .gif, .bmp, .tiff, ecc.) e riconoscere il testo nelle immagini. Quindi, è comunemente visto nei casi d'uso per la conversione da immagine a testo OCR. EasyOCR – Un'altra libreria Python abbastanza popolare è EasyOCR. Come suggerisce il nome, la libreria è progettata per i principianti ed è facile da usare. È un modulo Python OCR generale che supporta più di 80 lingue e può leggere scene naturali e testo denso nei documenti. Una volta installato, gli utenti devono inizializzare solo due classi: una reader() e un'altra tramite la funzione readtext() per leggere il testo nell'immagine. Keras-OCR – Questa è una libreria open source altrettanto potente come le due librerie sopra menzionate. La libreria Keras-OCR fornisce un'API di alto livello e una pipeline di formazione end-to-end per creare nuovi modelli OCR. Nella prossima sezione, vedremo un tutorial passo-passo che utilizza Keras-OCR per estrarre il testo da più immagini. Puoi trovare la documentazione qui . Estrarre testo da un'immagine utilizzando Python e Keras-OCR In questa sezione, costruiremo una pipeline Keras-OCR per estrarre il testo da alcune immagini di esempio. Sto usando Google Colab per questo tutorial. Iniziamo installando la libreria keras-ocr (supporta Python >= 3.6 e TensorFlow >= 2.0.0) usando il seguente codice – !pip install -q keras-ocr Puoi anche utilizzare il comando seguente per installare il pacchetto dalla posizione principale. pip install git+https://github.com/faustomorales/keras-ocr.git#egg=keras-ocr Dobbiamo importare matplotlib e la libreria Keras-ocr appena installata per elaborare le immagini ed estrarre il testo da esse. import keras_ocr import matplotlib.pyplot as plt Impostiamo una pipeline con Keras-ocr. Il modello è un modello di estrazione di testo pre-addestrato caricato con pesi pre-addestrati per il rilevatore e il riconoscitore. pipeline = keras_ocr.pipeline.Pipeline() Useremo due immagini per testare le capacità della libreria Keras-ocr. Puoi provare lo stesso con qualsiasi altra immagine con testo a tua scelta. # Leggi le immagini dal percorso della cartella all'oggetto images = [ keras_ocr.tools.read(img) for img in ['/content/Image1.png', '/content/Image2.png',] ] Ecco le due immagini che abbiamo usato per questo tutorial sulla libreria Keras-ocr. Uno è un'immagine semplice con testo che utilizza un carattere in stile scrittura a mano e l'altro è un'immagine contenente testo. Ora, eseguiamo il riconoscimento della pipeline sulle immagini e facciamo previsioni sul testo in queste immagini. # genera previsioni di testo dalle immagini prediction_groups = pipeline.recognize(images) Possiamo tracciare le previsioni dal modello usando il codice seguente: # traccia le previsioni del testo fig, axs = plt.subplots(nrows=len(images), figsize=(10, 20)) for ax, image, predictions in zip(axs, images, prediction_groups): keras_ocr.tools.drawAnnotations(image=image, predictions=predictions, ax=ax) Otteniamo l'output previsto : La libreria Keras-OCR ha funzionato bene su entrambe le immagini. È stato in grado di identificare correttamente la posizione del testo ed estrarre le parole dalle immagini di input. Possiamo anche stampare il testo identificato dalle immagini usando il seguente codice predicted_image = prediction_groups[1] for text, box in predicted_image: print(text) Se necessario, il testo sopra riconosciuto dalle immagini sopra può essere convertito in formato .csv o .txt per un ulteriore utilizzo. Conclusione In questo tutorial abbiamo discusso dell'OCR, dei suoi vantaggi per le aziende per l'elaborazione delle immagini e delle diverse librerie OCR open source in Python. Successivamente, abbiamo imparato come estrarre il testo da più immagini utilizzando la libreria Keras-OCR. Ecco alcuni punti chiave dell'articolo L'OCR ha semplificato l'elaborazione di immagini con testo e la loro conversione in documenti modificabili. Può ridurre il lavoro di immissione manuale dei dati, accelerando i flussi di lavoro aziendali. Diversi strumenti open source e commerciali utilizzano la tecnologia OCR per elaborare immagini e documenti più velocemente. Keras-OCR è una libreria estremamente accurata per estrarre testo con poche righe di codice. È una buona opzione per i progetti di estrazione di testo di immagini open source. Questo è tutto per questo tutorial. Prova la libreria Keras-ocr per vedere con quanta precisione può identificare il testo nelle tue immagini.
- Intelligenza artificiale spiegabile , come spiegare un modello al tuo capo
Al giorno d'oggi, dove c'è un'enorme quantità di dati a nostra disposizione, l'utilizzo dei modelli ML per prendere decisioni è diventato fondamentale in settori come l'assistenza sanitaria, la finanza, il marketing, ecc. Molti modelli ML sono scatole nere poiché è difficile da comprendere appieno come funzionano dopo l'allenamento. Ciò rende difficile capire e spiegare il comportamento di un modello, ma è importante farlo per avere fiducia nella sua accuratezza. Quindi, come possiamo creare fiducia nelle previsioni di una scatola nera? Intelligenza artificiale spiegabile La soluzione a questo problema è l'IA spiegabile (XAI). L'IA spiegabile mira a sviluppare spiegazioni per modelli di intelligenza artificiale troppo sofisticati per la percezione umana. Ciò significa che è un sistema che comprende cosa sta facendo l'algoritmo di intelligenza artificiale e perché sta prendendo questa decisione. Tali informazioni possono migliorare le prestazioni dei modelli, aiutando gli ingegneri ML a risolvere i problemi e rendendo i sistemi di intelligenza artificiale più convincenti e di facile comprensione. In questo articolo, daremo un'occhiata a come utilizzare una libreria python OmniXAI per ottenere spiegazioni sulla decisione presa dal nostro modello. Prima però vediamo la definizione ufficiale di I.A. Spiegabile : Cos'è l'intelligenza artificiale spiegabile? L'intelligenza artificiale spiegabile è un insieme di processi e metodologuie che consente agli esseri umani di comprendere i risultati generati dai modelli di apprendimento automatico o reti neurali. L'IA spiegabile viene utilizzata per spiegare un modello di IA, il suo impatto previsto e le potenziali distorsioni. Aiuta a rafforzare l'accuratezza, l'equità, la trasparenza e i risultati del modello nel processo decisionale basato sull'intelligenza artificiale. L'intelligenza artificiale spiegabile è fondamentale per un'azienda per creare fiducia e sicurezza quando mette in produzione i modelli di intelligenza artificiale. La spiegabilità dell'IA aiuta anche un'organizzazione ad adottare un approccio responsabile allo sviluppo dell'IA. Man mano che l'IA diventa più avanzata, gli esseri umani sono sfidati a comprendere e ripercorrere come l'algoritmo è arrivato a un risultato. L'intero processo di calcolo viene trasformato in quella che viene comunemente definita una "scatola nera" impossibile da interpretare. Questi modelli di scatole nere vengono creati direttamente dai dati. E nemmeno gli ingegneri o i data scientist che creano l'algoritmo possono capire o spiegare cosa sta succedendo esattamente al loro interno o come l'algoritmo AI è arrivato a un risultato specifico. Ci sono molti vantaggi nel comprendere come un sistema abilitato all'intelligenza artificiale abbia portato a un output specifico. La spiegazione può aiutare gli sviluppatori a garantire che il sistema funzioni come previsto, che potrebbe essere necessario soddisfare gli standard normativi o potrebbe essere importante per consentire alle persone interessate da una decisione di contestare o modificare tale risultato. Quali sono i vantaggi dell'intelligenza artificiale spiegabile? Ci sono vantaggi aziendali significativi derivanti dalla creazione dell'interpretabilità nei sistemi di intelligenza artificiale. Oltre ad aiutare ad affrontare pressioni come la regolamentazione e ad adottare buone pratiche in materia di responsabilità ed etica, si possono ottenere vantaggi significativi dall'essere in prima linea e dall'investire nella spiegazione oggi. Maggiore è la fiducia nell'IA, più rapidamente e ampiamente può essere implementata. La tua azienda sarà anche una posizione più forte per promuovere l'innovazione e superare i tuoi concorrenti nello sviluppo e nell'adozione di capacità di nuova generazione. 1) Ridurre il costo degli errori I campi sensibili alle decisioni come Medicina, Finanza, Legale, ecc., sono fortemente influenzati in caso di previsioni errate. La supervisione dei risultati riduce l'impatto di risultati errati e identifica la causa principale che porta al miglioramento del modello sottostante. Di conseguenza cose comeScrittori di intelligenza artificialediventare più realistici da usare e di cui fidarsi nel tempo. 2) Ridurre l'impatto della distorsione del modello I modelli di IA hanno mostrato prove significative di bias. Gli esempi includono il pregiudizio di genere per le carte Apple, il pregiudizio razziale di veicoli autonomi, il pregiudizio di genere e il pregiudizio razziale di Amazon Rekognition. Un sistema spiegabile può ridurre l'impatto di tale causa di previsioni distorte spiegando i criteri decisionali. 3) Fiducia e conformità del codice Ogni inferenza, insieme alla sua spiegazione, tende ad aumentare la fiducia del sistema. Alcuni sistemi critici per l'utente, come i veicoli autonomi, la diagnosi medica, il settore finanziario, ecc., richiedono un'elevata sicurezza del codice da parte dell'utente per un utilizzo più ottimale. Per la conformità, la crescente pressione da parte degli organismi di regolamentazione significa che le aziende devono adattare e implementare XAI per conformarsi rapidamente alle autorità. 4) Prestazioni del modello Una delle chiavi per massimizzare le prestazioni è comprendere i potenziali punti deboli. Migliore è la comprensione di cosa stanno facendo i modelli e perché a volte falliscono, più facile sarà migliorarli. L'esplicabilità è un potente strumento per rilevare difetti nel modello e distorsioni nei dati che crea fiducia per tutti gli utenti. Può aiutare a verificare le previsioni, a migliorare i modelli e ad acquisire nuove informazioni sul problema in questione. Rilevare le distorsioni nel modello o nel set di dati è più facile quando si comprende cosa sta facendo il modello e perché arriva alle sue previsioni. 5) Processo decisionale informato L'uso principale delle applicazioni di apprendimento automatico nelle aziende è il processo decisionale automatizzato. Tuttavia, spesso vogliamo utilizzare i modelli principalmente per approfondimenti analitici. Ad esempio, potresti addestrare un modello per prevedere le vendite in negozio in una grande catena di vendita al dettaglio utilizzando dati su posizione, orari di apertura, condizioni meteorologiche, periodo dell'anno, prodotti trasportati, dimensioni del punto vendita ecc. Il modello ti consentirebbe di prevedere le vendite nei miei negozi in qualsiasi giorno dell'anno in una varietà di condizioni meteorologiche. Tuttavia, costruendo un modello spiegabile, è possibile vedere quali sono i principali driver di vendita e utilizzare queste informazioni per aumentare i ricavi. Insomma tutto ciò serve ad evitare anche situazione come lla foto qui sotto :) Il principio delle IA spiegabili Per ampliare l'idea di ciò che costituisce XAI, il National Institute of Standards (NIST), parte del Dipartimento del Commercio degli Stati Uniti, definisce quattro principi di intelligenza artificiale spiegabile : Un sistema di intelligenza artificiale dovrebbe fornire "prove, supporto o ragionamento per ogni output". Un sistema di intelligenza artificiale dovrebbe fornire spiegazioni comprensibili ai suoi utenti. Precisione della spiegazione. Una spiegazione dovrebbe riflettere accuratamente il processo utilizzato dal sistema di intelligenza artificiale per arrivare all'output. Limiti di conoscenza. Un sistema di intelligenza artificiale dovrebbe funzionare solo nelle condizioni per cui è stato progettato e non fornire output quando non ha sufficiente fiducia nel risultato. Come funziona l'IA spiegabile? Questi principi aiutano a definire l'output atteso da XAI, ma non offrono alcuna guida su come raggiungere tale output. Può essere utile suddividere XAI in tre categorie : Dati spiegabili. Quali dati sono stati utilizzati per addestrare un modello? Perché sono stati scelti quei dati? Come è stata valutata l'equità? È stato fatto qualche sforzo per rimuovere i pregiudizi? Previsioni spiegabili. Quali caratteristiche di un modello sono state attivate o utilizzate per raggiungere un determinato output? Algoritmi spiegabili. Quali sono i singoli livelli che compongono il modello e come portano all'output o alla previsione? Per le reti neurali in particolare, i dati spiegabili sono l'unica categoria che è facile da raggiungere, almeno in linea di principio. Gran parte della ricerca in corso si concentra su come ottenere previsioni e algoritmi spiegabili. Adesso hai tutte le nozioni di base per iniziare a mettere mano su del codice che ti mostrerà come puoi semplicemente spiegare il tuo modello al tuo capo Cos'è OmniXAI l'IA spiegabile in Python? OmniXAI è una libreria che semplifica l'IA spiegabile per gli utenti che necessitano di spiegazioni in molte fasi di ML, tra cui l'analisi dei dati, l'estrazione di funzionalità, la creazione di modelli e la valutazione del modello. Impiegando tecniche come l'analisi del chi quadrato e il calcolo reciproco delle informazioni per esaminare le correlazioni tra le caratteristiche di input e le variabili target, aiuta nella selezione delle caratteristiche identificando le caratteristiche chiave. Utilizzando l'analizzatore di dati che offre, possiamo semplicemente fare un'analisi di correlazione e trovare gli squilibri di classe. OmniXAI può essere utilizzato su dati tabulari, immagine, NLP e serie temporali. OmniXAI fornisce diverse spiegazioni per fornire agli utenti una comprensione dettagliata del comportamento di un modello. Queste spiegazioni possono essere facilmente visualizzate con l'aiuto di questa libreria. Crea grafici interattivi utilizzando Plotly e, con poche righe di codice, possiamo creare una dashboard che semplifica il confronto simultaneo di più spiegazioni. In una sezione successiva di questo articolo, creeremo una di queste dashboard per descrivere i risultati di un modello. Le spiegazioni locali e globali sono principalmente di due tipi. La spiegazione locale spiega il ragionamento alla base di una certa decisione. Questo tipo di spiegazione viene prodotto utilizzando tecniche come LIME e SHAP. La spiegazione globale esamina il comportamento generale del modello. Per generare spiegazioni globali, è possibile utilizzare grafici di dipendenza parziale. Questa libreria utilizza diverse tecniche indipendenti dal modello, tra cui LIME, SHAP e L2X. Questi metodi possono descrivere efficacemente le decisioni prese dal modello senza conoscere le complessità del modello. Inoltre, genera spiegazioni per un determinato modello utilizzando l'approccio specifico del modello come Grad-CAM . Ora che hai un idea di cosa è l' IA spiegabile e una panoramica di OmniXAI, usiamolo per spiegare le decisioni prese da un classificatore che formeremo. Questo è solo un semplice esempio ma ricorda che usare queste librerie è FORTEMENTE CONSIGLIATO se il tuo capo o manager pensa che excel sia uno strumento ottimo per la data science ! Intelligenza artificiale spiegabile con Python Utilizzeremo il set di dati di previsione dell'ictus per creare un modello di classificazione. Sulla base delle caratteristiche di input, tra cui sesso, età, diverse malattie e stato di fumatore, questo set di dati viene utilizzato per determinare se è probabile che un paziente abbia un ictus. Non possiamo fare affidamento sui giudizi espressi da una “scatola nera” nel settore sanitario; ci deve essere una giustificazione per la scelta. A tal fine, utilizzeremo OmniXAI per analizzare il set di dati e comprendere il comportamento del modello. Il set di dati lo puoi scaricare cliccando qui e seguendo le indicazioni nella foto : Nella barra di ricerca digita : "healthcare-dataset-stroke-data.csv" Codice Python per implementare l' IA spiegabile import pandas as pd from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score, classification_report,confusion_matrix from sklearn.preprocessing import LabelEncoder, StandardScaler from sklearn.linear_model import LogisticRegression from sklearn.ensemble import RandomForestClassifier from sklearn.pipeline import Pipeline from imblearn.over_sampling import SMOTE from omnixai.data.tabular import Tabular from omnixai.explainers.data import DataAnalyzer from omnixai.visualization.dashboard import Dashboard from omnixai.preprocessing.tabular import TabularTransform from omnixai.explainers.tabular import TabularExplainer from omnixai.explainers.prediction import PredictionAnalyzer import seaborn as sns import matplotlib.pyplot as plt #carichiamo il dataset df = pd.read_csv("healthcare-dataset-stroke-data.csv") df = df.drop('id', axis=1) df = df.dropna() print(df.head(10)) che produrrà : Analisi dei dati utilizzando OmniXAI Creeremo un set di dati tabulare per utilizzare un dataframe Pandas con OmniXAI. È necessario specificare il dataframe, i nomi delle caratteristiche categoriali e il nome della colonna di destinazione per creare un'istanza Tabular data un dataframe pandas. feature_names = df.columns categorical_columns = ['gender','ever_married','work_type','Residence_type','smoking_status'] tabular_data = Tabular( df, feature_columns=feature_names, categorical_columns=categorical_columns, target_column='stroke' ) Ora creeremo un esplicatore DataAnalyzer per analizzare i dati. explainer = DataAnalyzer( explainers=["correlation", "imbalance#0", "imbalance#1", "mutual", "chi2"], mode="classification", data=tabular_data ) explanations = explainer.explain_global( params={"imbalance#0": {"features": ["gender"]}, "imbalance#1": {"features": ["ever_married"]} } ) dashboard = Dashboard(global_explanations=explanations) dashboard.show() #Dash is running on http://127.0.0.1:8050/ Il risultato di queste righe di codice sarà il seguente L'analisi della correlazione delle caratteristiche, i grafici dello squilibrio delle caratteristiche per le caratteristiche di genere e mai_sposati e un grafico dell'importanza delle caratteristiche sono tutti visualizzati in questa dashboard. Formazione del modello per implementare l' IA spiegabile Ora applicheremo TabularTransform ai nostri dati, trasformando un'istanza tabulare in un array NumPy e trasformando le caratteristiche categoriali in una codifica one-hot. Successivamente, utilizzeremo SMOTE per affrontare il problema dello squilibrio di classe sovracampionando i dati della classe 1. Quindi, utilizzando un modello StandardScaler e un modello LogisticRegression, adatteremo i nostri dati in una pipeline. transformer = TabularTransform().fit(tabular_data) x = transformer.transform(tabular_data) train, test, train_labels, test_labels = train_test_split(x[:, :-1], x[:, -1], train_size=0.80) oversample = SMOTE() X_train_balanced, y_train_balanced = oversample.fit_resample(train, train_labels) model = Pipeline(steps = [('scale',StandardScaler()),('lr',LogisticRegression())]) model.fit(X_train_balanced, y_train_balanced) print('Test accuracy: {}'.format(accuracy_score(test_labels, model.predict(test)))) print(classification_report(test_labels,model.predict(test))) print(confusion_matrix(test_labels,model.predict(test))) train_data = transformer.invert(X_train_balanced) test_data = transformer.invert(test) L'output sarà simile a questo : Dopo che il nostro modello è stato addestrato, possiamo procedere ulteriormente per creare spiegazioni per il suo comportamento. Spieghiamo il modello allenato al nostro capo : Creazione di spiegazioni locali e globali Ora definiremo un TabularExplainer con i parametri forniti nel codice. Il parametro "esplicatori menziona i nomi degli esplicatori da utilizzare". La preelaborazione trasforma i dati grezzi in input del modello. Le spiegazioni locali sono generate da LIME, SHAP e MACE, mentre PDP genera spiegazioni globali. Per calcolare le metriche delle prestazioni per questo modello di classificatore, definiremo un PredictionAnalyzer fornendogli i dati di test. preprocess = lambda z: transformer.transform(z) explainers = TabularExplainer( explainers=["lime", "shap", "mace", "pdp"], mode="classification", data=train_data, model=model, preprocess=preprocess, params={ "lime": {"kernel_width": 4}, "shap": {"nsamples": 200}, } ) test_instances = test_data[10:15] local_explanations = explainers.explain(X=test_instances) global_explanations = explainers.explain_global( params={"pdp": {"features": ['age', 'hypertension', 'heart_disease', 'ever_married', 'bmi','work_type']}} ) analyzer = PredictionAnalyzer( mode="classification", test_data=test_data, test_targets=test_labels, model=model, preprocess=preprocess ) prediction_explanations = analyzer.explain() Creazione di un dashboard finale Dopo aver creato le spiegazioni, definiremo i parametri della dashboard, quindi verrà creata l'app Plotly dash. Possiamo eseguire questa dashboard copiando l'indirizzo locale nella barra degli indirizzi del nostro browser. dashboard = Dashboard( instances=test_instances, local_explanations=local_explanations, global_explanations=global_explanations, prediction_explanations=prediction_explanations, class_names=class_names ) dashboard.show() #Dash is running on http://127.0.0.1:8050/ Osservando i grafici LIME e SHAP per la spiegazione locale, possiamo identificare quali caratteristiche dell'input dato sono state più cruciali per le decisioni del modello. Come possiamo vedere, l'età ha avuto un impatto significativo sulla decisione del modello in questo caso. MACE mostra situazioni ipotetiche, come ad esempio l'individuo non avrebbe subito un ictus se avesse 58 anni invece di 78. I grafici delle dipendenze parziali (PDP) che illustrano la relazione tra la variabile di destinazione e le caratteristiche di input vengono visualizzati nella spiegazione globale. Come osservato nel grafico dell'età, all'aumentare dell'età, il valore sull'asse delle y tende ad aumentare nel caso della classe 1 e diminuire nel caso della classe 0. Indica che l'età più avanzata di un individuo aumenta il rischio di subire un ictus . Allo stesso modo, se una persona soffre di ipertensione o malattie cardiache, è più incline a subire un ictus. Conclusione intelligenza artificiale spiegabile Anche se le decisioni prese dai modelli di intelligenza artificiale possono avere effetti significativi, la mancanza di spiegabilità dei modelli mina la fiducia delle persone nei sistemi di intelligenza artificiale e ne impedisce l'adozione diffusa. In questo articolo, abbiamo visto l'uso di uno strumento XAI, "OmniXAI", per aiutare a comprendere la decisione presa da un modello. Alcuni dei punti chiave da asporto sono: Abbiamo visto cosa è l' IA spiegabile Abbiamo visto come funziona l' IA spiegabile Abbiamo visto l'uso di OmniXAI per elaborare i dati tabulari. Abbiamo creato una dashboard per analizzare i dati. Infine, abbiamo utilizzato spiegazioni locali e globali per spiegare il comportamento del modello e creato un dashboard per visualizzare i risultati.
- Addestrare e Monitorare più modelli di machine learning insieme
Quando si lavora a un progetto di machine learning si possono incontrare tantissimi problemi. Soprattutto quando dobbiamo andare a selezionare il modello... Però i data scientist più navigati sanno che può capitare che un modello che inizialmente sembrava preformare meglio degli altri nel lungo periodo può essere battuto da un altro. Ma come fare ad allenare e monitorare più di un modello insieme ? Oggi parleremo proprio di questo. Vedremo praticamente ( con il codice ) come allenare e monitorare le prestazioni di due modelli allenati su uno stesso dataset ! E ti mostrerò quanto è semplice. introduzione , perchè Addestrare e Monitorare più modelli di machine learning insieme ? È possibile che ogni modello abbia caratteristiche o parametri unici. La valutazione e lo sfruttamento di questi modelli senza adeguati strumenti di monitoraggio delle prestazioni e di controllo della versione del modello diventa complicato. Anche condividere questi modelli con il resto del team per i test è impegnativo. Se abbiamo uno strumento che possiamo usare per tenere traccia dei nostri modelli, diventa più conveniente. Una piattaforma che semplifica la collaborazione tra i team per lo sviluppo di pipeline di machine learning automatizzate efficaci. In questo articolo impareremo sull'apprendimento automatico collaborativo e su come addestrare, tracciare e condividere i nostri modelli di apprendimento automatico utilizzando una piattaforma chiamata "Layer" Procedure consigliate da ricordare mentre si lavora su un progetto ML in un team. Archiviazione centralizzata dei dati: è necessario un archivio centralizzato dei dati a cui un membro del team possa accedere per salvare e utilizzare il set di dati per il progetto. Per risparmiare tempo nell'esecuzione dell'intero processo di pulizia per gli altri membri del team, tutti i dati puliti e preelaborati devono essere salvati in un'unica posizione. Convalida dei dati: le proprietà statistiche dei dati possono variare nel tempo man mano che vengono aggiunti sempre più campioni. Questo è fondamentale poiché può influire sulla precisione del modello nel tempo. Accessibilità del modello: il modello addestrato deve essere archiviato da qualche parte per essere caricato durante la creazione di previsioni. Dovrebbe essere utile per altri membri del team da utilizzare per la sperimentazione nei loro progetti. Monitoraggio del modello: come menzionato nella convalida dei dati, le proprietà dei dati possono cambiare nel tempo, influenzando l'accuratezza del modello. Quindi le prestazioni del modello dovrebbero essere monitorate continuamente per rilevare il degrado delle sue prestazioni. Versioning del modello: durante l'addestramento del modello, è possibile utilizzare funzionalità, modelli o iperparametri diversi per creare modelli diversi. Diventa quindi fondamentale tracciare questi modelli per misurarne le prestazioni e migliorarne l'accessibilità a chi li utilizza. Cos'è Layer e perchè ci aiuta a Addestrare e Monitorare più modelli di machine learning insieme? Layer è una piattaforma per la creazione di pipeline di machine learning a livello di produzione. Dopo aver caricato i nostri dati e il nostro modello su questa piattaforma, possiamo facilmente addestrare e riqualificare i nostri modelli. Supporta perfettamente il controllo della versione del modello e il monitoraggio delle prestazioni. Possiamo condividere dati e modelli, rendendola una semplice piattaforma di machine learning collaborativa. I membri del team possono rivedere e valutare i cicli di sviluppo del modello dei loro colleghi utilizzando il controllo delle versioni del modello. A causa della mancanza di coordinamento, i team spesso trascorrono del tempo a svolgere lavori ridondanti. Layer funziona come un repository centrale per dati e modelli, consentendo ai membri del team di accedere ai dati utilizzati nel processo senza doverli preelaborare nuovamente, riducendo gli sforzi ripetitivi. Il controllo automatico della versione consente di tornare rapidamente alle versioni precedenti del modello e ricreare i risultati acquisiti in precedenza. La cosa meravigliosa di Layer è che non dobbiamo modificare i nostri attuali metodi o piattaforme di programmazione. Possiamo usare le capacità di Layer con poche righe di codice. Addestrare e Monitorare più modelli di machine learning insieme con Python e Layer Utilizzeremo il set di dati sulla qualità dell'acqua per addestrare un modello di classificazione per sondare la potabilità dell'acqua utilizzando fattori come pH, durezza e altre proprietà chimiche nel nostro progetto di apprendimento automatico. per scaricare il set di dati clicca qui o l'immagine e segui i passaggi nella foto quì sotto Durante la riqualificazione del nostro modello, cambieremo alcuni parametri. Nella maggior parte dei casi, le versioni precedenti del modello vengono perse durante questa procedura. Tuttavia, in questo caso, utilizzeremo la piattaforma Layer per facilitare il controllo della versione del modello e confrontare le prestazioni di diverse versioni del modello. Per installare Layer, digita questo codice sul terminale !pip install -U layer -q Registrati e accedi è GRATIS Layer richiede prima la registrazione e l'accesso. Quando si esegue il codice seguente, verrà visualizzato un messaggio per incollare una chiave e verrà visualizzato anche il collegamento alla chiave. Copia e incolla l'URL nel tuo browser, quindi accedi al tuo account Layer per trovare la chiave; copia questa chiave e inseriscila nel prompt. import layer layer.login() Ora crea un nuovo file e copia e incolla il codice ( tutto in un unico file, oppure se utilizzi Jupyter o Coolab copia il codice diviso nelle varie sezioni ) seguendo la spiegazione. Importa le librerie necessarie from layer.decorators import dataset, model,resources from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score import pandas as pd import numpy as np import layer from layer import Dataset Inizializza il tuo progetto di primo livello È ora di iniziare a lavorare sul tuo primo progetto Layer. L'intero progetto può essere trovato su app.layer.ai layer.init("new_project") Carica il set di dati Per caricare i dati nel progetto Layer, utilizzeremo il decoratore @dataset e specificheremo il nome del set di dati e il percorso ad esso utilizzando il decoratore @resources. @dataset("water_dataset") @resources(path="./") def create_dataset(): data = pd.read_csv('water_potability.csv') return data Esegui questo per creare il set di dati nel tuo progetto di livello layer.run([create_dataset]) Puoi navigare all'interno del tuo progetto per accedere al set di dati. Difiniamo e Alleniamo i nostri modelli Alla nostra funzione di training train(), aggiungeremo il decoratore @model per registrarlo con Layer. Per fare ciò, la funzione deve restituire l'oggetto modello. La funzione layer.log() registra tutti i parametri definiti nella dashboard Layer. @model(name='classification_model',dependencies=[Dataset('water_dataset')]) def train(): import seaborn as sns import matplotlib.pyplot as plt from sklearn.metrics import accuracy_score from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay from sklearn.metrics import average_precision_score, roc_auc_score, roc_curve,precision_recall_curve parameters = { "test_size": 0.20, "random_state": 20, "n_estimators": 150 } layer.log(parameters) # load the dataset from layer df = layer.get_dataset("water_dataset").to_pandas() df.dropna(inplace=True) features_x = df.drop(["Potability"], axis=1) target_y = df["Potability"] X_train, X_test, y_train, y_test = train_test_split(features_x, target_y, test_size=parameters["test_size"], random_state=parameters["random_state"]) random_forest = RandomForestClassifier(n_estimators=parameters["n_estimators"]) random_forest.fit(X_train, y_train) y_pred = random_forest.predict(X_test) layer.log({"accuracy":accuracy_score(y_test, y_pred)}) cm = confusion_matrix(y_test, y_pred, labels=random_forest.classes_) disp = ConfusionMatrixDisplay(confusion_matrix=cm, display_labels=random_forest.classes_) disp.plot() layer.log({"Confusion metrics" : plt.gcf()}) probs = random_forest.predict(X_test) # Calculate ROC AUC auc = roc_auc_score(y_test, probs) layer.log({"AUC":f'{auc:.4f}'}) sample_preds = X_test sample_preds["predicted"] = y_pred layer.log({"Sample predictions":sample_preds.head(100)}) return random_forest Per registrare il parametro e caricare il modello addestrato, passare la funzione di training a Layer useremo questa linea di codice. layer.run([train]) Confronto dei risultati dei modelli allenati Apri il progetto Layer lì vedrai i modelli caricati e i set di dati. Tutti i parametri e i grafici che hai registrato saranno lì, insieme alla versione del modello. Ogni volta che si esegue la funzione di training, viene caricata una nuova versione del modello insieme a tutti i parametri registrati. In questo modo è facile confrontare le prestazioni di tutti i modelli e utilizzare la versione precedente. Possiamo confrontare i parametri e i risultati registrati come la dimensione dei dati del test, gli iperparametri, l'accuratezza e il punteggio ROC-AUC. È inoltre possibile visualizzare e confrontare i grafici registrati di diverse versioni del modello. Di seguito vengono mostrate le previsioni di esempio. Scaricare i modelli da Layer Dopo aver formato e caricato il modello sulla piattaforma Layer, è possibile caricare la versione desiderata del modello per fare previsioni. Con l'aiuto di questo codice, possiamo ottenere la versione del modello necessaria dall'app di livello. import layer model = layer.get_model("IAItlia/new_project/models/classification_model:2.1").get_train() Questo oggetto modello può essere un modello normale per eseguire previsioni basate sui dati di input. Conclusione In questo articolo, abbiamo appreso i numerosi problemi che i team possono incontrare nel settore dell'apprendimento automatico durante la collaborazione e la gestione delle versioni del modello. Successivamente, abbiamo visto alcune delle migliori pratiche per lavorare su progetti ML in gruppo. In questo post, abbiamo progettato un progetto Layer che considera tutte le sfide che i team devono affrontare in un progetto ML. Premesse importanti da questo articolo: Abbiamo imparato a utilizzare Layer, una piattaforma ML collaborativa. Abbiamo utilizzato il controllo automatico della versione del modello con l'aiuto di questa piattaforma. Registrando i parametri del modello e i risultati, potremmo confrontare i risultati di diverse versioni del modello.
- BrainControl lancia SMART, per una riabilitazione e una diagnostica personalizzata
Il primo software in grado di fornire strumenti di analisi e diagnosi periodiche, nel percorso di assistenza e riabilitazione anche di pazienti privi di movimenti volontari del corpo. BrainControl, marchio senese di dispositivi medici basati sull’Intelligenza Artificiale, amplia la propria gamma di software e di dispositivi con SMART, la soluzione che permette a medici e caregivers di creare un quadro clinico personalizzato per ogni singolo paziente. Il software si concretizza in una piattaforma user-friendly con test di valutazione del paziente ed esercizi riabilitativi al fine di potenziare e/o preservare le capacità dello stesso. Nello specifico, sia per i test di valutazione che per gli esercizi di riabilitazione, le sfere che vengono interessate sono quella cognitiva/funzionale e quella relativa alle abilità visive. I test e gli esercizidisponibili sulla piattaforma sono predefiniti ma c’è la possibilità di creare ulteriori prove personalizzateper il singolo paziente, definendo specifici percorsi riabilitativi o di potenziamento. In particolare, i test cognitivi funzionali e gli esercizi riabilitativi possono esser effettuati sia in presenza (ad esempio in uno studio medico) che da remoto, mentre i test per la valutazione dell’abilità visiva potranno essere fatti solo in ambiente clinico. BrainControl SMART può essere utilizzato da qualsiasi tipo di paziente, incluso pazienti LIS/CLIS: è infatti possibile interagire attraverso metodi di interazione più comuni come mouse, tastiera ed emulatore di mouse ma anche con metodi più avanzati come puntatore oculare e BCI. Al termine di ogni test/esercizio,il sistema produrrà un report che darà al medico/caregiver la possibilità di definire una diagnosi clinica basata su una valutazione oggettiva. Ripetendo i test/esercizi periodicamente sarà poi possibile creare un report cumulativo in cui sono evidenziate le diverse tappe dell’iter seguito per ogni singolo paziente. BrainControl SMART si configura come un mezzo realmente utile per strutturare un rapporto tra paziente e medico/caregiver basato su un confronto periodico e una dinamica di test/valutazione in grado di innescare un meccanismo virtuoso, che stimola il percorso riabilitativo della persona. Lato caregiver/medico, questo software fornisce una serie di strumenti in grado di pianificare le attività e ottimizzare i tempi: dalla creazione di un database paziente e relativagestione, alla possibilità di assegnare esercizi al singolo paziente, fino al monitoraggio dei risultatie le relative statistiche. Il risultato è la creazione di un rapporto medico/paziente coinvolgente e unico. BrainControl è un marchio di proprietà di LiquidWeb Srl, azienda nata a Siena nel 2010 e operativa nel settore HCI (Human Computer Interface). Il progetto BrainControl riceve dal 2020 fondi dall’Unione Europea grazie al Programma per la Ricerca e l’Innovazione Horizon2020. Sempre nel 2020 ha vinto il titolo di migliore Start Up all’interno della categoria Med Tech di B Heroes, programma per l’innovazione e la promozione di nuovi business grazie a mentorship, investimenti, networking e comunicazione. Un’azienda giovane e dinamica, orgogliosa del lavoro che porta avanti e profondamente motivata dalla convinzione di poter realmente aiutare le persone a migliorare la qualità della loro vita. Ufficio Stampa: DuerreComunicazione di Roberta Riva Cell.: 3468548236 | Email: roberta.riva@duerrecomunicazione.com
- Tesla bot , il primo umaniode con intelligenza artificiale generale costerà 20.000$
Il CEO di Tesla Elon Musk ha rivelato un prototipo di un robot umanoide "Optimus" che condivide alcuni software e sensori di intelligenza artificiale con le funzionalità di assistenza alla guida del pilota automatico delle sue auto. Prima di continuare la lettura ti lasciamo al video della presentazione : Il primo prototipo Tesla bot Secondo Musk, questo prototipo può fare più di quello che è stato mostrato dal vivo, ma la prima volta che ha operato senza un legame è stata stasera sul palco. Musk ha previsto che potrebbe raggiungere un prezzo di probabilmente meno di $ 20.000 e più tardi, in una sessione di domande e risposte, ha spiegato che Tesla è molto brava a costruire l'IA e gli attuatori necessari per la robotica sulla base dell'esperienza di produzione di unità motrici per auto elettriche. Musk ha affermato che ciò lo aiuterebbe a mettere in produzione robot capaci e iniziare testandoli all'interno delle sue fabbriche. Ha affermato che la differenza tra il design di Tesla e altre "dimostrazioni di robot umanoidi molto impressionanti" è che l'Optimus di Tesla è fatto per la produzione di massa in "milioni" di unità e per essere molto capace. Mentre ha detto ciò, un team di lavoratori ha spostato un prototipo non deambulante dietro di lui. Il prototipo presentato inizialmente è un Optimus decostruito che Tesla chiama "Bumble C" che camminava in avanti e faceva una mossa di danza . Musk ha ammesso che volevano tenerlo al sicuro, non fare troppe mosse sul palco e farlo "cadere a terra". (Meglio evitare un altro incidente come con il Cybertruck, se possibile.) Successivamente, l'azienda ha mostrato alcuni video clip del robot che svolgeva altre attività come raccogliere scatole. Quindi il team di Tesla ha tirato fuori un altro prototipo che mostrava una versione molto vicina alla produzione di Optimus con il suo corpo completamente assemblato ma non completamente funzionante: era tenuto in piedi su un supporto e salutato il pubblico, mostrando la gamma di movimento del suo polso e mano. Il futuro del Tesla Bot Hanno rivelato che il robot iniziale presentato è stato sviluppato negli ultimi sei mesi. Discutendo gli ostacoli che devono affrontare per passare dal prototipo a un progetto funzionante, gli ingegneri sperano di eliminare ulteriori ostacoli alla progettazione "entro i prossimi mesi... o anni". Specifiche tecniche del prototipo Tesla Bot Contiene una batteria da 2,3 kWh, funziona con un SoC Tesla e dispone di connettività Wi-Fi e LTE. Le dimostrazioni incentrate sull'affrontare le articolazioni del robot, come le mani, i polsi o le ginocchia, hanno mostrato come elaboravano i dati per ciascuna articolazione, quindi hanno cercato le aree comuni in ogni progetto per trovare un metodo utilizzando solo sei diversi attuatori. Le mani simili a quelle umane sono un design biologicamente ispirato che secondo gli ingegneri le renderà più adatte a raccogliere oggetti di varie forme e dimensioni, tenere una borsa da 20 punti e avere una "presa di precisione" su piccole parti. Il software Autopilot di Tesla è stato spostato dalle sue auto al bot e riorganizzato per funzionare nel nuovo corpo e ambiente. "Sarà una trasformazione fondamentale per la civiltà come la conosciamo" ha detto Musk. Continua a dire che Optimus ha il potenziale di "due ordini di grandezza" di potenziale miglioramento della produzione economica. Musk ha annunciato per la prima volta il "Tesla Bot" all'AI Day dell'anno scorso, promettendo che sarebbe stato "amichevole" e potenzialmente avrebbe rivoluzionato la catena di montaggio e l'attività di produzione dell'azienda. Musk aveva avvertito i suoi fan di non aspettarsi che il prototipo assomigli al rendering lucido in bianco e nero mostrato per la prima volta all'evento dell'anno scorso. Quello nell'immagine qui sotto: Ma non è mancato il clamore, con Musk che ha definito il robot "lo sviluppo di prodotto più importante che stiamo facendo quest'anno" e prevedendo che avrà il potenziale per essere più significativo del settore dei veicoli nel tempo. Le applicazioni future potrebbero includere la cucina, il giardinaggio o persino i partner sessuali ; Musk ha affermato che la produzione potrebbe iniziare il prossimo anno. Nei giorni che hanno preceduto l'AI Day, gli esperti di robotica hanno messo in guardia dal comprare troppo nelle affermazioni di Musk. Hanno notato che altre aziende sono molto più avanti nello sviluppo di robot in grado di camminare, correre e persino saltare, ma nessuna afferma di essere vicina alla sostituzione del lavoro umano. La storia di Tesla è disseminata di idee fantasiose che non hanno mai avuto successo, come una rete di Supercharger a energia solare , lo scambio di batterie o caricatori robotici a forma di serpente, quindi nessuno sa se un Tesla Bot pronto per la produzione vedrà mai la luce del giorno . Ma l'azienda è dov'è oggi grazie alla pura volontà di Musk. Tesla bot è progettato per il lavoro manuale Quando ha annunciato il Tesla Bot all'ultimo AI Day, Musk ha affermato che il robot assumerà compiti pericolosi, noiosi e ripetitivi dagli umani. In futuro, "il lavoro fisico sarà una scelta", ha detto Musk. Il robot potrà camminare a 5 mph. Avrà uno schermo montato sul viso che mostrerà "informazioni utili" e sarà in grado di sollevare 150 libbre, ha detto Tesla. Una delle prime applicazioni per i robot Tesla sarà nelle fabbriche automobilistiche dell'azienda. Anche tu potrai comprarti un Tesla bot Ad aprile, Musk ha previsto che il Tesla Bot sarà disponibile per i consumatori in meno di 10 anni. Sarà in grado di svolgere compiti domestici come riordinare, preparare la cena, falciare il prato, fare la spesa e prendersi cura dei membri anziani della famiglia, ha detto Musk. Quando sarà ampiamente disponibile, costerà "meno di un'auto", secondo Musk. Quiz sul Tesla bot :
- Come fare un chat bot robotico
La parola “chat-bot” è una parola composita tratta dal dizionario inglese dove con “chat” si intende l’azione del “chiacchierare” e con la contrazione “bot” si intende “robot”. Solitamente però si identificano i/le chabot come macchine virtuali ovvero software che in base a degli algoritmi di “intelligenza artificiale”, sono in grado di interagire verbalmente con gli esseri umani. Un chatbot robotico è un robot reale, che possiede, oltre ad una gestione software di interazione colloquiale, anche degli apparati hardware, quali sensori, motori, strutture e parti in movimento. L’espressione più performante di queste macchine sono i robot umanoidi. Non serve necessariamente che il robot abbia delle sembianze umane, per essere un piccolo chatbot, per esempio Q.bo STEM è un esempio di chatbot che coniuga bene alcuni aspetti del chatbot. Ha una estetica simpatica non necessariamente umana, ma in grado di assumere delle forme che generano empatia. 1. Progettazione di un chat bot robotico Quindi, la prima categoria di ingredienti sono proprio le apparecchiature, le parti meccaniche, le plastiche che danno forma al robottino. Ma alla base, c’è la progettazione ergonomica ed estetica, quindi, una delle “skills” richieste è quella di saper utilizzare degli strumenti adatti a generare almeno il design dell’oggetto. Per gli appassionati di disegno tecnico, ci sono moltissimi software che possono essere utilizzati per disegnare un robot anche in tridimensionale, oppure anche in “virtuale”. Ovvio, ci sono dei software con altissime prestazioni, ma sono a pagamento, però in rete esistono anche degli software gratuiti, che permettono di arrivare anche a dei buoni livelli di progettazione, mi riferisco ad esempio a “FreeCad”: un software di disegno 3D completo e molto poliedrico. Si tratta di un potente programma open source multipiattaforma che si può installare in windows Mac e linux per eseguire disegni tecnici 2D e 3D. Il software consente di lavorare in una moltitudine di ambienti che possono essere impiegati per la creazione di disegni, di oggetti tridimensionali, di files per il controllo delle macchine a controllo numerico, renderizzazione, creazione di animazioni, ecc. FreeCAD è un CAD completamente gratuito, progettato in particolare per creare modelli in 3D ed è rivolto soprattutto all’ingegneria meccanica ma è adatto anche per altre applicazioni ingegneristiche ed al settore dell’architettura. Ovvio che non potrà competere ad esempio con colossi come Solidworks, ma con tutti i suoi limiti, consente de avere a disposizione una discreta interfaccia utente, e di generare dei disegni tridimensionali di buona qualità. Le carenze possono essere date da analisi dinamiche delle meccaniche e altre prestazioni avanzate, che sono più consone a framework for software engineering professionali, ma per iniziare a progettare delle strutture robotiche adeguate a dei piccoli chatbot, direi che è sufficiente e propedeutico. Alcuni esempi: Tutto sommato, direi che è una buona base di partenza per cercare di realizzare, almeno sotto il profilo progettuale, la struttura, il disegno, l’immagine grafica tridimensionale, dei vari componenti, apparecchiature e parti ergonomiche, che al limite, possono anche essere realizzate utilizzando una stampante tridimensionale. E’ anche vero che ci sono robot venduti in scatola di montaggio ( anche Q.bo STEM lo era), ma volete mettere cosa significa dare una vostra impronta personale all’estetica (e anche alla funzionalità) del prodotto? 2. La realtà virtuale Con il termine realtà virtuale (a volte abbreviato in VR dall'inglese virtual reality) si identificano vari modi di simulazione di situazioni reali mediante l'utilizzo di computer e l'ausilio di interfacce appositamente sviluppate, quindi non è strettamente necessario che il robot sia fisicamente realizzato, una alternativa è quella di utilizzare proprio strumenti che permettono di sviluppare il prodotto per l’utilizzo della realtà virtuale. Gazebo è un toolkit gratuito di simulazione robotica open source progettato per aiutare gli ingegneri a testare algoritmi, progettare virtualmente i loro robot, addestrare sistemi di intelligenza artificiale con scenari realistici e altro ancora. Il sistema presenta dozzine di caratteristiche e funzioni, inoltre è supportato da dozzine di ingegneri robotici in tutto il mondo. Gazebo riceve aggiornamenti frequenti e correzioni di bug dalla comunità di sviluppatori attivi, il che lo rende affidabile per l'utilizzo nel mondo reale. Il progetto è stato avviato nell'autunno del 2002 presso la University of Southern California. È diventato un progetto open source di livello mondiale. Caratteristiche: • Open-source • Simulazione di robotica dinamica • Simulazione grafica 3D avanzata di alta qualità • Kit di simulazione sensori ricco • Simulazione del rumore • Sistema di moduli con dozzine di plugin • Ricco set di modelli di robot • Supporto per il trasporto TCP/IP • Simulazione delle nuvole • Ricchi strumenti da riga di comando • Sviluppatore e documentazione di facile utilizzo • API a misura di sviluppatore • GUI intuitiva • Tasti di scelta rapida e set di interazione del mouse • Ricco di comunità di ingegneri e sviluppatori Risorse: http://gazebosim.org/ https://github.com/osrf/gazebo Gazebo è sicuramente un software fondamentale di ROS. ROS (Robot Operating System) è un kit di sviluppo software open source per applicazioni di robotica. ROS offre una piattaforma software standard agli sviluppatori di tutti i settori che si occupano di ricerca e di prototipazione ed è utilizzato fino all'implementazione dei processi di produzione. A tal proposito vi rimando ad un mio articolo che trattava proprio questo argomento: Clicca qui per saperne di più... Alcuni esempi di applicazioni su ambienti virtuali realizzati con Gazebo: 3. Circuiti elettronici di un chat bot robotico Molte apparecchiature che vengono utilizzate nei robot, sono apparecchiature commerciali, ma ci può anche essere l’esigenza di dover progettare delle apposite schede elettroniche PCB (dall'acronimo inglese Printed Circuit Board), ad esempio per il comando dei motori, dei microfoni, dell’altoparlante, o di altri sensori particolari, come touch sensor, rilevatori radar, sonar ecc. A questo punto, servono competenze specifiche in elettronica, o perlomeno, competenze sulla progettazione di layout per circuiterie elettroniche. EAGLE di Autodesk, ad esempio, è un software EDA (Electronic Design Automation) che consente ai progettisti di circuiti stampati (PCB) di collegare i componenti, partendo da diagrammi schematici. A tal riguardo, consiglio di acquistare il libro “The ultimate PCB designer. Edizione 2021” Il libro, edito nel 2021, fa parte della collana di trattati di elettronica del dott. Gottardo. Basato principalmente sul CAD Eagle, di Autodesk, è in realtà spendibile per qualunque prodotto software. Mirato all’apprendimento delle procedure di progettazione e sviluppo di PCB professionali ma contiene anche una spiegazione pratica su come realizzare in casa prototipi con tecniche di fotoincisione e corrosione facilmente replicabili senza grossi investimenti. Sono comunque interessanti anche software quali “Proteus”. la Proteus Design Suite si trova in scuole superiori, college e università di tutto il mondo, insegnando design embedded e layout PCB a decine di migliaia di studenti ogni anno. Sono dei software che consentono anche l’analisi circuitale, quindi particolarmente indicati anche in fase di progettazione elettronica dei dispositivi. Per iniziare però, si può anche utilizzare del software gratuito oppure online, magari per provare a disegnare un “ponte ad H”, per poi passare ad un “PWM”. Per farsi un’idea della difficoltà di realizzazione si potrebbe prendere visione di alcune pagine di questo sito 4. Sistemi operativi di un chat bot robotico La realizzazione di una chatbot robotico richiede sicuramente che, chi si approccia a compiere questo percorso, lo faccia a piccoli passi ed usufruisca di tutte e due le gambe, appoggiando bene i piedi a terra, nel senso pratico, anche se il robot poi si muoverà su rotelle! E non abbia la testa tra le nuvole, anche se poi il robot potrebbe anche volare! C’è un oceano di cose da prendere in considerazione, anche se si vuole costruire un piccolo catamarano. L’impresa può sembrare titanica, anche se si tratta di progettare un piccolo robottino, Da una parte c’è l’hardware del sistema, che come accennato sopra, richiede parecchie competenze, e l’altra è il software, che ne richiede altrettante. L’hardware del sistema è legato al software, che, per chi inizia ad entrare in questo ambito della materia STEM (dall'inglese science, technology, engineering and mathematics), quasi sempre è una versione GNU Linux. Il Progetto GNU supporta sia i sistemi GNU/Linux sia il sistema GNU. La Free Software Foundation (FSF) ha finanziato la riscrittura delle estensioni relative a Linux della libreria GNU C, in modo che ora sono ben integrate. Oggi esistono numerose varianti del sistema GNU/Linux, di solito vengono chiamate “distribuzioni”, in particolare, ad esempio, ci sono sistemi operativi che vengono installati su delle SBC (acronimo inglese di single board computer), una soluzione molto flessibile che si presenta come una scheda compatta che offre tutte le principali interfacce del mondo PC. Le soluzioni single-board computer inoltre possono essere personalizzate e ben interfacciate, dal punto di vista hardware, proprio quello che avviene ad esempio per il Raspberry Pi, che è soltanto uno dei molti reperibili sul mercato, ma che usufruisce di sistemi operativi free, come le distribuzioni GNU/Linux. Ma ci sono almeno 65 tipi di SBC nel mercato, alcuni, con sistemi operativi proprietari. Da quanto sopra, è evidente che, la prima competenza indispensabile, per chi si inoltra in questo cammino, è l’apprendomento dei linguaggi o script di shell, per Linux ad esempio, Bash è una shell testuale che è stata ideata da Stephen Bourne, da cui prende il nome. E' l'evoluzione della shell standard /bin/sh di Unix. Si tratta di un interprete testuale di comandi che ne permette l’esecuzione. I comandi sono digitati tramite la linea di comando e possono anche essere incorporati in file eseguibili, contenenti procedure ( script ). Uno script quindi è costituito da una serie di comandi operativi. Può contenere variabili e strutture di controllo, come un linguaggio di programmazione, ma non deve essere compilato. Il software interprete del sistema lo legge e lo esegue direttamente. E’ quella parte di software che permette di caricare le “software suite”, “piattaforme”, ovvero, dei “contenitori” di programmi informatici che rispondono a esigenze diverse, nello stesso ambito operativo, famosa è Microsoft office, che nell’ambiente Linux corrisponde a Libre Office o Open Office. Per quanto riguarda alcune applicazioni di intelligenza artificiale, nell’ambito della computer vision, OpenCV (acronimo in lingua inglese di Open Source Computer Vision Library) è una libreria software multipiattaforma nell'ambito della visione artificiale in tempo reale. 5. A.I. e librerie di programmi per un chat bot robotico Il chatbot robotico, per essere tale, deve avere la possibilità di interagire con il mondo esterno, non necessariamente deambulare o muoversi e camminare a due o a sei gambe, volare oppure navigare, ma almeno deve vedere, in alcuni casi riconoscere ostacoli, forme, oggetti, volti, per poter interagire e chiacchierare. La conoscenza di OpenCV, oppure di qualche altra alternativa per la gestione immagini e video costituisce quindi una parte fondamentale delle competenze da mettere in campo. Il chatbot, deve interagire con gli umani, deve quindi essere in grado di effettuare un rilevamento facciale (face detection), se non addirittura un riconoscimento facciale (Facial recognition), laddove è consentito. A questo punto subentrano le librerie specifiche di Intelligenza artificiale, che, nel caso della computervision, possono “lavorare sotto il cofano” di altre applicazioni, oppure essere esplicitamente programmate. Se viene richiesta una interazione funzionale, il chatbot deve essere in grado di riconoscere perlomeno dei comandi specifici, quindi si necessita di poter eseguire perlomeno una trasposizione da “parlato” a testo. La trascrizione del del parlato in testo (STT) in tempo reale viene basata su tecniche di machine learning. Speech-to-Text di google, ad esempio, converte con precisione la voce in testo, utilizzando un'API basata sulle migliori ricerche e tecnologie AI di Google. Nelle versioni più elementari di ChatBot, però, si deve essere in grado anche di fornire in output almeno una voce sintetizzata trasformando del testo, in parlato (TTS). Da quanto sopra è palese che, per fare queste operazioni, si debba essere in grado, non solo di saper installare i software necessari, ma anche di saper programmare, mediante dei linguaggi dedicati le varie “skills” del Chatbot. Attualmente credo che il linguaggio più indicato per questa tipologia informatica sia Python, che è generalmente più orientato al linguaggio umano, che non il C o il C++, che, a mio avviso trova migliori applicazioni se orientato alla parte hardware o per sistemi embedded. La libreria python, per quanto concerne l’intelligenza artificiale è vastissima e permette di arrivare alla analisi del linguaggio parlato NLP (Natural Language Processing). Per concludere, vorrei solo accennare ad alcune di queste librerie di riferimento: Pytorch PyTorch è una libreria di tensori ottimizzata per il deep learning tramite GPU e CPU, che si basa su NumPy. NumPy è una libreria open source per il linguaggio di programmazione Python, che aggiunge supporto a grandi matrici e array multidimensionali insieme a una vasta collezione di funzioni matematiche di alto livello per poter operare efficientemente su queste strutture dati. TensorFlow Questa è una libreria software open source per l'apprendimento automatico (machine learning), che fornisce moduli sperimentati e ottimizzati, utili nella realizzazione di algoritmi per diversi tipi di compiti percettivi e di comprensione del linguaggio. Fondamentalmente è una generazione di API, (application programming interface), utilizzata da molti team attivi sia in ambiti di ricerca scientifica, sia in ambiti di produzione. Viene utilizzato da prodotti commerciali Google come il riconoscimento vocale, Gmail, Google Foto, e Ricerca. TensorFlow fu sviluppato dal team Google Brain e reso disponibile il 9 novembre 2015, nei termini della licenza open source Apache 2.0. Keras E' una libreria scritta in Python (rilasciata sotto licenza MIT). Si tratta di software open source per l’apprendimento automatico e le reti neurali e supporta come back-end TensorFlow (dal 2017). Keras offre moduli utili per organizzare differenti livelli. Il tipo principale di modello è quello sequenziale, ovvero una pila lineare di livelli. Keras consente una prototipazione facile e veloce, supporta sia reti convoluzionali (CNN) che reti ricorrenti (RNN) o combinazioni di entrambi, supporta schemi di connettività come multi-input e multi-output e funziona sia su CPU che GPU. Keras quindi è una libreria di alto livello, mentre Tensorflow è una libreria di basso livello denominata backend, proprio per il ruolo che svolge nella pila software. Scikit-learn Questa è una libreria open source di apprendimento automatico per il linguaggio di programmazione Python. Contiene algoritmi di classificazione, regressione e clustering (raggruppamento) e macchine a vettori di supporto, regressione logistica, classificatore bayesiano, k-mean e DBSCAN, ed è progettato per operare con le librerie NumPy e SciPy. scikit-learn utilizzata anche dalla I.A. di Google. Pandas dataframe Pandas DataFrame è una struttura dati tabulare bidimensionale, potenzialmente eterogenea, con assi etichettati (righe e colonne). Panda è una libreria Python che consente di lavorare con dati organizzati utilizzando righe e colonne chiamate "dati tabulari". Similmente ad foglio di calcolo come Excel, viene utilizzata per manipolare i dati tabulari. Pandas si può usare per attività simili per le quali si userebbe Excel, o qualunque altro spreadsheet come la semplice manipolazione dei dati, ma può anche essere utilizzato per potenziare attività complesse di data science come l’apprendimento automatico. Se il chatbot è dotato di un touchscreen, è l’ideale per la presentazione dei dati. Nltk Ma, il chatbot robotico, per essere all’altezza del suo nome, deve implementare degli algoritmi rivolti al processamento del linguaggio naturale umano. NLTK è una piattaforma leader per la creazione di programmi Python per lavorare con i dati del linguaggio umano. Fornisce interfacce di facile utilizzo per oltre 50 corpora e risorse lessicali come WordNet, insieme a una suite di librerie di elaborazione del testo per classificazione, tokenizzazione, stemming, tagging, analisi e ragionamento semantico, wrapper per librerie NLP di livello industriale, e un forum di discussione attivo . Grazie a una guida pratica che introduce i fondamenti della programmazione insieme ad argomenti di linguistica computazionale, oltre a una documentazione API completa, NLTK è adatto a linguisti, ingegneri, studenti, educatori, ricercatori e utenti del settore. NLTK è disponibile per Windows, Mac OS X e Linux. Soprattutto, NLTK è un progetto gratuito, open source e guidato dalla comunità. NLTK è stato definito "uno strumento meraviglioso per insegnare e lavorare nella linguistica computazionale utilizzando Python" e "una straordinaria libreria per giocare con il linguaggio naturale". L'elaborazione del linguaggio naturale con Python fornisce un'introduzione pratica alla programmazione per l'elaborazione del linguaggio. Scritto dai creatori di NLTK, guida il lettore attraverso i fondamenti della scrittura di programmi Python, del lavoro con i corpora, della categorizzazione del testo, dell'analisi della struttura linguistica e altro ancora. La versione online del libro è stata aggiornata per Python 3 e NLTK 3. Ovviamente ci sono altri software che sono stati implementati da varie multinazionali al fine di rendere sempre più elevvate le prestazioni dei chatbot, in questo ambito, LaMDA (Language Model Fot Dialogue Applications), ne è un esempio lampante, chi non ha presente la vicenda scatenata dalla interazione di questa A.I. e l’ingegnere dello staff di Google?. OpenAI GPT-3 è un software di intelligenza artificiale particolarmente efficiente nella produzione automatica di testi, creato da OpenAI. Tecnicamente si tratta di un modello di linguaggio che utilizza il deep learning per generare testo simile a quello che produrrebbe un essere umano. Il nome GPT-3, è un acronimo che sta per Generative Pre-trained Transformer, di terza generazione. Quindi un sistema generativo, pre-addestrato, e basato sui "Transformer". Ma OpneAI, elabora fornisce molti altri prodotti che possono essere implementati, per esempio per generare ha elaborate la A.I. Dall-e. Per concludere, vorrei precisare che questi sono solo alcuni degli “ingredienti” che si possono utilizzare per alimentare la nostra mente e prepararla ad affrontare nel modo più funzionale possibile, la scorpacciata che ci aspetta quanto vogliamo digerire un buon piatto di STEM. Creiamo un chatbot Robot Spero di avere solleticato l’appetito di qaulcuno dei lettori di questo articolo, e non posso lasciarvi a bocca asciutta, quindi, cerco di darvene un piccolo assaggio, con dei bocconcini di codice che ho utilizzato per fare in modo che Q.bo STEM, salutasse, quando riconosce un volto, di fronte o di profilo. Sono spezzoni di codice in python, che spero possano rendere l’idea di che cosa significhi produrre del codice per un chatbot robotico. La parte iniziale del programma è dedicata alle procedure di importazione delle librerie necessarie: #!/usr/bin/env python3 import QboCmd_test_base_v3 import serial import cv2 as cv import numpy as np import subprocess import time import yaml La seconda parte di questo spezzone di codice riporta un esempio di controllo sulla comunicazione della porta seriale che determina il controllo delle periferiche del robot. port = '/dev/serial0' # Open serial port ser = serial.Serial(port, baudrate=115200, bytesize = serial.EIGHTBITS, stopbits = serial.STOPBITS_ONE, parity = serial.PARITY_NONE, rtscts = False, dsrdtr =False, timeout = 0) #altro codice di controllo print ("Open serial port sucessfully.") print(ser.name) QBO = QboCmd_test_base_v3.Controller(ser) print (ser) Le seguenti righe di codice riportano un esempio di settaggio delle variabili globali e locali necessarie per il corretto funzionamento del programma. Ksp = 100 #speed = 100 fw = 320 fh = 280 fwc = fw/2 fhc =fh/2 center = fwc, fhc f_frameCenter = fwc, fhc p_frameCenter = fwc, fhc f_face = None p_face = None #logic flags f_Facedet = None p_Facedet = None ... segueno altri settaggi.... Caricamento del file di configurazione e predisposizione per un minimale sistema di colloquio: config = yaml.safe_load(open("configQbo.yml")) print(str(config["volume"])) phrases = ( "ciao, ti ho visto! Vuoi dirmi qualcosa?", "buogiorno! cosa facciamo?", "heilà, dimmi!", "scusa, ero distratto! adesso ti ho visto, ti ascolto!", "ci sono! adesso ti vedo! cosa posso fare?", "ciao! vuoi che faccia qualcosa?", "guarda che ti vedo sai? ti ascolto anche!", "eccoti quì! finalmete, dimmi, ti posso essere utile?", "non è stato facile, ma ti ho visto! ti ascolto!", "che piacere vederti, facciamo qualcosa assieme?" ) Caricamento degli algoritmi per il riconoscimento facciale: f_faceCascade = cv.CascadeClassifier("/home/pi/.local/lib/python3.7/site-packages/cv2/data/haarcascade_frontalface_alt2.xml") p_faceCascade = cv.CascadeClassifier("/home/pi/.local/lib/python3.7/site-packages/cv2/data/haarcascade_profileface.xml") .... segue altro codice di settaggio per acquisizione video ecc. script delle funzioni di programma: def ServoHead(): #funzioni di movimentazione della testa def F_capture(video_capture): #funzioni sul rilevamento della faccia def P_capture(video_capture): #funzioni di rilevamento del profilo #Funzione di attivazione della procedura di saluto: def FaceControl(): global Home_x, Home_y, Xcoor, Ycoor, Face_detected if f_Facedet == True or p_Facedet == True: Face_detected = True print ("Face_detected = ", Face_detected) speaker_ok = False if Face_detected == True and speaker_ok == False: t_ini = time.time() print("sepaker", speaker_ok) Speech_it(phrases[int(np.random.rand()*10)]) speaker_ok = True print ("t_ini",t_ini," ", "sepaker_ok=", speaker_ok) Face_detected = False print ("time", time.time()) if time.time() - t_ini > 100: print ("°°°°°°°°°°°") print ("time:", time.time(), "t_ini", t_ini) t_ini = time.time() speaker_ok = False ... seguono altre line di codice Funzione di procedura di saluto effettuata con le condizioni impostate sopra: def Speech_it(text_to_speech ): ... segue codice per l’attivazione dello speaker ... Altra funzione ausiliaria per il controllo del tocco def WaitForTouch(): Procedura di loop: while True: fr_time = time.time() #print ("time: " + str(time.time() - fr_time)) F_capture(video_capture) P_capture(video_capture) #cv2.circle(f_frame, f_frameCenter, radius=4, color=(255, 0, 0), thickness=-1) #cv.imshow('FVideo', f_frame) #cv2.circle(p_frame, p_frameCenter, radius=4, color=(0, 255, 0), thickness=-1) #cv2.imshow('PVideo', p_frame) FaceControl() time.sleep(1) #WaitForTouch() if cv.waitKey(1) & 0xFF == ord('q') : #== ord('q') break video_capture.release() cv2.destroyAllWindows() QBO.SetNoseColor(0) time.sleep(0.5) QBO.SetMouth(0) Questo sono delle linee di codice estrapolate da un file di test preliminare per il controllo delle potenzialità espressive e funzionali del ChatBot. Q.bo STEM. Q.bo STEM è un ChatBot Robotico versatile, che può essere utilizzato in semplici impieghi, come ad esempio promoter di articoli o gadget, puo fare anche home sourveillance, ma la sua vera natura attitudinale è quella di essere impiegato nella didattica di apprendimento per l’utilizzo etico dell’intelligenza artificiale. Clicca quì per vedere il risultato finale Per questo mi sono impegnato per un lungo periodo a scrivere il libro di testo ROBOTICS in EDUCATION, che spero venga apprezzato da insegnanti e docenti delle scuole che si fregiano di insegnare tecniche STEM o STEAM. Nella sua forma più elementare, STEM sta per Scienza, Tecnologia, Ingegneria e Matematica (in lingua inglese). In alternativa, STEAM sta per Scienza, Tecnologia, Ingegneria, Arti e Matematica. Ma l’educazione STEM è molto più che unire insieme i titoli delle materie, è una filosofia dell’educazione che abbraccia abilità e materie di insegnamento in un modo che assomiglia alla vita reale. Il Libro ROBOTICS IN EDUCATION è acuistabile sulle piattaforme: Lulu Pubblicazioni Amazon ( Acquistabile con il Bonus Cultura e Carta docente ) Grazie per l’attenzione, Romeo Ceccato.
- Machine Learning nel Trading usando NEURAL NETWORK-PROPHET
"Produrre previsioni di alta qualità non è un problema facile né per le macchine né per la maggior parte degli analisti. Abbiamo osservato due temi principali nella pratica della creazione di una varietà di previsioni aziendali: Le tecniche di previsione completamente automatiche possono essere fragili e sono spesso troppo inflessibili per incorporare ipotesi o euristiche utili. Gli analisti che possono produrre previsioni di alta qualità sono abbastanza rari perché la previsione è un'abilità specializzata nella scienza dei dati che richiede una notevole esperienza. " Dal sito web di Facebook Prophet. In questo progetto utilizzeremo l’algoritmo Neural Prophet per la previsione del cross EUR/CHF. Per la trattazione dell’argomento si farà uso del software di programmazione Python in ambiente Jupiter Notebook. Un mondo di profeti Quando nel mio primo articolo Introduzione al Machine Leanring per il Trading, inizio di questa avventura divulgativa, abbiamo voluto introdurre i concetti di previsione abbiamo fatto riferimento, con approccio provocatorio, a coloro che soprattutto nel passato pretendevano di prevedere il future basandosi su presunte doti magiche, segno di benevolenza divina, che gli permetteva di affermarsi nelle società del tempo incutendo rispetto e timore. Con il tempo e con il progresso scientifico si è dimostrato che tali poteri paranormali previsionali erano fallimentari per almeno due motivi. Uno, erano statisticamente non affidabili, razionalmente non giustificabili e pertanto instabili, due, allorquando validi, erano dimostrati tali da una predisposizione mentale che rendeva quelle previsioni vere o verosimili. Fare previsioni significa considerare tutte le caratteristiche (nello spazio e nel tempo) di un fenomeno passato, assegnare ad ognuna di esse un peso di influenza, combinarle tra loro e contestualizzarle ed adattarle in una nuova circostanza. Posso prevedere con certezza pressochè assoluta che domani avremo un alba e un tramonto, abbastanza accurata se la giornata sarà piovosa, nuvolosa o soleggiata, un po’ meno se devo prevedere dove trovare parcheggio in centro città (tanto piu’ se non conosco la zona). Le previsione é imprescindibile dall’esperienza passata, ma la stessa non ne è garanzia di accuratezza. Come nei teoremi matematici potremmo dire che, a meno di essere sicuro di aver considerato tutte (ma proprio tutte) le variabili, l’esperienza passata è condizione necessaria ma non sufficiente per la bontà della previsione. Questo é vero a tutti i livelli, dai nostri comportamenti di fronte a determinate situazioni di cui abbiamo esperienza, alle strategie geopolitiche che prendono spunto dalla storiografia, dalle analisi e previsioni di vendita di un attività commerciale, al classico esempio noto a tutti gli studiosi di machine learning sulla potenziale solvibilità di un cliente bancario. Quando parliamo di previsioni di prezzo e andamento di un prodotto finanziario tentiamo di dare una interpretazione di come quel fenomeno, già prodotto risultante di previsoni fatte nel passato (il mercato), possa evolversi sulla base di pattern storici. Un problema fondamentale é quello di determinare quale é il migliore intervallo temporale tra il presente e il passato per elaborare la previsione, e fino a quando. Se per esempio il trader graficista vuole una previsione giornaliera, deve considerare l’andamento dell’ultimo mese, dell’ultima settimana o dell’ultimo anno? FACEBOOK PROPHET Facebook ha sviluppato il software previsionale Prophet disponibile per applicazioni sia in Python che in R. Fornisce parametri intuitivi che sono facili da modulare per cui anche chi non ha una profonda esperienza nei modelli di previsione in serie temporali può usarlo per generare previsioni significative per una vasta varietà di problemi. Un modello di regressione su modelli che presentano carattere stagionale particolarmente robusto in caso di dati mancanti, spostamenti di tendenza, e nella gestione degli outlier. Prophet utilizza un modello di serie temporale scomponibile in tre elementi principali del modello: tendenza, stagionalità e interruzioni, combinati nella seguente equazione: y(t)= g(t) + s(t) + h(t) + εt g(t): curva di crescita lineare o logistica per modellare i cambiamenti non periodici nelle serie temporali s(t): cambiamenti periodici (es. stagionalità settimanale/annuale) h(t): effetti delle interruzioni (per esempio week end e vacanze) εt: il termine di errore tiene conto di qualsiasi cambiamento insolito non contemplato dal modello. Usando il tempo come regressore, Prophet inquadra il problema della previsione come un esercizio di adattamento della curva piuttosto che guardare esplicitamente la dipendenza basata sul tempo di ogni osservazione all'interno di una serie temporale. Prophet e la sua evoluzione Neural Prophet vengono considerati come il ponte di collegamento tra le pure tecniche di analisi delle serie temporali e il deep learning (Figura 1) NEURAL PROPHET su EUR/CHF Seguendo il solito principio di costruzione di un codice di machine learning ( se ti interessa ne ho parlato dettagliatamente in un articolo ), partiamo con l’importazione delle librerie di gestione tabelle e grafica : digita i seguenti comandi sul terminale per scaricare le librerie necessarie Se hai python < 3 pip install yfinance pip install neuralprophet Se hai python >= 3 pip3 install yfinance pip3 install neuralprophet Se stai usando google Colab !pip install yfinance !pip install neuralprophet Ora crea un nuovo file e iniziamo a scrivere codice. import pandas_datareader.data as web import pandas as pd import matplotlib.pyplot as plt import numpy as np STEP 1 – IMPORTAZIONE E LETTURA DATI Procediamo con l’impostazione delle funzioni che ci permettono di leggere I valori del cross Euro – Franco Svizzero con ticker EURCHF=X che vogliamo analizzare : from datetime import datetime start = datetime (2015,3,8) end= datetime (2022,3,8) data = yf.download(tickers = EURCHF, start=start, end=end) Che da l’output Figura 2 STEP 2 – ELABORAZIONE, TRASFORMAZIONE E ORGANIZZAZIONE DATI In questa fase trasformiamo I dati in maniera tale che gli stessi possano essere gestiti dall’algoritmo neuralprophet che utilizzeremo. closecolumn=data.iloc[:,3] closecolumn L’ultima riga di codice ci darà la possibilità di visualizzare la nuova struttura dati (Figura 3) e il suo andamento grafico con le funzioni di plotting (Figura 4) Per utilizzare NeuralProphet dobbiamo operare una ulteriore trasformazione del nostro dataframe eseguendo le seguenti linee di codice : neuralproheptdataset = closecolumn.reset_index() dataprophet = neuralprophetdataset.rename(columns = {“Date”:”ds”, “Close”:”y”}) dataprophet Che restituisce l’output (F5) STEP 3 – DEFINIZIONE DEL MODELLO Importiamo la libreria che ci permetterà di implementare neuralprophet ed eseguire le operazioni per esso necessarie con le seguenti istruzioni from neuralprophet import NeuralProphet STEP 4 – ADDESTRAMENTO DEL MODELLO Con NeuralProphet l’addestramento del modello viene compiuto con le semplici line di codice che seguono dove indichiamo I nostri parametri (tra gli altri notiamo il periodo in cui vogliamo la previsione con n_forecast = periodo previsionale di 30 giorni), m = NeuralProphet( n_forecasts=30, n_lags=60, n_changepoints=50, yearly_seasonality=True, weekly_seasonality=False, daily_seasonality=False, batch_size=64, epochs=100, learning_rate=1.0, ) STEP 5 – VALUTAZIONE AFFIDABILITA’ DEL MODELLO Come sempre dobbiamo valutare la bontà del nostro modello e capire quando dopo diverse iterazioni di addestramento i valori convergono e diventano stabili per iterazioni successive metrics = m.fit(dataprophet, freq="D") metrics In Figura 6 vediamo il riassunto delle metriche. Di cui possiamo vedere anche una rappresentazione grafica (F7) STEP 6 - PREVISIONE Avendo costruito il modello ed avendo appurato la sua precisione, se accettabile, procediamo con la previsione futura, a 30 giorno dopo l’ultima data disponibile nel nostro dataset chiamato dataprophet e cioé 7 marzo 2022. future = m.make_future_dataframe(dataprophet, periods=30, n_historic_predictions=len(roughdata)) #noi dobbiamo specificare il numero di GIORNI da prevedere prediction = m.predict(future) in questo modo, operando alcune trasformazioni e lanciando la funzione di plotting abbiamo il grafico in F8. possiamo a questo punto azzardare anche una previsione a 100 giorni semplicemente cambiando il parametro n_forecast ottenenendo con la stessa serie di istruzioni per il plotting da Figura 9 che zoommato da il grafico di Figura 10. Conclusioni A proposito di futuro, si pensa che in 50 anni le capacità di calcolo delle macchine siano grado di emulare il ragionamento umano; é chiamata AGI, Artificial General Intelligence. C’é chi pensa ad essa come un opportunità, altri come una minaccia. La macchina dovrebbe in teoria sosituire l’uomo nelle cose “complesse” che la macchina riesce a fare bene e meglio (calcoli, gestione dei dati) ma quando lo sostituisce nelle attività comuni (la guida di un autoveicolo) o semplici (servire il caffè, fare il check in in hotel, passare l’aspirapolvere) entriamo in un discorso che affronta una tematica socio culturale simile a quella che ci viene raccontata dei tempi della rivoluzione industriale. Come ricollocheremo gli addetti (presumiamo non altamente qualificati) che oggi sono impiegati in quei settori? Per la risposta a questa domanda credo neanche la macchina piu’ avanzata possa aiutarci. Anzi quando entriamo nel campo della fantasia e creatività forse siamo ancora superiori e ancora per un po’ irraggiungibili. Come umani, siamo meno dipendenti da dati di input strutturati rispetto alla macchina perchè abbiamo immaginazione, abbiamo ispirazione, abbiamo sensazioni. Non confondiamo la capacità di progredire con la semplice capacità di fare previsione. Ricordiamo che alla base dell’intelligenza artificiale c’é l’idea di trovare dei pattern storici semplicemente sulla base di un enorme quantità di dati passati. In passato facevamo previsioni dopo aver compreso il fenomeno oggetto di studio ma le stesse non erano accurate quanto quelle che facciamo oggi con AI. D’altra parte possiamo affermare che l’algoritmo pur analizzando bene i dati e le correlazioni, non comprende in maniera intelligente e consapevolmente quello che sta facendo. Un sistema a guida autonoma riesce a decidere razionalmente, sulla base della sua codifica se in una situazione di pericolo deve proteggere i suoi passeggeri, il bambino che attraversa la strada. E se oltre al passeggero, il bambino ci fosse anche un ladro che scappa? Chi codifica il livello di priorità e in base a quale criterio? C’é un grande dibattito sull’etica dei sistemi AI e sulla responsabilità dei vari attori, a partire dai softwaristi agli utilizzatori, fino a quella dello stesso sistema. Per chi fosse interessato ad ottenere il codice completo e strutturato per un plug and play in ambiente Jupiter Notebook, richiedetelo pure all’autore all’indirizzo email nicola.matarese73@gmail.com. NON PERDERTI I PROSSIMI ARTICOLI Nicola Matarese classe 1973, ha conseguito una laurea magistrale in ingegneria meccanica ed ha ricoperto ruoli manageriali all’interno di realtà industriali in ambito aerospazio e difesa. E’ appassionato di trading e opera sui mercati dal 2001. Da qualche anno lavora a sistemi di trading supportati da teorie sui Big Data e Intelligenza Artificiale. Collegati o manda un messaggio a Nicola Matarese su LINKEDIN
- AutoEncoder cosa sono e come funzionano
In questo Articolo capiremo cosa sono e come funzionano gli AutoEncoder... Mentre il mondo si sviluppa rapidamente con i progressi nell'apprendimento automatico e nell'intelligenza artificiale , presto ci troveremo ad affrontare una situazione di aumento incontrollabile dei dati. Introduzione agli AutoEncoder GPU, TPU e altri meccanismi di archiviazione ed elaborazione più veloci hanno finora elaborato con successo grandi quantità di dati nel più breve tempo possibile, ma possono elaborare i dati in meno spazio. Devi anche considerare come comprimerli e archiviarli. E questo ci porta all'argomento della discussione odierna: gli autoencoder, una tecnica che ci consente di comprimere le informazioni disponibili. Cosa sono gli AutoEncoder ? Gli autoencoder sono tecniche di apprendimento non supervisionate basate su framework di reti neurali, addestrate a copiare input in output. Le reti neurali sono progettate per creare colli di bottiglia nella rete. Internamente, il livello nascosto h descrive il codice utilizzato per rappresentare l'input. Una rete di autoencoder è composta da tre parti. Innanzitutto, l'encoder comprime l'immagine e genera il codice utilizzando la funzione dell'encoder h = f(x). Quindi arriva un collo di bottiglia in cui abbiamo una rappresentazione della conoscenza compressa dell'input originale, seguita da un decodificatore che forma la ricostruzione r = g(h). Lo schema dell'autocodificatore è mostrato nella Figura 1. I dati vengono compressi e ristrutturati mentre si spostano attraverso l'architettura. Questo processo di compressione e ricostruzione è complicato quando le funzioni di input sono indipendenti. Tuttavia, se thSe esiste una correlazione tra i dati di input, le dipendenze esistenti possono essere apprese e utilizzate quando l'input viene forzato attraverso il collo di bottiglia della rete. Figura 1 – Diagramma che mostra lo schema di un tipico Autoencoder Nella seguente sottosezione, daremo uno sguardo dettagliato all'architettura di rete e ai corrispondenti iperparametri di un Autoencoder. L'architettura di un autoencoder Devi già avere un'idea sbiadita di come sarebbe un autoencoder. In questa sezione, aggiungeremo più profondità alla tua comprensione. Saremmo particolarmente interessati agli iperparametri di cui devi occuparti durante la progettazione di un autoencoder. Come accennato in precedenza, un codificatore automatico è costituito da tre parti: codificatore, codice e decodificatore. Sia l'encoder che il decoder sono semplici reti neurali feedforward. Il codice è un singolo strato di ANN con dimensioni selezionate. Per i livelli di input e di output, il numero di nodi è determinato dai dati di input X. Pertanto, i livelli di input e di output hanno lo stesso numero di nodi ed entrambi corrispondono a rappresentazioni ad alta dimensione. Lo strato nascosto centrale con il minor numero di nodi corrisponde alla rappresentazione a bassa dimensione. L'obiettivo del processo di formazione è ridurre al minimo l'errore di ricostruzione al quadrato tra gli input e gli output della rete. Per gli algoritmi di apprendimento, la strategia più comunemente utilizzata è la backpropagation. I pesi iniziali della rete sono importanti per l'encoder per trovare una buona soluzione. La backpropagation funziona in modo più efficace quando i pesi iniziali sono più vicini alla soluzione ottimale. Sono stati sviluppati molti algoritmi per trovare buoni pesi iniziali. Prima di addestrare l'autoencoder, dobbiamo impostare quattro iperparametri. Il numero di nodi nel livello intermedio, ovvero il livello di codice. Una dimensione più piccola del livello di codice comporterebbe una maggiore compressione. Poi viene il numero di livelli nelle architetture di codificatore e decodificatore. La profondità dell'architettura può essere regolata alla perfezione e l'architettura profonda presenta vantaggi rispetto alle reti esterne. Il numero di nodi per livello è il terzo iperparametro che dobbiamo regolare. Tipicamente il codificatore e il decodificatore sono simmetrici in termini di struttura del livello e il numero di nodi in ogni livello successivo del codificatore continua a diminuire fino a raggiungere il livello di codice e quindi continua ad aumentare in modo simile nell'architettura del decodificatore. La scelta della funzione di perdita è il quarto iperparametro. Le funzioni di perdita più utilizzate includono l'errore quadratico medio o l'entropia incrociata binaria. Il compromesso più importante negli autoencoder è il compromesso bias-varianza. Allo stesso tempo, l'architettura dell'autoencoder dovrebbe ricostruire bene l'input (riducendo l'errore di ricostruzione) mentre generalizza la rappresentazione bassa a qualcosa di significativo. Pertanto, per ottenere questa proprietà, diamo un'occhiata alle varie architetture sviluppate per affrontare questo compromesso. Tipi di AutoEncoder : 1. Codificatori automatici sparsi Queste reti offrono un metodo alternativo per introdurre colli di bottiglia senza richiedere la riduzione del numero di nodi. Gestisce il compromesso forzando la scarsità su attivazioni nascoste. Possono essere aggiunti sopra o al posto dei colli di bottiglia. Esistono due modi per applicare la regolarizzazione sparsa. Il primo è utilizzare la regolarizzazione L1 e il secondo è implementare la divergenza KL. Non entrerò nei dettagli matematici della tecnica di regolarizzazione, ma per questo blog è sufficiente una breve panoramica. Figura 2 – Rappresentazione schematica di un autoencoder sparso 2. Denoising degli autoencoder Gli autoencoder sono stati considerati reti neurali con ingressi e uscite identici. L'obiettivo principale è riprodurre l'input nel modo più accurato possibile evitando colli di bottiglia delle informazioni. Tuttavia, un altro modo per progettare un codificatore automatico consiste nel perturbare leggermente i dati di input ma mantenere i dati puri come output di destinazione. Con questo approccio, il modello non può semplicemente creare una mappatura dai dati di input ai dati di output perché non sono più simili. Quindi l'uso di questa opzione di regolarizzazione introduce del rumore nell'input mentre l'autoencoder dovrebbe ricostruire una versione pulita dell'input. Figura 3 – Rappresentazione schematica di un Denoising Autoencoder 3. Autocodificatori contrattuali Mentre nel caso precedente l'enfasi era sul rendere l'encoder più resiliente ad alcune perturbazioni dell'input, in questi tipi di architetture l'enfasi è sul rendere l'estrazione delle caratteristiche meno sensibile a piccole perturbazioni. È scritto. Ciò si ottiene facendo in modo che l'encoder ignori le modifiche nell'input che non sono significative per la ricostruzione da parte del decoder. L'idea principale alla base di questa tecnica di regolarizzazione è che le potenziali rappresentazioni non importanti per la ricostruzione vengono ridotte dal fattore di regolarizzazione. Al contrario, permangono variazioni importanti perché hanno un grande impatto sull'errore di ricostruzione. Figura 4 – Rappresentazione schematica di un autoencoder contrattuale Applicazioni degli Autoencoder Se hai letto fino a qui , dovresti avere le basi teoriche che devi conoscere sugli autoencoder. Ti starai chiedendo dove si trovi l'applicazione di queste strutture nell'apprendimento automatico. Questa sezione fa luce sulle applicazioni di queste strutture. La riduzione della dimensionalità è stata una delle prime applicazioni dell'apprendimento della rappresentazione. La riduzione delle dimensioni può aiutare a migliorare le prestazioni del modello in diversi casi. Un altro compito che avvantaggia ancor più della riduzione della dimensionalità è il recupero delle informazioni. Altre applicazioni degli autoencoder includono il rilevamento di anomalie, l'elaborazione di immagini, il denoising dei dati, la scoperta di farmaci, la previsione della popolarità e la traduzione automatica. Conclusione sugli autoencoder Ecco perché ho parlato di autoencoder nel blog di oggi. Gli autoencoder sono architetture originariamente progettate per aiutare con la riduzione della dimensionalità. Tuttavia, le sue applicazioni si sono moltiplicate molte volte nel tempo. In primo luogo, abbiamo brevemente introdotto la struttura di un autoencoder e come si ottiene la compressione dei dati a livello di codice. Abbiamo quindi discusso i diversi tipi di codificatori automatici e il modo in cui ognuno aiuta a gestire i compromessi di varianza bias. Infine, abbiamo finito di discutere gli scenari in cui gli autoencoder vengono applicati nel mondo di oggi. Quindi i punti chiave di questo articolo sono: L'approccio architettonico generale verso gli autoencoder Il compromesso bias-varianza affrontato dagli autoencoder In che modo l'applicazione di diverse tecniche di regolarizzazione può consentirci di gestire il compromesso. Ciò ti consentirebbe di pensare a più algoritmi di questo tipo e di sviluppare architetture più recenti. Le aree in cui questo tipo di architettura trova applicabilità. Credo di poterti lasciare con una profonda comprensione teorica dell'architettura e dei casi d'uso degli Autoencoder da questa discussione nel blog. Se questo articolo ti entusiasma, ti esorto ad andare avanti e sviluppare una tale architettura per te stesso. È un buon progetto da avere con te.
- 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.