Risultati Ricerca Intelligenza Artificiale Italia
331 risultati trovati per "ChatGPT business"
- Algoritmo gradient boosting dalla spiegazione all'implementazione in python
In questo articolo, spiegheremo la matematica alla base dell'algoritmo di gradient boosting per poi implementarlo in python su un set di dati reale. Che cosa è il gradient boosting ? L'aumento del gradiente è un metodo che si distingue per la velocità e l'accuratezza di previsione, in particolare con set di dati grandi e complessi. Dalle competizioni Kaggle alle soluzioni di apprendimento automatico per le aziende, questo algoritmo ha prodotto i migliori risultati. Sappiamo già che gli errori giocano un ruolo importante in qualsiasi algoritmo di apprendimento automatico. Esistono principalmente due tipi di errore, errore di bias e errore di varianza. L'algoritmo di incremento del gradiente ci aiuta a ridurre al minimo l'errore di bias del modello Prerequisiti : Se non sai cosa è il Machine Learning, clicca qui Se non conosci le principali applicazioni Machine Learning, clicca qui Se non sai come scaricare e gestire le librerie, clicca qui Se non sai cosa sia un Dataset, clicca qui Se non conosci i principali algoritmi di Machine Learning , clicca qui Se non sai perchè utilizzeremo Python , clicca qui Prima di entrare nei dettagli di questo algoritmo, dobbiamo avere una certa conoscenza dell'algoritmo AdaBoost che è ancora una volta un metodo di potenziamento. Questo algoritmo inizia costruendo un moncone decisionale e quindi assegnando pesi uguali a tutti i punti dati. Quindi aumenta i pesi per tutti i punti che sono classificati erroneamente e abbassa il peso per quelli che sono facilmente classificabili o sono classificati correttamente. Viene creato un nuovo moncone decisionale per questi punti dati ponderati. L'idea alla base di questo è di migliorare le previsioni fatte dal primo moncone. Ho parlato di più di questo algoritmo qui. Differenza tra gradient boosting e AdaBoost La principale differenza tra questi due algoritmi è che il Gradient boosting ha uno stimatore di base fisso, ad esempio Decision Trees, mentre in AdaBoost possiamo cambiare lo stimatore di base in base alle nostre esigenze. Ora possiamo partire con la spiegazione per poi arrivare all'implementazione su un set di dati. La guida sarà lunga, preparati un bel caffè . Indice Che cosa è il Boosting ? Algoritmo di potenziamento del gradiente Gradient Boosting Regressor Esempio di aumento del gradiente Classificatore di aumento del gradiente Implementazione tramite Scikit-learn Note finali Che cosa è il boosting ? Durante lo studio dell'apprendimento automatico devi esserti imbattuto in questo termine chiamato Boosting. È il termine più frainteso nel campo della scienza dei dati. Il principio alla base del potenziamento degli algoritmi è che prima abbiamo costruito un modello sul set di dati di addestramento, quindi viene creato un secondo modello per correggere gli errori presenti nel primo modello. Lascia che ti spieghi cosa significa esattamente e come funziona. Supponiamo di avere n punti dati e 2 classi di output (0 e 1). Si desidera creare un modello per rilevare la classe dei dati del test. Ora quello che facciamo è selezionare casualmente le osservazioni dal set di dati di addestramento e inviarle al modello 1 (M1), inoltre assumiamo che inizialmente tutte le osservazioni abbiano un peso uguale, il che significa un'uguale probabilità di essere selezionate. Ricorda che nelle tecniche di assemblaggio "i deboli " si combinano per creare un modello forte, quindi qui M1, M2, M3….Mn sono tutti " deboli " . Poiché M1 è uno "studente debole", sicuramente classificherà erroneamente alcune delle osservazioni. Ora, prima di inviare le osservazioni a M2, ciò che facciamo è aggiornare i pesi delle osservazioni che sono classificate erroneamente. Puoi pensarlo come una borsa che inizialmente contiene 10 palline di colore diverso, ma dopo un po' di tempo un bambino tira fuori la sua palla di colore preferita e mette invece 4 palline di colore rosso all'interno della borsa. Ora fuori rotta la probabilità di selezionare una pallina rossa è maggiore. Questo stesso fenomeno si verifica nelle tecniche di Boosting, quando un'osservazione viene classificata erroneamente, il suo peso viene aggiornato e per quelle correttamente classificate, il loro peso viene diminuito. La probabilità di selezionare un'osservazione classificata in modo errato aumenta, quindi nel modello successivo vengono selezionate solo le osservazioni che sono state classificate erroneamente nel modello 1. Allo stesso modo, accade con M2, i pesi classificati erroneamente vengono nuovamente aggiornati e quindi alimentati a M3. Questa procedura viene continuata fino a quando ea meno che gli errori non siano ridotti al minimo e il set di dati non sia previsto correttamente. Ora, quando il nuovo datapoint arriva (dati di test) passa attraverso tutti i modelli (studenti deboli) e la classe che ottiene il voto più alto è l'output per i nostri dati di test. Che cos'è un algoritmo di aumento del gradiente? L'idea principale alla base di questo algoritmo è quella di costruire modelli in sequenza e questi modelli successivi cercano di ridurre gli errori del modello precedente. Ma come lo facciamo? Come riduciamo l'errore? Questo viene fatto costruendo un nuovo modello sugli errori o sui residui del modello precedente. Quando la colonna target è continua, utilizziamo Gradient Boosting Regressor mentre quando si tratta di un problema di classificazione, utilizziamo Gradient Boosting Classifier . L'unica differenza tra i due è la "funzione di perdita" . L'obiettivo qui è ridurre al minimo questa funzione di perdita aggiungendo studenti deboli utilizzando la discesa del gradiente. Dal momento che si basa sulla funzione di perdita, quindi per problemi di regressione, avremo diverse funzioni di perdita come Errore quadratico medio ( MSE ) e per la classificazione, avremo diverse, ad esempio , log-verosimiglianza . Comprendere l'algoritmo di aumento del gradiente con l'esempio Capiamo l'intuizione dietro l'aumento del gradiente con l'aiuto di un esempio. Qui la nostra colonna target è continua, quindi useremo Gradient Boosting Regressor. Di seguito è riportato un esempio di un set di dati casuale in cui dobbiamo prevedere il prezzo dell'auto in base a varie caratteristiche. La colonna target è il prezzo e le altre funzionalità sono funzionalità indipendenti. Passaggio -1 Il primo passaggio nell'aumento del gradiente consiste nel creare un modello di base per prevedere le osservazioni nel set di dati di addestramento. Per semplicità prendiamo una media della colonna target e assumiamo che sia il valore previsto come mostrato di seguito: Perché ho detto che prendiamo la media della colonna target? Bene, c'è la matematica coinvolta dietro questo. Matematicamente il primo passo può essere scritto come: Guardare questo può darti un mal di testa, ma non preoccuparti cercheremo di capire cosa c'è scritto qui. L è la nostra funzione di perdita Gamma è il nostro valore previsto argmin significa che dobbiamo trovare un valore per il quale la funzione di perdita è minima. Poiché la colonna target è continua, la nostra funzione di perdita sarà: Qui y è il valore osservato E gamma è il valore previsto Ora dobbiamo trovare un valore minimo di gamma tale che questa funzione di perdita sia minima. Abbiamo tutti studiato come trovare minimi e massimi. Abbiamo usato per differenziare questa funzione di perdita e poi metterla uguale a 0 giusto? Sì, faremo lo stesso qui. Vediamo come farlo con l'aiuto del nostro esempio. Ricorda che y_i è il nostro valore osservato e gamma_i è il nostro valore previsto, inserendo i valori nella formula sopra otteniamo: ( stiamo usando i valori che puoi trovare nella tabella sopra, se vuoi esercitarti prova a fare questi conti da solo, se qualcosa non ti torna scrivici nei commenti ) Finiamo sopra una media del prezzo dell'auto osservato ed è per questo che ti ho chiesto di prendere la media della colonna target e presumere che fosse la tua prima previsione. Quindi per gamma=14500, la funzione di perdita sarà minima, quindi questo valore diventerà la nostra previsione per il modello base . Passaggio 2 Il passaggio successivo consiste nel calcolare gli pseudo residui che sono (valore osservato – valore previsto) Ancora una volta viene la domanda: perché solo osservato – previsto? Tutto è matematicamente dimostrato, da dove viene questa formula. Questo passaggio può essere scritto come: Qui F(x i ) è il modello precedente e m è il numero di DT realizzati. Stiamo solo prendendo la derivata della funzione di perdita rispetto al valore previsto e abbiamo già calcolato questa derivata: Se vedi la formula dei residui sopra, vediamo che la derivata della funzione di perdita è moltiplicata per un segno negativo, quindi ora otteniamo: Il valore previsto qui è la previsione fatta dal modello precedente. Nel nostro esempio la previsione fatta dal modello precedente (previsione del modello base iniziale) è 14500, per calcolare i residui la nostra formula diventa: Nella fase successiva, costruiremo un modello su questi pseudo residui e faremo previsioni. Perché lo facciamo? Poiché vogliamo ridurre al minimo questi residui e la riduzione al minimo dei residui alla fine migliorerà l'accuratezza del nostro modello e il potere di previsione. Quindi, utilizzando il residuo come obiettivo e la funzione originale Numero del cilindro, altezza del cilindro e posizione del motore genereremo nuove previsioni. Nota che le previsioni, in questo caso, saranno i valori di errore, non i valori previsti del prezzo dell'auto poiché la nostra colonna target è ora un errore. Diciamo che h m (x) è il nostro DT fatto su questi residui. Passaggio 4 In questo passaggio troviamo i valori di output per ciascuna foglia del nostro albero decisionale. Ciò significa che potrebbe esserci un caso in cui 1 foglia ottiene più di 1 residuo, quindi dobbiamo trovare l'output finale di tutte le foglie. Per trovare l'output possiamo semplicemente prendere la media di tutti i numeri in una foglia, non importa se c'è solo 1 numero o più di 1. Vediamo perché prendiamo la media di tutti i numeri. Matematicamente questo passaggio può essere rappresentato come: Qui h m (x i ) è il DT fatto sui residui e m è il numero di DT. Quando m=1 si parla del 1° DT e quando è “ M ” si parla dell'ultimo DT. Il valore di output per la foglia è il valore di gamma che riduce al minimo la funzione Loss. Il lato sinistro “Gamma” è il valore di uscita di una particolare foglia. Sul lato destro [F m-1 (x i )+ƴh m (x i ))] è simile al passaggio 1 ma qui la differenza è che stiamo prendendo previsioni precedenti mentre prima non c'era alcuna previsione precedente. Capiamolo ancora meglio con l'aiuto di un esempio. Supponiamo che questo sia il nostro albero regressore: Vediamo che il 1° residuo va in R 1,1 , il 2 ° e il 3 ° residuo va a R 2,1 e il 4 ° residuo va a R 3,1 . Calcoliamo l'output per la prima congedo che è R 1,1 Quindi la foglia R 1,1 ha un valore di uscita di -2500. Ora risolviamo per R 2,1 Quindi la foglia R 1,1 ha un valore di uscita di -2500. Ora risolviamo per R 2,1 Prendiamo la derivata per ottenere il valore minimo di gamma per cui questa funzione è minima: Finiamo con la media dei residui nella foglia R 2,1 . Quindi, se otteniamo una foglia con più di 1 residuo, possiamo semplicemente trovare la media di quella foglia e quello sarà il nostro output finale. Ora, dopo aver calcolato l'output di tutte le foglie, otteniamo: Step-5 Questo è finalmente l'ultimo passaggio in cui dobbiamo aggiornare le previsioni del modello precedente. Può essere aggiornato come: dove m è il numero di alberi decisionali realizzati. Dato che abbiamo appena iniziato a costruire il nostro modello, quindi il nostro m=1. Ora per creare un nuovo DT le nostre nuove previsioni saranno: Qui F m-1 (x) è la previsione del modello base (previsione precedente) poiché F 1-1=0 , F 0 è il nostro modello base, quindi la previsione precedente è 14500. nu è il tasso di apprendimento solitamente selezionato tra 0-1 . Riduce l'effetto che ogni albero ha sulla previsione finale e questo migliora la precisione a lungo termine. Prendiamo nu=0.1 in questo esempio. H m (x) è il DT recente fatto sui residui. Calcoliamo ora la nuova previsione: Supponiamo di voler trovare una previsione del nostro primo punto dati che abbia un'altezza dell'auto di 48,8. Questo punto dati passerà attraverso questo albero decisionale e l'output che ottiene verrà moltiplicato per il tasso di apprendimento e quindi aggiunto alla previsione precedente. Ora diciamo m=2, il che significa che abbiamo costruito 2 alberi decisionali e ora vogliamo avere nuove previsioni. Questa volta aggiungeremo la previsione precedente che è F 1 (x) al nuovo DT fatto sui residui. Itereremo attraverso questi passaggi ancora e ancora fino a quando la perdita non sarà trascurabile. Sto facendo un esempio ipotetico qui solo per farti capire come questo prevede un nuovo set di dati: Se un nuovo punto dati dice che arriva l'altezza = 1,40, passerà attraverso tutti gli alberi e quindi fornirà la previsione. Qui abbiamo solo 2 alberi, quindi il datapoint passerà attraverso questi 2 alberi e l'output finale sarà F 2 (x) . Che cos'è il classificatore di aumento del gradiente? Un classificatore di aumento del gradiente viene utilizzato quando la colonna di destinazione è binaria. Tutti i passaggi spiegati nel regressore dell'aumento del gradiente vengono utilizzati qui, l'unica differenza è che cambiamo la funzione di perdita. In precedenza abbiamo utilizzato l'errore quadratico medio quando la colonna target era continua, ma questa volta utilizzeremo la probabilità logaritmica come funzione di perdita. La funzione di perdita per il problema di classificazione è data di seguito: Il nostro primo passo nell'algoritmo di aumento del gradiente è stato inizializzare il modello con un valore costante, lì abbiamo usato la media della colonna di destinazione ma qui useremo log(probabilità) per ottenere quel valore costante. La domanda sorge spontanea: perché log(probabilità)? Quando distinguiamo questa funzione di perdita, otterremo una funzione di log(probabilità) e quindi dobbiamo trovare un valore di log(probabilità) per il quale la funzione di perdita sia minima. Confuso vero? Ok, vediamo come funziona: Per prima cosa trasformiamo questa funzione di perdita in modo che sia una funzione di log(probabilità), ti dirò in seguito perché abbiamo fatto questa trasformazione. Ora questa è la nostra funzione di perdita e dobbiamo minimizzarla, per questo prendiamo la derivata di questo per log(probabilità) e poi la mettiamo uguale a 0, Ecco i valori osservati Ti starai chiedendo perché abbiamo trasformato la funzione di perdita nella funzione di log(odds). In realtà, a volte è facile usare la funzione di log(odds), ea volte è facile usare la funzione di probabilità prevista “p”. Non è obbligatorio trasformare la funzione di perdita, l'abbiamo fatto solo per avere facili calcoli. Quindi il valore minimo di questa funzione di perdita sarà la nostra prima previsione (previsione del modello di base) Ora nel Gradient boosting regressor il nostro passaggio successivo è stato calcolare gli pseudo residui in cui abbiamo moltiplicato la derivata della funzione di perdita con -1 . Faremo lo stesso, ma ora la funzione di perdita è diversa e ora abbiamo a che fare con la probabilità di un risultato. Dopo aver trovato i residui possiamo costruire un albero decisionale con tutte le variabili indipendenti e le variabili target come "residui". Ora, quando abbiamo il nostro primo albero decisionale, troviamo l'output finale delle foglie perché potrebbe esserci un caso in cui una foglia ottiene più di 1 residuo, quindi dobbiamo calcolare il valore di output finale. La matematica alla base di questo passaggio non rientra nell'ambito di questo articolo, quindi menzionerò la formula diretta per calcolare l'output di una foglia: Infine, siamo pronti per ottenere nuove previsioni aggiungendo il nostro modello base con il nuovo albero che abbiamo realizzato sui residui. Ci sono alcune varianti dell'aumento del gradiente. Implementazione gradient boost Utilizzando scikit-learn Per l'implementazione su un set di dati, utilizzeremo il set di dati Valutazione del reddito, che contiene informazioni sulla vita personale di un individuo e un output di 50.000 o <=50. Il set di dati può essere scaricato dalle sezione progetti, insieme al codice che troverai nell'articolo. Troverai il Link alla fine dell'articolo. Il compito qui è classificare il reddito di un individuo, quando gli vengono forniti gli input richiesti sulla sua vita personale. Innanzitutto, importiamo tutte le librerie richieste. Qui il nostro obiettivo principale è dirti come implementarlo su Python. Ora per addestrare e testare il nostro modello, i dati devono essere divisi in dati di training e test. Ridimensioneremo anche i dati in modo che siano compresi tra 0 e 1. # Split dataset into test and train data X_train, X_test, y_train, y_test = train_test_split(df.drop(‘income’, axis=1),df[‘income’], test_size=0.2) Ora andiamo avanti con la definizione del Gradient Boosting Classifier insieme ai suoi iperparametri. Successivamente, adatteremo questo modello ai dati di addestramento. gbc=GradientBoostingClassifier(n_estimators=500,learning_rate=0.05,random_state=100,max_features=5 ) # Fit train data to GBC gbc.fit(X_train,y_train) Il modello è stato addestrato e ora possiamo osservare anche i risultati. Di seguito, puoi vedere la matrice di confusione del modello, che fornisce un rapporto sul numero di classificazioni e classificazioni errate. print(confusion_matrix(y_test, gbc.predict(X_test))) Il numero di classificazioni errate da parte del Gradient Boosting Classifier è 1334, rispetto alle 8302 classificazioni corrette. Il modello ha funzionato decentemente. Verifichiamo la precisione e Controlliamo anche il rapporto di classificazione: print("GBC accuracy is %2.2f" % accuracy_score( y_test, gbc.predict(X_test))) from sklearn.metrics import classification_report pred=gbc.predict(X_test) print(classification_report(y_test, pred)) La precisione è dell'86%, il che è abbastanza buono, ma può essere migliorata ottimizzando gli iperparametri o elaborando i dati per rimuovere i valori anomali. Questo, tuttavia, ci fornisce l'idea di base alla base dell'aumento del gradiente e dei suoi principi di funzionamento sottostanti. Note finali Speriamo che tu abbia capito come funziona l'algoritmo Gradient Boosting . Abbiamo cercato di mostrarti la matematica che c'è dietro nel modo più semplice possibile.
- Etica nella scienza dei dati e corretto uso dei dati
I dati possono essere utilizzati per prendere decisioni e avere una grande influenza sulle aziende. Tuttavia, questa preziosa risorsa non è priva di inconvenienti. In che modo le aziende possono acquisire, conservare e utilizzare i dati in modo etico? Quali sono i diritti che devono essere tutelati? Alcune pratiche etiche devono essere seguite dal personale aziendale che si occupa della gestione dei dati. I dati sono informazioni personali di qualcuno e deve esserci un modo corretto per utilizzare i dati e mantenere la privacy. Dopo aver ricevuto molte domande dai nostri utenti e da diverse aziende abbiamo deciso di dedicare un articolo a questo argomento. Cos'è l'etica? Il termine “etica” deriva dal greco antico ἦθος (êthos), cioè «carattere», «comportamento», o, meno probabilmente, da ἔθος cioè «costume», «consuetudine», «abitudine». L'etica ci istruisce su cosa è buono e cosa è sbagliato. I filosofi hanno riflettuto a lungo su questo argomento cruciale e hanno molto da dire al riguardo. La maggior parte delle persone associa l'etica alla moralità: un senso naturale di ciò che è "buono". Come esseri umani, viviamo in una società e la società ha regole e regolamenti. Dobbiamo essere in grado di decidere cosa è giusto e cosa è sbagliato. L'etica si occupa di sentimenti, leggi e norme sociali che determinano il bene dal male. I nostri stili di vita devono essere ragionevoli e all'altezza degli standard della società. Perché l'etica nella scienza dei dati è importante? Oggi, la scienza dei dati ha un impatto significativo sul modo in cui le aziende vengono condotte in discipline diverse come scienze mediche, città intelligenti e trasporti. Che si tratti della protezione dei dati di identificazione personale, del pregiudizio implicito nel processo decisionale automatizzato, dell'illusione della libera scelta nella psicografia, degli impatti sociali dell'automazione o dell'apparente divorzio tra verità e fiducia nella comunicazione virtuale, i pericoli della scienza dei dati senza l'etica le considerazioni sono chiare come sempre. La necessità di concentrarsi sull'etica della scienza dei dati va oltre un bilancio di questi potenziali problemi perché le pratiche della scienza dei dati sfidano la nostra comprensione di cosa significhi essere umani. Gli algoritmi, se implementati correttamente, offrono un enorme potenziale di bene nel mondo. Quando li impieghiamo per eseguire lavori che in precedenza richiedevano una persona, i vantaggi possono essere enormi: risparmi sui costi, scalabilità, velocità, precisione e coerenza, solo per citarne alcuni. E poiché il sistema è più preciso e affidabile di un essere umano, i risultati sono più equilibrati e meno inclini al pregiudizio sociale. Viviamo tutti in un mondo digitale, in cui la nostra vita quotidiana dipende dalle applicazioni, gestite da aziende tecnologiche. Dobbiamo prendere un taxi, chiamiamo un Uber. Abbiamo bisogno di ordinare cibo, usiamo justeat o glovo e così via. Queste aziende hanno i nostri dati personali. Il nostro ID e-mail, numeri di telefono, indirizzo, cronologia degli acquisti, ecc. E così via. La protezione dei dati personali è quindi un aspetto importante ai giorni nostri. Forse nessun aspetto dell'etica della scienza dei dati ha ricevuto maggiore attenzione negli ultimi anni rispetto alla salvaguardia dei dati personali. Le nostre relazioni , le reti sociali ed economiche hanno subito una rivoluzione digitale, rivelando chi siamo, cosa crediamo e cosa facciamo. Chi regola e possiede i nostri Dati? Nel codificare parametri etici come : il diritto all'informazione il diritto all'opposizione il diritto all'accesso il diritto alla rettifica il diritto all'oblio questi quadri giuridici tentano di riequilibrare i rapporti di potere e influenza tra organizzazioni e individui. Le divisioni tra pubblico e privato, individui e società, e le risorse ricche e povere di risorse vengono ridefinite mentre i dati diventano la nuova valuta dell'economia internazionale. Quali diritti possono essere assegnati con autorizzazione espressa o implicita e chi è il titolare dei dati personali? In che misura le istituzioni governative e commerciali dovrebbero essere autorizzate a raccogliere e controllare enormi database di interazione umana? Quanto dovrebbero essere ritenuti responsabili questi titolari del trattamento e responsabili del trattamento per la perdita o l'abuso delle nostre informazioni personali? Etica della scienza dei dati Analisti, data scientist e professionisti delle tecnologie dell'informazione devono preoccuparsi dell'etica della scienza dei dati. Chiunque lavori con i dati deve comprendere i fondamenti. Chiunque abbia a che fare con qualsiasi tipo di dati deve segnalare eventuali casi di furto di dati, raccolta, conservazione, utilizzo di dati non etici, ecc. Ad esempio, dalla prima volta che un consumatore inserisce il proprio indirizzo e-mail sul tuo sito web fino al momento in cui acquista i tuoi beni, la tua organizzazione può raccogliere e conservare dati sui loro viaggi. Le persone nel team di marketing potrebbero avere a che fare con i dati. I dati della persona devono essere conservati. I dati protetti sono stati resi pubblici su Internet in passato, causando danni alle persone le cui informazioni sono state rese disponibili. Database mal configurati, spyware, furto o pubblicazione su un forum pubblico possono causare fughe di dati. Gli individui e le organizzazioni devono utilizzare pratiche informatiche sicure, condurre frequenti controlli di sistema e adottare politiche per affrontare la sicurezza dei computer e dei dati. Le aziende devono adottare misure di sicurezza informatica adeguate per prevenire la fuga di dati e informazioni. Questo è più importante per le banche e gli istituti finanziari che si occupano del denaro dei clienti. Le protezioni devono essere mantenute anche quando le apparecchiature vengono trasferite o smaltite, secondo le politiche. Alcune pratiche etiche della data science Privacy e Riservatezza dei Dati: I data scientist sono continuamente coinvolti nella produzione, nello sviluppo e nella ricezione di informazioni. I dati relativi a clienti affiliati, clienti, lavoratori o altre parti con cui i clienti hanno un accordo di riservatezza sono spesso inclusi in questa categoria. Quindi, indipendentemente dal tipo di informazioni sensibili, è responsabilità del data scientist proteggerle. Anche se un consumatore acconsente che la tua organizzazione raccolga, memorizzi e analizzi le proprie informazioni di identificazione personale (PII), ciò non significa che voglia che siano rese pubbliche. Le informazioni personali identificabili includono: numero di telefono indirizzo nome completo numero di carta così via. Per preservare la privacy delle persone, assicurati di conservare le informazioni in un database sicuro in modo che non finiscano nelle mani sbagliate. La protezione tramite password con doppia autenticazione e la crittografia dei file sono due soluzioni per la sicurezza dei dati che aiutano a salvaguardare la privacy. Proprietà dei dati: Uno dei concetti importanti dell'etica nella scienza dei dati è che l'individuo ha la proprietà dei dati. La raccolta dei dati personali di qualcuno senza il loro consenso è illegale e immorale. Di conseguenza, per acquisire i dati di qualcuno è necessario il consenso. Accordi scritti firmati, politiche sulla privacy digitale che richiedono agli utenti di accettare i termini e le condizioni di un'azienda e pop-up con caselle di controllo che consentono ai siti Web di tracciare il comportamento online degli utenti utilizzando i cookie sono tutti approcci tipici per ottenere il consenso. Per prevenire problemi etici e legali, non dare mai per scontato che un consumatore acconsenta alla raccolta dei suoi dati da parte dell'utente; chiedere sempre il permesso. Avere buone intenzioni: Le intenzioni di raccolta e analisi dei dati devono essere buone. I professionisti dei dati devono essere chiari su come e perché utilizzano i dati. Se un team sta raccogliendo dati sulle abitudini di spesa degli utenti, per realizzare un'app per gestire le spese, allora l'intenzione è buona. Trasparenza: Gli interessati hanno il diritto di sapere come intendi acquisire, conservare e utilizzare le loro informazioni personali, oltre a possederle. La trasparenza dovrebbe essere utilizzata durante l'acquisizione dei dati. È necessario creare una politica che spieghi come vengono utilizzati i cookie per tracciare l'attività dell'utente e come le informazioni raccolte vengono conservate in un database sicuro, nonché addestrare un algoritmo che offra un'esperienza online su misura. È diritto dell'utente avere accesso a queste informazioni in modo che possa scegliere se accettare o meno i cookie del proprio sito. Alcuni esempi di vita reale: OKCupid: Nel 2016, Emil Kirkegaard e Julius Daugbjerg Bjerrekr della Danimarca hanno condiviso un set di dati sull'Open Science Framework che includeva informazioni su oltre 70.000 membri del servizio di incontri online OkCupid. I ricercatori hanno raccolto informazioni dal sito di OkCupid, inclusi nomi utente (ma non nomi reali), età, sesso, religione e caratteristiche della personalità, nonché le risposte alle domande che il sito pone ai nuovi membri per aiutare a scoprire potenziali corrispondenze, per costruire il loro proprio set di dati. Le informazioni, raccolte tra novembre 2014 e marzo 2015, non sono anonime e sono piuttosto personali. L'unico motivo per cui i ricercatori non hanno condiviso le immagini degli utenti è che occuperebbe troppo spazio sul disco rigido, secondo i ricercatori. Chiunque abbia ripetuto un nome utente da un sito all'altro o abbia utilizzato un nome che potrebbe essere ricondotto a loro, potrebbe improvvisamente essere gravemente vulnerabile. I dati sono stati raschiati e caricati in violazione delle norme etiche di base osservate dagli scienziati sociali. Interrogati su Twitter, i ricercatori hanno affermato che i dati erano già pubblici perché erano stati inviati su OkCupid. Questo è stato un caso di comportamento non etico con i dati. Anche se i dati erano pubblici, raccoglierli e condividerli esplicitamente non era corretto. Violazione dei dati di Robinhood: La società americana di servizi finanziari Robinhood ha annunciato una violazione dei dati nel novembre 2021, che ha colpito oltre cinque milioni di utenti dell'app di trading. È stato utilizzato un sistema di assistenza clienti per ottenere indirizzi e-mail, nomi, numeri di telefono e altre informazioni. Secondo l'azienda, nessun numero di previdenza sociale è stato divulgato durante l'indagine. Conti bancari e carte di debito non erano inclusi. Questo è stato un caso di furto di dati e si è verificato a causa di problemi di sicurezza nell'archiviazione dei dati. Dovrebbero essere presi provvedimenti per prevenire tali casi. Data Science nella lotta al Covid-19: L'analisi delle epidemie, una metodologia di data science finalizzata a guidare la risposta alle epidemie, è aumentata in risposta alla crescente complessità dei dati sulle epidemie. Il governo sudcoreano ha utilizzato l'analisi in tempo reale per migliorare la progettazione del piano preventivo e la sorveglianza dei pazienti positivi al Covid. Incorpora i dati dei sistemi IoT e AI che sono alla base delle vere reti di città intelligenti, nonché i dati personali forniti dai pazienti confermati. Con l'uso dell'analisi dei big data, i ricercatori possono seguire i viaggi dei pazienti, identificare i loro contatti e anticipare la possibile entità dell'epidemia in un luogo specifico. Le informazioni vengono utilizzate anche per creare piani e istruzioni di prevenzione. Questo è un esempio di come i dati vengono utilizzati per un buon scopo. Conclusione: L'etica della scienza dei dati è un importante argomento di discussione nel mondo di oggi. Le organizzazioni e le aziende che utilizzano i dati e implementano la scienza dei dati devono seguire una serie di etica durante la gestione dei dati. Se utilizzati in modo etico, i dati possono aiutarti a prendere decisioni migliori e fare la differenza nel mondo.
- Cosa fa un data scientist?
Ingegnere dei dati $ 113k Architetto dei dati $ 119k Statistico $ 89k Sviluppatore di business
- Cos'è un modello di Machine Learning o Apprendimento Automatico?
Dovresti selezionare il modello di machine learning appropriato in base ai tuoi obiettivi di business
- Differenza tra algoritmi e modelli nel Machine Learning
Alcuni sistemi dotati di I.A. prevedono l'uso di algoritmi e modelli di machine learning . Per i principianti, questi termini sono molto confusi poiché spesso " algoritmo di machine learning " viene utilizzato in modo intercambiabile con " modello di machine learning ". Sono la stessa cosa o no? Come sviluppatore, la tua intuizione con " algoritmi " come algoritmi di ordinamento e algoritmi di ricerca aiuterà a chiarire questa confusione. In questo post scoprirai la differenza tra algoritmi e modelli di machine learning. Dopo aver letto questo post, saprai: Gli algoritmi di machine learning sono procedure implementate nel codice ed eseguite sui dati. I modelli di machine learning sono generati da algoritmi e sono costituiti da dati del modello e un algoritmo di previsione. Gli algoritmi di machine learning forniscono un tipo di programmazione automatica in cui i modelli di apprendimento automatico rappresentano il programma. Differenza tra algoritmi e modelli nel Machine Learning Questo post è diviso in quattro parti : Che cos'è un algoritmo nel Machine Learning Che cos'è un modello nel Machine Learning Algoritmo e struttura del modello Il Machine Learning è una programmazione automatica Che cos'è un algoritmo nel Machine Learning ? Un algoritmo nel Machine Learning è una procedura eseguita sui dati per creare un modello di Machine Learning . E' molto semplice ! Per sicurezza meglio riscriverlo un'altra volta Un algoritmo nel Machine Learning è una procedura eseguita sui dati per creare un modello di Machine Learning . Gli algoritmi di Machine Learning eseguono il " riconoscimento di schemi " e " imparano " dai dati o sono " adattati " a un set di dati. Esistono molti algoritmi di Machine Learning. Ad esempio, abbiamo algoritmi per la classificazione, come k-neiest neighbors. Abbiamo algoritmi per la regressione, come la regressione lineare, e abbiamo algoritmi per il clustering, come k-mean. Esempi di algoritmi di apprendimento automatico: Regressione lineare Regressione logistica Albero decisionale Rete neurale artificiale k-neiest neighbors k-means Puoi pensare a un algoritmo di Machine Learning come qualsiasi altro algoritmo in informatica. Ad esempio, alcuni altri tipi di algoritmi con cui potresti avere familiarità includono l'ordinamento o la ricerca binaria per l'ordinamento dei dati e il migliore per la ricerca. In quanto tali, gli algoritmi di Machine Learning hanno una serie di proprietà: Gli algoritmi di apprendimento automatico possono essere descritti utilizzando la matematica e lo pseudocodice. L'efficienza degli algoritmi di apprendimento automatico può essere analizzata e descritta. Gli algoritmi di apprendimento automatico possono essere implementati con uno qualsiasi di una gamma di moderni linguaggi di programmazione. Ad esempio, potresti vedere algoritmi di apprendimento automatico descritti con pseudocodice o algebra lineare in documenti di ricerca e libri di testo. Potresti vedere l'efficienza computazionale di un algoritmo di apprendimento automatico specifico rispetto a un altro algoritmo specifico. Gli accademici possono ideare algoritmi di apprendimento automatico completamente nuovi e i professionisti dell'apprendimento automatico possono utilizzare algoritmi di apprendimento automatico standard sui loro progetti. Questo è proprio come altre aree dell'informatica in cui gli accademici possono ideare algoritmi di ordinamento completamente nuovi e i programmatori possono utilizzare gli algoritmi di ordinamento standard nelle loro applicazioni. È anche probabile che tu veda più algoritmi di apprendimento automatico implementati insieme e forniti in una libreria con un'API (Application Programming Interface) standard. Un esempio popolare è la libreria scikit-learn che fornisce implementazioni di molti algoritmi di classificazione, regressione e clustering di machine learning in Python. Che cos'è un modello nel Machine Learning ? Un modello nel Machine Learning è l'output di un algoritmo di Machine Learning eseguito sui dati. E' molto semplice ! Per sicurezza meglio riscriverlo un'altra volta Un modello nel Machine Learning è l'output di un algoritmo di Machine Learning eseguito sui dati. Un modello rappresenta ciò che è stato appreso da un algoritmo di apprendimento automatico. Il modello è la " cosa " che viene salvata dopo aver eseguito un algoritmo di apprendimento automatico sui dati di addestramento e rappresenta le regole, i numeri e qualsiasi altra struttura dati specifica dell'algoritmo richiesta per fare previsioni. Alcuni esempi potrebbero renderlo più chiaro: L'algoritmo di regressione lineare risulta in un modello composto da un vettore di coefficienti con valori specifici. L'algoritmo dell'albero decisionale risulta in un modello composto da un albero di istruzioni if-then con valori specifici. Gli algoritmi di rete neurale / backpropagation / gradiente di discesa insieme danno come risultato un modello composto da una struttura a grafo con vettori o matrici di pesi con valori specifici. Un modello di apprendimento automatico è più impegnativo per un principiante perché non c'è una chiara analogia con altri algoritmi in informatica. Ad esempio, l'output dell'elenco ordinato di un algoritmo di ordinamento non è in realtà un modello. L'analogia migliore è pensare al modello di apprendimento automatico come a un " programma ". Il " programma " del modello di apprendimento automatico comprende sia dati che una procedura per utilizzare i dati per fare una previsione. Si consideri ad esempio l'algoritmo di regressione lineare e il modello risultante. Il modello è composto da un vettore di coefficienti (dati) che vengono moltiplicati e sommati con una riga di nuovi dati presi come input per fare una previsione (procedura di previsione). Salviamo i dati per il modello di Machine Learning per un uso successivo. Usiamo spesso la procedura di previsione per il modello di machine learning fornito da una libreria di machine learning. A volte possiamo implementare noi stessi la procedura di previsione come parte della nostra applicazione. Questo è spesso semplice da fare dato che la maggior parte delle procedure di previsione sono abbastanza semplici. Algoritmi e struttura dei modelli di Machine Learning Quindi ora abbiamo familiarità con un " algoritmo " di Machine Learning rispetto a un " modello " di Machine Learning . In particolare, viene eseguito un algoritmo sui dati per creare un modello. Apprendimento automatico => Modello di apprendimento automatico Comprendiamo inoltre che un modello comprende sia dati che una procedura su come utilizzare i dati per fare una previsione su nuovi dati. Puoi pensare alla procedura come a un algoritmo di previsione, se lo desideri. Modello di apprendimento automatico == Dati del modello + algoritmo di previsione Questa divisione è molto utile per comprendere un'ampia gamma di algoritmi. Ad esempio, la maggior parte degli algoritmi ha tutto il proprio lavoro nell'“ algoritmo ” e l'“ algoritmo di previsione ” fa molto poco. In genere, l'algoritmo è una sorta di procedura di ottimizzazione che riduce al minimo l'errore del modello (dati + algoritmo di previsione) sul set di dati di addestramento. L'algoritmo di regressione lineare è un buon esempio. Esegue un processo di ottimizzazione (o viene risolto analiticamente utilizzando l'algebra lineare) per trovare un insieme di pesi che minimizzino l'errore al quadrato della somma sul set di dati di addestramento. Regressione lineare: Algoritmo : trova l'insieme di coefficienti che riducono al minimo l'errore sul set di dati di addestramento Modello : Dati modello : vettore di coefficienti Algoritmo di previsione : coefficienti multipli e somma con riga di input Alcuni algoritmi sono banali o addirittura non fanno nulla e tutto il lavoro è nel modello o nell'algoritmo di previsione. L'algoritmo k-nearest neighbor non ha alcun " algoritmo " a parte il salvataggio dell'intero set di dati di addestramento. I dati del modello, quindi, sono l'intero set di dati di addestramento e tutto il lavoro è nell'algoritmo di previsione, ovvero come una nuova riga di dati interagisce con il set di dati di addestramento salvato per fare una previsione. k-Means Algoritmo : salva i dati di allenamento. Modello : Dati modello : intero set di dati di addestramento. Algoritmo di previsione : trova le k righe più simili e calcola la media della loro variabile target. Puoi utilizzare questa suddivisione come struttura per comprendere qualsiasi algoritmo di apprendimento automatico. Qual è il tuo algoritmo preferito? Puoi descriverlo usando questo framework nei commenti qui sotto? Conosci un algoritmo che non si adatta perfettamente a questa schema? L'apprendimento automatico è una programmazione automatica Vogliamo davvero solo un " modello " di apprendimento automatico e l'" algoritmo " è solo il percorso che seguiamo per ottenere il modello. Le tecniche di apprendimento automatico vengono utilizzate per problemi che non possono essere risolti in modo efficiente o efficace in altri modi. Ad esempio, se dobbiamo classificare le e-mail come spam o non spam, abbiamo bisogno di un programma software per farlo. Potremmo sederci, rivedere manualmente una tonnellata di e-mail e scrivere dichiarazioni if per svolgere questo compito. Le persone ci hanno provato. Si scopre che questo approccio è lento, fragile e poco efficace. Invece, possiamo utilizzare tecniche di apprendimento automatico per risolvere questo problema. In particolare, un algoritmo come Naive Bayes può imparare a classificare i messaggi di posta elettronica come spam e non come spam da un ampio set di dati di esempi storici di posta elettronica. Non vogliamo " Naive Bayes ". Vogliamo che il modello fornito da Naive Bayes sia che possiamo usare per classificare la posta elettronica (i vettori delle probabilità e l'algoritmo di previsione per usarli). Vogliamo il modello, non l'algoritmo utilizzato per creare il modello. In questo senso, il modello di apprendimento automatico è un programma scritto o creato o appreso automaticamente dall'algoritmo di apprendimento automatico per risolvere il nostro problema. Come sviluppatori, siamo meno interessati all'" apprendimento " eseguito dagli algoritmi di apprendimento automatico nel senso di intelligenza artificiale. Non ci interessa simulare i processi di apprendimento. Alcune persone potrebbero esserlo, ed è interessante, ma non è per questo che utilizziamo algoritmi di apprendimento automatico. Invece, siamo più interessati alla capacità di programmazione automatica offerta dagli algoritmi di apprendimento automatico. Vogliamo un modello efficace creato in modo efficiente che possiamo incorporare nel nostro progetto software. Gli algoritmi di machine learning eseguono la programmazione automatica e i modelli di machine learning sono i programmi creati per noi. Conclusioni sulla Differenza tra algoritmi e modelli nel Machine Learning In questo post, hai scoperto la differenza tra " algoritmi " e " modelli " di machine learning. Nello specifico hai imparato: Gli algoritmi di apprendimento automatico sono procedure implementate nel codice ed eseguite sui dati. I modelli di apprendimento automatico sono generati da algoritmi e sono costituiti da dati del modello e un algoritmo di previsione. Gli algoritmi di apprendimento automatico forniscono un tipo di programmazione automatica in cui i modelli di apprendimento automatico rappresentano il programma. Hai delle domande? Poni le tue domande nei commenti qui sotto e faremo del nostro meglio per rispondere.
- 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.
- Diversi modi di leggere un file con Python
I dati sono il pane quotidiano di un Data Scientist, quindi è fondamentale conoscere molti approcci per il caricamento dei dati per poi poterci eseguire un'analisi. Ora vedremo cinque tecniche Python per importare i tuoi dati accompagnate con esempi di codice python. Come principiante, potresti conoscere un solo modo per caricare i dati con python (normalmente in CSV) che consiste nel leggerli usando la funzione pandas.read_csv . È una delle funzioni più mature e forti, ma altri modi sono molto interessanti da conoscere e a volte torneranno sicuramente utili. Le modalità per leggere un file in Python sono: Manuale loadtxt genfromtxt read_csv Pickle Il set di dati che utilizzeremo per caricare i dati può essere trovato qui nella cartella CSV. Si chiama 100-Sales-Records. Importiamo le librerie necessarie per testare 5 differenti modi di leggere un file con Python Utilizzeremo i pacchetti Numpy, Pandas e Pickle, quindi importali. import numpy as np import pandas as pd import pickle Modi di leggere un file con Python 1. Funzione manuale Questo è il più difficile, poiché devi progettare una funzione personalizzata, che può caricare i dati per te. Devi avere a che fare con i normali concetti di archiviazione di Python e usandolo devi leggere un file .csv . Facciamolo sul file 100 Sales Records. def load_csv(percorsofile): data = [] col = [] checkcol = False with open(percorsofile) as f: for val in f.readlines(): val = val.replace("\n","") val = val.split(',') if checkcol is False: col = val checkcol = True else: data.append(val) df = pd.DataFrame(data=data, columns=col) return df Hmmm, cos'è questo????? Non ti sembra un codice un po' complesso!!!! Analizziamolo passo dopo passo in modo da sapere cosa sta succedendo e puoi applicare una logica simile per leggere un tuo file .csv o html o di testo . Qui ho creato una funzione load_csv che prende come argomento il percorso del file che vuoi leggere. Ho un elenco denominato come dati che conterrà i miei dati del file CSV e un altro elenco col che avrà i nomi delle mie colonne. Ora dopo aver ispezionato manualmente il csv, so che i nomi delle mie colonne sono nella prima riga, quindi nella mia prima iterazione, devo archiviare i dati della prima riga in col e il resto dei dati in rows . Per controllare la prima iterazione, ho usato una variabile booleana denominata checkcol che è False, e quando è falsa nella prima iterazione, memorizza i dati della prima riga in col e quindi imposta checkcol su True, quindi lo faremo gestire l'elenco dei dati e memorizzare il resto dei valori nell'elenco dei dati . Logica per leggere un file con Python con Funzione manuale La logica principale qui è che ho ripetuto il file, usando readlines() una funzione in Python. Questa funzione restituisce un elenco che contiene tutte le righe all'interno di un file. Durante la lettura dei titoli, rileva una nuova riga come \n carattere, che è il carattere di terminazione della riga, quindi per rimuoverlo, ho usato la funzione str.replace . Poiché è un file .csv , quindi devo separare le cose in base a virgole , quindi dividerò la stringa su a , usando string.split(',') . Per la prima iterazione, memorizzerò la prima riga, che contiene i nomi delle colonne in un elenco noto come col . E poi aggiungerò tutti i miei dati nel mio elenco noto come dati . Per leggere i dati in modo più bello, l'ho restituito come formato dataframe perché è più facile leggere un dataframe rispetto a un array numpy o all'elenco di Python. Pro e contro di leggere un file con Python con Funzione manuale Il vantaggio importante è che hai tutta la flessibilità e il controllo sulla struttura del file e puoi leggere in qualsiasi formato e modo desideri e archiviarlo. Puoi anche leggere i file che non hanno una struttura standard usando la tua logica. Svantaggi importanti sono che è complesso da scrivere soprattutto per i tipi standard di file perché possono essere letti facilmente. Devi codificare la logica che richiede tentativi ed errori. Dovresti usarlo solo quando il file non è in un formato standard o vuoi flessibilità e leggere il file in un modo che non è disponibile attraverso le librerie. Modi di leggere un file con Python 2. Funzione Numpy.loadtxt Questa è una funzione incorporata in Numpy, una famosa libreria numerica in Python. È una funzione davvero semplice per caricare i dati. È molto utile per leggere dati dello stesso tipo di dati. Quando i dati sono più complessi, è difficile leggerli usando questa funzione, ma quando i file sono facili e semplici, questa funzione è davvero potente. Passiamo al codice. df = np.loadtxt('convertcsv.csv', delimitator = ',') Qui abbiamo semplicemente usato la funzione loadtxt passata in delimitatore come ',' perché questo è un file CSV. Ora se stampiamo df , vedremo i nostri dati in array numpy abbastanza decenti che sono pronti per l'uso. Pro e contro di leggere un file con Python con Numpy.loadtxt Un aspetto importante dell'utilizzo di questa funzione è che è possibile caricare rapidamente i dati da un file in array numpy. Gli svantaggi sono che non puoi avere tipi di dati diversi o righe mancanti nei tuoi dati. Modi di leggere un file con Python 3. Numpy.genfromtxt() Useremo il set di dati, che è '100 Sales Records.csv' che abbiamo usato nel nostro primo esempio per dimostrare che possiamo avere più tipi di dati in esso. Passiamo al codice. data = np.genfromtxt('100 Sales Records.csv', delimitator=',') Nel caso in cui questa riga di codice non legga in modo corretto i tuoi dati, prova a sostituirla con questa data = np.genfromtxt('100 Sales Records.csv', delimitator=',', dtype=None, names=True, encoding='utf-8') Pro e contro di leggere un file con Python con Numpy.genfromtxt() Un aspetto importante dell'utilizzo di questa funzione è che è possibile caricare rapidamente i dati da un file in array numpy. Gli svantaggi sono che non puoi avere tipi di dati diversi o righe mancanti nei tuoi dati. Modi di leggere un file con Python 4. Pandas.read_csv() Pandas è una libreria di manipolazione dei dati molto popolare ed è molto comunemente usata. Una delle sue funzioni molto importanti e mature è read_csv() che può leggere qualsiasi file .csv molto facilmente e aiutarci a manipolarlo. Facciamolo sul nostro set di dati di 100 record di vendita. Questa funzione è molto popolare per la sua facilità d'uso. Puoi confrontarlo con i nostri codici precedenti e puoi verificarlo. >>> pdDf = pd.read_csv('100 Sales Record.csv') >>> pdDf.head() E indovina cosa? Con questo abbiamo già finito è davvero semplice e facile da usare. Puoi esplorare tutti gli altri parametri nei documenti ufficiali qui . Modi di leggere un file con Python 5. Pickle Quando i tuoi dati non sono in un buon formato leggibile, puoi usare pickle per salvarli in un formato binario. Quindi puoi ricaricarlo facilmente usando la libreria pickle. Prenderemo il nostro file CSV di 100 record di vendita e prima lo salveremo in un formato pickle in modo da poterlo leggere. with open('test.pkl','wb') as f: pickle.dump(pdDf, f) Questo creerà un nuovo file test.pkl che ha al suo interno il nostro pdDf dall'intestazione Pandas . Ora per aprirlo usando pickle, dobbiamo solo usare la funzione pickle.load . with open('test.pkl','rb') as f: d4 = pickle.load(f) d4.head() E qui abbiamo caricato con successo i dati da un file pickle in formato pandas.DataFrame . Ora sei a conoscenza di 5 modi diversi per caricare i file di dati in Python, che possono aiutarti in diversi modi a caricare un set di dati quando lavori nei tuoi progetti quotidiani.
- Python vs R vs SAS i linguaggi di programmazione per Intelligenza Artificiale
Quindi, se sei in un business online, l'utilizzo di Python per lo sviluppo e l'analisi web può fornire
- La vera differenza tra statistica e machine learning
No, statistica e machine learning non sono la stessa cosa. Se il Machine Learning è solo una statistica potenziata, l'architettura è solo una costruzione di castelli di sabbia potenziata. Introduzione alla differenza tra statistica e machine learning Non sei stanco di sentire questo dibattito reiterato sui social media e all'interno della tua Università o Ufficio quasi quotidianamente. Speriamo che entro la fine di questo articolo avrete una posizione più informata su questi termini alquanto vaghi. Differenza tra statistica e machine learning, la sfida eterna Contrariamente alla credenza popolare, l'apprendimento automatico è in circolazione da diversi decenni. Inizialmente è stato evitato a causa dei suoi grandi requisiti di calcolo e dei limiti della potenza di calcolo presenti all'epoca. Tuttavia, l'apprendimento automatico ha visto una rinascita negli ultimi anni a causa della preponderanza dei dati derivanti dall'esplosione di informazioni. Quindi, se apprendimento automatico e statistica sono sinonimi l'uno dell'altro, perché non vediamo tutti i dipartimenti di statistica in ogni università chiudere o passare a un dipartimento di "apprendimento automatico"? Perché non sono la stessa cosa! Ci sono diverse vaghe affermazioni che sento spesso su questo argomento, la più comune è qualcosa del genere: “La principale differenza tra apprendimento automatico e statistica è il loro scopo. I modelli di apprendimento automatico sono progettati per effettuare le previsioni più accurate possibili. I modelli statistici sono progettati per l'inferenza sulle relazioni tra variabili. Sebbene ciò sia tecnicamente vero, non fornisce una risposta particolarmente esplicita o soddisfacente. Una delle principali differenze tra apprendimento automatico e statistica è proprio il loro scopo. Tuttavia, dire che l'apprendimento automatico riguarda previsioni accurate mentre i modelli statistici sono progettati per l'inferenza è quasi un'affermazione priva di significato a meno che tu non sia esperto di questi concetti. In primo luogo, dobbiamo capire che statistica e modelli statistici non sono la stessa cosa. La statistica è lo studio matematico dei dati. Non puoi fare statistiche se non hai dati. Un modello statistico è un modello per i dati che viene utilizzato per dedurre qualcosa sulle relazioni all'interno dei dati o per creare un modello in grado di prevedere valori futuri. Spesso questi due vanno di pari passo. Quindi ci sono in realtà due cose di cui dobbiamo discutere: in primo luogo, in che modo le statistiche sono diverse dal machine learning e, in secondo luogo, in che modo i modelli statistici sono diversi dal machine learning. Per rendere questo leggermente più esplicito, ci sono molti modelli statistici che possono fare previsioni, ma l'accuratezza predittiva non è il loro punto di forza. Allo stesso modo, i modelli di machine learning forniscono vari gradi di interpretabilità, dalla regressione con lazo altamente interpretabile alle reti neurali impenetrabili , ma generalmente sacrificano l'interpretabilità per il potere predittivo. Da una prospettiva di alto livello, questa è una buona risposta. Abbastanza buona per la maggior parte delle persone. Tuttavia, ci sono casi in cui questa spiegazione ci lascia con un malinteso sulle differenze tra apprendimento automatico e modellazione statistica. Consideriamo l'esempio della regressione lineare. Modelli statistici vs machine learning Mi sembra che la somiglianza dei metodi utilizzati nella modellazione statistica e nell'apprendimento automatico abbia indotto le persone a presumere che siano la stessa cosa. Questo è comprensibile, ma semplicemente non è vero. L'esempio più ovvio è il caso della regressione lineare, che è probabilmente la causa principale di questo malinteso. La regressione lineare è un metodo statistico, possiamo addestrare un regressore lineare e ottenere lo stesso risultato di un modello di regressione statistica con l'obiettivo di ridurre al minimo l'errore al quadrato tra i punti dati. Vediamo che in un caso facciamo qualcosa chiamato "addestrare" il modello, che implica l'utilizzo di un sottoinsieme dei nostri dati ( e anche di software e linguaggi di programmazione ), e non sappiamo quanto bene funzionerà il modello finché non "testiamo" questi dati su dati aggiuntivi che non erano presenti durante l'allenamento, chiamato test set. Lo scopo del machine learning, in questo caso, è quello di ottenere le migliori prestazioni sul set di test. Per il modello statistico, troviamo una linea che riduce al minimo l'errore quadratico medio su tutti i dati, assumendo che i dati siano un regressore lineare con l'aggiunta di rumore casuale, che è tipicamente di natura gaussiana. Non sono necessari training e test set. Per molti casi, specialmente nella ricerca (come l'esempio del sensore di seguito), lo scopo del nostro modello è caratterizzare la relazione tra i dati e la nostra variabile di risultato, non fare previsioni sui dati futuri. Chiamiamo questa procedura inferenza statistica, in contrapposizione a previsione. Tuttavia, possiamo ancora utilizzare questo modello per fare previsioni e questo potrebbe essere il tuo scopo principale, ma il modo in cui il modello viene valutato non comporterà un set di test e comporterà invece la valutazione della significatività e della robustezza dei parametri del modello. Lo scopo dell'apprendimento automatico (supervisionato) è ottenere un modello in grado di fare previsioni ripetibili. In genere non ci interessa se il modello è interpretabile, anche se personalmente consiglierei di testare sempre per garantire che le previsioni del modello abbiano senso. L'apprendimento automatico è incentrato sui risultati, è probabile che funzioni in un'azienda in cui il tuo valore è caratterizzato esclusivamente dalle tue prestazioni. Considerando che, la modellazione statistica riguarda più la ricerca di relazioni tra le variabili e il significato di tali relazioni, ma anche la previsione. Statistica vs Machine Learning : esempio di regressione lineare Penso che questo malinteso sia abbastanza ben incapsulato in questa sfida di 10 anni apparentemente spiritosa che confronta le statistiche e l'apprendimento automatico. Tuttavia, confondere questi due termini basandosi esclusivamente sul fatto che entrambi sfruttano le stesse nozioni fondamentali di probabilità è ingiustificato. Ad esempio, se affermiamo che l'apprendimento automatico è semplicemente una statistica potenziata basata su questo fatto, potremmo anche fare le seguenti affermazioni. La fisica è solo matematica potenziata. La zoologia è solo una raccolta di francobolli potenziata. L'architettura è solo una costruzione potenziata di castelli di sabbia. Queste affermazioni (soprattutto l'ultima) sono piuttosto ridicole e tutte basate su questa idea di confondere i termini che sono costruiti su idee simili (gioco di parole inteso per l'esempio di architettura). In realtà, la fisica è costruita sulla matematica, è l'applicazione della matematica per comprendere i fenomeni fisici presenti nella realtà. La fisica include anche aspetti della statistica e la forma moderna della statistica è tipicamente costruita da un framework costituito dalla teoria degli insiemi di Zermelo-Frankel combinata con la teoria della misura per produrre spazi di probabilità. Entrambi hanno molto in comune perché provengono da un'origine simile e applicano idee simili per raggiungere una conclusione logica. Allo stesso modo, l'architettura e la costruzione di castelli di sabbia probabilmente hanno molto in comune - anche se non sono un architetto quindi non posso dare una spiegazione informata - ma chiaramente non sono la stessa cosa. Prima di andare avanti, chiarirò rapidamente altri due malintesi comuni relativi all'apprendimento automatico e alle statistiche. Questi sono che l'IA è diversa dall'apprendimento automatico e che la scienza dei dati è diversa dalle statistiche. Questi sono problemi abbastanza incontrastati, quindi sarà veloce. La scienza dei dati è essenzialmente metodi computazionali e statistici applicati ai dati, che possono essere insiemi di dati piccoli o grandi. Ciò può includere anche cose come l'analisi esplorativa dei dati, in cui i dati vengono esaminati e visualizzati per aiutare lo scienziato a comprendere meglio i dati e trarne inferenze. La scienza dei dati include anche cose come la disputa e la preelaborazione dei dati, e quindi coinvolge un certo livello di informatica poiché implica la codifica, l'impostazione di connessioni e pipeline tra database, server Web, ecc. Non è necessario utilizzare un computer per fare statistiche, ma non puoi davvero fare scienza dei dati senza uno. Puoi vedere ancora una volta che, sebbene la scienza dei dati utilizzi le statistiche, chiaramente non sono la stessa cosa. Allo stesso modo, l'apprendimento automatico non è la stessa cosa dell'intelligenza artificiale. In effetti, l'apprendimento automatico è un sottoinsieme dell'IA. Questo è abbastanza ovvio poiché stiamo insegnando ("addestrando") una macchina per fare inferenze generalizzabili su alcuni tipi di dati basati su dati precedenti. L'apprendimento automatico si basa sulle statistiche Prima di discutere le differenze tra statistica e apprendimento automatico, discutiamo innanzitutto le somiglianze. Ne abbiamo già parlato in qualche modo nelle sezioni precedenti. L'apprendimento automatico si basa su un framework statistico. Questo dovrebbe essere palesemente ovvio poiché l'apprendimento automatico coinvolge i dati e i dati devono essere descritti utilizzando un quadro statistico. Tuttavia, anche la meccanica statistica, che viene espansa nella termodinamica per un gran numero di particelle, si basa su un quadro statistico. Il concetto di pressione è in realtà una statistica e anche la temperatura è una statistica. Se pensi che questo suoni ridicolo, abbastanza giusto, ma in realtà è vero. Questo è il motivo per cui non puoi descrivere la temperatura o la pressione di una molecola, non ha senso. La temperatura è la manifestazione dell'energia media prodotta dalle collisioni molecolari. Per una quantità sufficientemente grande di molecole, ha senso poter descrivere la temperatura di qualcosa come una casa o l'esterno. Ammetteresti che termodinamica e statistica sono la stessa cosa? No, la termodinamica usa le statistiche per aiutarci a capire l'interazione tra lavoro e calore sotto forma di fenomeni di trasporto. In effetti, la termodinamica si basa su molti più elementi oltre alla semplice statistica. Allo stesso modo, l'apprendimento automatico attinge a un gran numero di altri campi della matematica e dell'informatica, ad esempio: Teoria del ML da campi come matematica e statistica Algoritmi ML da campi come ottimizzazione, algebra matriciale, calcolo Implementazioni ML da concetti di informatica e ingegneria (ad es. trucchi del kernel, hashing delle funzionalità) Quando si inizia a programmare su Python, si tira fuori la libreria sklearn e si inizia a usare questi algoritmi, molti di questi concetti vengono astratti in modo che sia difficile vedere queste differenze. In questo caso, questa astrazione ha portato a una forma di ignoranza rispetto a ciò che effettivamente implica l'apprendimento automatico. Teoria dell'apprendimento statistico: le basi statistiche del Machine Learning La principale differenza tra statistica e apprendimento automatico è che la statistica si basa esclusivamente su spazi di probabilità. Puoi derivare la totalità delle statistiche dalla teoria degli insiemi, che discute come possiamo raggruppare i numeri in categorie, chiamati insiemi, e quindi imporre una misura a questo insieme per garantire che il valore sommato di tutti questi sia 1. Lo chiamiamo probabilità spazio. La statistica non fa altre ipotesi sull'universo tranne questi concetti di insiemi e misure. Questo è il motivo per cui quando specifichiamo uno spazio di probabilità in termini matematici molto rigorosi, specifichiamo 3 cose. Uno spazio di probabilità, che indichiamo in questo modo, (Ω, F, P) , è costituito da tre parti: Uno spazio campionario , Ω , che è l'insieme di tutti i possibili risultati. Un insieme di eventi , F , in cui ogni evento è un insieme contenente zero o più risultati . L'assegnazione di probabilità agli eventi, P ; cioè, una funzione dagli eventi alle probabilità. L'apprendimento automatico si basa sulla teoria dell'apprendimento statistico, che è ancora basata su questa nozione assiomatica di spazi di probabilità. Questa teoria è stata sviluppata negli anni '60 e amplia le statistiche tradizionali. Esistono diverse categorie di apprendimento automatico e, in quanto tale, mi concentrerò solo sull'apprendimento supervisionato qui poiché è il più facile da spiegare (sebbene sia ancora un po' esoterico poiché è sepolto nella matematica). La teoria dell'apprendimento statistico per l'apprendimento supervisionato ci dice che abbiamo un insieme di dati, che indichiamo come S = {(xᵢ,yᵢ)} . Questo fondamentalmente dice che abbiamo un set di dati di n punti dati, ognuno dei quali è descritto da alcuni altri valori che chiamiamo feature, che sono forniti da x, e queste caratteristiche sono mappate da una certa funzione per darci il valore y. Dice che sappiamo di avere questi dati e il nostro obiettivo è trovare la funzione che mappa i valori x ai valori y . Chiamiamo spazio delle ipotesi l'insieme di tutte le possibili funzioni che possono descrivere questa mappatura. Per trovare questa funzione dobbiamo dare all'algoritmo un modo per 'imparare' qual è il modo migliore per affrontare il problema. Questo è fornito da qualcosa chiamato funzione di perdita. Quindi, per ogni ipotesi (funzione proposta) che abbiamo, dobbiamo valutare come si comporta quella funzione osservando il valore del suo rischio atteso su tutti i dati. Il rischio atteso è essenzialmente una somma della funzione di perdita moltiplicata per la distribuzione di probabilità dei dati. Se conoscessimo la distribuzione di probabilità congiunta della mappatura, sarebbe facile trovare la funzione migliore. Tuttavia, questo in generale non è noto, e quindi la nostra scommessa migliore è indovinare la funzione migliore e quindi decidere empiricamente se la funzione di perdita è migliore o meno. Lo chiamiamo rischio empirico . Possiamo quindi confrontare diverse funzioni e cercare l'ipotesi che ci dà il rischio minimo atteso , cioè l'ipotesi che dà il valore minimo (chiamato minimo) di tutte le ipotesi sui dati. Tuttavia, l'algoritmo ha la tendenza a imbrogliare per ridurre al minimo la sua funzione di perdita sovraadattandosi ai dati. Questo è il motivo per cui dopo aver appreso una funzione basata sui dati del set di allenamento, tale funzione viene convalidata su un set di dati di prova, dati che non sono stati visualizzati nel set di allenamento. La natura di come abbiamo appena definito l'apprendimento automatico ha introdotto il problema dell'overfitting e giustificato la necessità di avere un set di formazione e test durante l'esecuzione dell'apprendimento automatico. Questa non è una caratteristica intrinseca delle statistiche perché non stiamo cercando di ridurre al minimo il nostro rischio empirico. Un algoritmo di apprendimento che sceglie la funzione che riduce al minimo il rischio empirico è chiamato minimizzazione del rischio empirico . Esempi di differenze tra statistica e Machien Learning Prendi il caso semplice della regressione lineare. In senso tradizionale, cerchiamo di ridurre al minimo l'errore tra alcuni dati per trovare una funzione che possa essere utilizzata per descrivere i dati. In questo caso, in genere utilizziamo l'errore quadratico medio. Facciamo il quadrato in modo che gli errori positivi e negativi non si annullino a vicenda. Possiamo quindi risolvere i coefficienti di regressione in una forma chiusa. Succede solo che se prendiamo la nostra funzione di perdita come l'errore quadratico medio ed eseguiamo la minimizzazione empirica del rischio come sposato dalla teoria dell'apprendimento statistico, finiamo con lo stesso risultato dell'analisi di regressione lineare tradizionale. Questo è solo perché questi due casi sono equivalenti, allo stesso modo in cui eseguire la massima verosimiglianza su questi stessi dati ti darà anche lo stesso risultato. La massima verosimiglianza ha un modo diverso di raggiungere questo stesso obiettivo, ma nessuno discuterà e dirà che la massima verosimiglianza è la stessa della regressione lineare. Il caso più semplice chiaramente non aiuta a differenziare questi metodi. Un altro punto importante da sottolineare è che negli approcci statistici tradizionali non esiste il concetto di set di training e test, ma utilizziamo le metriche per aiutarci a esaminare le prestazioni del nostro modello. Quindi la procedura di valutazione è diversa ma entrambi i metodi sono in grado di darci risultati statisticamente robusti. Un ulteriore punto è che l'approccio statistico tradizionale qui ci ha fornito la soluzione ottimale perché la soluzione aveva una forma chiusa. Non ha testato altre ipotesi e convergeva verso una soluzione. Considerando che il metodo di apprendimento automatico ha provato una serie di modelli diversi ed è convergente all'ipotesi finale, che si è allineata con il risultato dell'algoritmo di regressione. Se avessimo usato una funzione di perdita diversa, i risultati non sarebbero convergenti. Ad esempio, se avessimo utilizzato la perdita di cerniera (che non è differenziabile utilizzando la discesa del gradiente standard, quindi sarebbero necessarie altre tecniche come la discesa del gradiente prossimale), i risultati non sarebbero gli stessi. Un ultimo confronto può essere effettuato considerando la distorsione del modello. Si potrebbe chiedere all'algoritmo di apprendimento automatico di testare modelli lineari, nonché modelli polinomiali, modelli esponenziali e così via, per vedere se queste ipotesi si adattano meglio ai dati data la nostra funzione di perdita a priori . Questo è come aumentare lo spazio delle ipotesi rilevanti. Nel senso statistico tradizionale, selezioniamo un modello e possiamo valutarne l'accuratezza, ma non possiamo farlo selezionare automaticamente il modello migliore tra 100 modelli diversi. Ovviamente, c'è sempre qualche distorsione nel modello che deriva dalla scelta iniziale dell'algoritmo. Ciò è necessario poiché trovare una funzione arbitraria ottimale per il set di dati è un problema NP-difficile. E' Meglio la statistica o il Machine Learning? Questa è in realtà una domanda stupida. In termini di statistiche e apprendimento automatico, l'apprendimento automatico non esisterebbe senza le statistiche, ma l'apprendimento automatico è piuttosto utile nell'era moderna a causa dell'abbondanza di dati a cui l'umanità ha accesso dall'esplosione delle informazioni. Confrontare l'apprendimento automatico e i modelli statistici è un po' più difficile. Quello che usi dipende in gran parte dal tuo scopo. Conclusione differenza tra statistica e Machine Learning Se desideri semplicemente creare un algoritmo in grado di prevedere i prezzi delle case con un'elevata precisione o utilizzare i dati per determinare se è probabile che qualcuno contragga determinati tipi di malattie, l'apprendimento automatico è probabilmente l'approccio migliore. Se stai cercando di dimostrare una relazione tra variabili o di fare inferenze dai dati, un modello statistico è probabilmente l'approccio migliore. Se non hai un solido background in statistica, puoi comunque studiare l'apprendimento automatico e farne uso, l'astrazione offerta dalle librerie di apprendimento automatico rende abbastanza facile usarle come non esperto, ma hai comunque bisogno di una certa comprensione di le idee statistiche sottostanti al fine di evitare che i modelli si adattino eccessivamente e forniscano inferenze.
- Cosa sono le reti neurali convoluzionali CNN? Introduzione alle reti neurali convoluzionali
Nei precedenti articoli abbiamo parlato molto di deep learning, reti neurali e tipi di esse, ma oggi in questo articolo impareremo a conoscere le reti ANN un tipo di rete neurale della famiglia del deep learning. Prerequisiti : Se non sai cosa è il Machine Learning, clicca qui Se non sai cosa è il Deep Learning, clicca qui Se non conosci le principali applicazioni Deep Learning, clicca qui Se non sai come scaricare e gestire le librerie, clicca qui Se non sai cosa sia un Dataset, clicca qui Cos'è una rete neurale? Una rete neurale è una serie di algoritmi che tenta di riconoscere le relazioni sottostanti in un insieme di dati attraverso un processo che imita il modo in cui opera il cervello umano . le reti neurali si riferiscono a sistemi di neuroni . la rete neurale è anche un insieme di neuroni organizzati . Queste reti neurali hanno molti strati tra gli strati di input e output che e gli strati tra di loro sono nascosti. Cos'è un neurone? Un neurone è una funzione matematica ogni neurone riceve un input ed elabora l'informazione particolare e restituisce l'output. dove x1,x2,x3 sono input e w1,w2,w3 sono i loro pesi e li ranghiamo in un neurone e y è l'output dato dal neurone. Che cos'è una rete neurale convoluzionale (CNN)? Le reti neurali convoluzionali (CNN o ConvNet) sono un tipo di rete neurale artificiale utilizzata per analizzare le immagini visive . Le mappe delle funzionalità vengono generate utilizzando un'architettura a peso condiviso di kernel di convoluzione o filtri che scorrono lungo le funzionalità di input e forniscono risposte equivarianti di traduzione . Le reti neurali convoluzionali si distinguono dalle altre reti neurali per le loro prestazioni superiori con input di segnali di immagini , voce o audio . Hanno tre tipi principali di layer, che sono: Convolutional Layer , Pooling Layer e Fully-Connected Layer . Cosa è Strato convoluzionale ? Lo strato convoluzionale è il componente più importante di una CNN perché è dove avviene la maggior parte del calcolo . Richiede dati di input, un filtro e una mappa delle caratteristiche, tra le altre cose. Cosa è lo Strato di pooling ? Il raggruppamento dei livelli , noto anche come downsampling , riduce il numero di parametri nell'input eseguendo la riduzione della dimensionalità. Il processo di raggruppamento , come il livello convoluzionale , fa scorrere un filtro sull'intero input, ma questo filtro non ha pesi . Cosa è il Livello completamente connesso ? Il nome del livello completamente connesso è autoesplicativo. Nei livelli parzialmente collegati, i valori dei pixel dell'immagine di input non sono direttamente collegati al livello di output. Ogni nodo nel livello di output, d'altra parte, si connette direttamente a un nodo nel livello precedente nel livello completamente connesso. Come funzionano le CNN? Più strati di neuroni artificiali costituiscono reti neurali convoluzionali . I neuroni artificiali sono funzioni matematiche che calcolano la somma ponderata di vari input e producono un valore di attivazione, simile alle loro controparti biologiche. Il componente di base delle reti neurali artificiali , il neurone artificiale, ha la struttura seguente. L'azione di ogni neurone è determinata dai suoi pesi. I neuroni artificialiin una CNN rilevano numerose proprietà visive quando alimentati con valori di pixel. Speriamo davvero che questo articolo sia riuscito a darti l'infarinatura che cercavi sulle CNN. Qui sotto troverai una sezione per fare commenti o domande,e degli articoli correlati. Grazie mille per la lettura condividi l'articolo per supportarci :)
- Cosa sono le reti neurali ricorrenti RNN? Un'introduzione alle reti neurali ricorrenti
Nei precedenti articoli abbiamo parlato molto di deep learning, reti neurali e tipi di esse, ma oggi in questo articolo spiegheremo nel dettaglio RNN un tipo di rete neurale della famiglia del deep learning. Prerequisiti : Se non sai cosa è il Machine Learning, clicca qui Se non sai cosa è il Deep Learning, clicca qui Se non conosci le principali applicazioni Deep Learning, clicca qui Se non sai come scaricare e gestire le librerie, clicca qui Se non sai cosa sia un Dataset, clicca qui Cos'è una rete neurale? Una rete neurale è una serie di algoritmi che tenta di riconoscere le relazioni sottostanti in un insieme di dati attraverso un processo che imita il modo in cui opera il cervello umano . le reti neurali si riferiscono a sistemi di neuroni . la rete neurale è anche un insieme di neuroni organizzati . Queste reti neurali hanno molti strati tra gli strati di input e output che e gli strati tra di loro sono nascosti. Cos'è un neurone? Un neurone è una funzione matematica ogni neurone riceve un input ed elabora l'informazione particolare e restituisce l'output. dove x1,x2,x3 sono input e w1,w2,w3 sono i loro pesi e li ranghiamo in un neurone e y è l'output dato dal neurone. Che cos'è una rete neurale ricorrente (RNN)? Una rete neurale ricorrente è una classe di reti neurali artificiali in cui le connessioni tra i nodi formano un grafo diretto lungo una sequenza temporale. Ciò gli consente di esibire un comportamento dinamico temporale. Derivati da reti neurali feedforward , gli RNN possono utilizzare il loro stato interno (memoria) per elaborare sequenze di input a lunghezza variabile . Ciò li rende applicabili a attività come il riconoscimento della grafia non segmentato, connesso o il riconoscimento vocale. Le reti neurali ricorrenti sono teoricamente complete di Turing e possono eseguire programmi arbitrari per elaborare sequenze arbitrarie di input. Reti neurali feed-forward Una rete neurale feed-forward consente alle informazioni di fluire solo nella direzione in avanti, dai nodi di input , attraverso i livelli nascosti e ai nodi di output . Non ci sono cicli o loop nella rete . Come funzionano le reti neurali ricorrenti? In un RNN l'informazione scorre in un ciclo . Quando prende una decisione , considera l' input corrente e anche ciò che ha appreso dagli input ricevuti in precedenza . I loop in RNN assicurano che le informazioni siano conservate nella sua memoria . In una rete neurale feed-forward , le informazioni possono spostarsi solo in una direzione . cioè, dal livello di input al livello nascosto e quindi al livello di output . È necessario notare che una volta che le informazioni passano, si spostano in una direzione diritta e nessun nodo viene toccato per la seconda volta.Tipi di reti neurali ricorrenti Esistono quattro tipi di reti neurali ricorrenti : Uno a uno Uno a Molti Molti a Uno Molti a molti Uno a Molti Questo tipo di rete neurale è noto come Vanilla Neural Network . Viene utilizzato per problemi generali di apprendimento automatico, che ha un singolo input e un singolo output . Queste sono anche chiamate reti neurali semplici . Uno a Molti Questo tipo di rete neurale ha un ingresso singolo e più uscite. Un esempio è la didascalia dell'immagine . Molti a Uno Questo RNN prende una sequenza di input e genera un singolo output . L'analisi del sentimento è un buon esempio di questo tipo di rete in cui una determinata frase può essere classificata come espressione di sentimenti positivi o negativi . Molti a molti Questo RNN prende una sequenza di input e genera una sequenza di output . La traduzione automatica è uno degli esempi Applicazioni delle Reti Neurali Ricorrenti Generazione sottotitoli delle immagini Previsione di serie temporali Elaborazione del linguaggio naturale Grazie mille per aver letto l'articolo, condividilo per supportarci.
- Cos'è la previsione delle serie temporali o Time Series Forecasting?
La previsione delle serie temporali è un'area importante dell'apprendimento automatico che viene spesso trascurata. È importante perché ci sono così tanti problemi di previsione che coinvolgono una componente temporale. Questi problemi vengono trascurati perché è questa componente temporale che rende i problemi delle serie temporali più difficili da gestire. In questo post scoprirai la previsione delle serie temporali. Dopo aver letto questo post, saprai: Definizioni standard di serie temporali, analisi di serie temporali e previsioni di serie temporali. Le componenti importanti da considerare nei dati delle serie temporali. Esempi di serie temporali per rendere concreta la tua comprensione. Cosa sono le Serie temporali? Un normale set di dati di apprendimento automatico è una raccolta di osservazioni. Per esempio: osservazione #1 osservazione #2 osservazione #3 Il tempo gioca un ruolo nei normali set di dati di apprendimento automatico. Vengono fatte previsioni per nuovi dati quando l'esito effettivo potrebbe non essere noto fino a una data futura. Il futuro viene previsto, ma tutte le osservazioni precedenti vengono quasi sempre trattate allo stesso modo. Un set di dati di serie temporali è diverso. Le serie temporali aggiungono un'esplicita dipendenza dall'ordine tra le osservazioni: una dimensione temporale. Questa dimensione aggiuntiva è sia un vincolo che una struttura che fornisce una fonte di informazioni aggiuntive. Una serie temporale è una sequenza di osservazioni prese in sequenza nel tempo. Per esempio: Tempo #1, osservazione Tempo #2, osservazione Tempo #3, osservazione Descrivere vs. prevedere Abbiamo obiettivi diversi a seconda che siamo interessati a comprendere un set di dati o fare previsioni. La comprensione di un set di dati, chiamato analisi delle serie temporali , può aiutare a fare previsioni migliori, ma non è necessario e può comportare un grande investimento tecnico in tempo e competenze non direttamente allineati con il risultato desiderato, ovvero prevedere il futuro. Nella modellazione descrittiva, o analisi delle serie temporali, una serie storica viene modellata per determinarne le componenti in termini di modelli stagionali, tendenze, relazioni con fattori esterni e simili. … Al contrario, la previsione delle serie temporali utilizza le informazioni in una serie temporale (magari con informazioni aggiuntive) per prevedere i valori futuri di quella serie Analisi delle serie temporali Quando si utilizza la statistica classica, la preoccupazione principale è l'analisi delle serie temporali. L'analisi delle serie temporali implica lo sviluppo di modelli che catturino o descrivano al meglio una serie temporale osservata al fine di comprendere le cause sottostanti. Questo campo di studio cerca il " perché " dietro un set di dati di serie temporali. Ciò comporta spesso l'elaborazione di ipotesi sulla forma dei dati e la scomposizione delle serie temporali in componenti costitutive. La qualità di un modello descrittivo è determinata da quanto bene descrive tutti i dati disponibili e dall'interpretazione che fornisce per informare meglio il dominio del problema. L'obiettivo principale dell'analisi delle serie temporali è sviluppare modelli matematici che forniscano descrizioni plausibili da dati campione Previsione di serie temporali Fare previsioni sul futuro è chiamato estrapolazione nella classica gestione statistica dei dati delle serie temporali. I campi più moderni si concentrano sull'argomento e si riferiscono ad esso come previsione di serie temporali. La previsione implica l'adattamento dei modelli ai dati storici e il loro utilizzo per prevedere le osservazioni future. I modelli descrittivi possono prendere in prestito per il futuro (ad esempio per attenuare o rimuovere il rumore), cercano solo di descrivere al meglio i dati. Una distinzione importante nella previsione è che il futuro è completamente indisponibile e deve essere stimato solo da ciò che è già accaduto. Lo scopo dell'analisi delle serie temporali è generalmente duplice: comprendere o modellare i meccanismi stocastici che danno origine a una serie osservata e prevedere o prevedere i valori futuri di una serie sulla base della storia di quella serie L'abilità di un modello di previsione delle serie temporali è determinata dalle sue prestazioni nel prevedere il futuro. Questo spesso va a scapito della possibilità di spiegare perché è stata fatta una previsione specifica, gli intervalli di confidenza e una comprensione ancora migliore delle cause alla base del problema. Componenti principali delle serie temporali L'analisi delle serie temporali fornisce un insieme di tecniche per comprendere meglio un set di dati. Forse il più utile di questi è la scomposizione di una serie temporale in 4 parti : Livello . Il valore della linea di base per la serie se fosse una linea retta. Tendenza . Il comportamento opzionale e spesso lineare in aumento o diminuzione delle serie nel tempo. Stagionalità . I modelli o cicli di comportamento ripetuti facoltativi nel tempo. Rumore . La variabilità opzionale nelle osservazioni che non può essere spiegata dal modello. Tutte le serie temporali hanno un livello, la maggior parte ha un rumore e l'andamento e la stagionalità sono facoltativi. Le caratteristiche principali di molte serie temporali sono le tendenze e le variazioni stagionali... un'altra caratteristica importante della maggior parte delle serie temporali è che le osservazioni ravvicinate nel tempo tendono ad essere correlate (dipendenti in serie) Si può pensare che questi componenti costitutivi si combinino in qualche modo per fornire le serie temporali osservate. Ad esempio, possono essere sommati per formare un modello come segue: y = livello + trend + stagionalità + rumore È possibile fare ipotesi su queste componenti sia nel comportamento che nel modo in cui sono combinate, il che consente di modellarle utilizzando metodi statistici tradizionali. Questi componenti possono anche essere il modo più efficace per fare previsioni sui valori futuri, ma non sempre. Nei casi in cui questi metodi classici non si traducono in prestazioni efficaci, questi componenti possono comunque essere concetti utili e persino input per metodi alternativi. Previsione nelle Serie Temporali di cosa preoccuparsi? Quando si effettuano previsioni, è importante capire il proprio obiettivo. Usa il metodo Socratico e fai molte domande per aiutarti a ingrandire le specifiche del tuo problema di modellazione predittiva . Per esempio: Quanti dati hai a disposizione e riesci a raccoglierli tutti insieme? Più dati sono spesso più utili, offrendo maggiori opportunità per l'analisi esplorativa dei dati, il test e l'ottimizzazione del modello e la fedeltà del modello. Qual è l'orizzonte temporale delle previsioni richiesto? A breve, medio o lungo termine? Orizzonti temporali più brevi sono spesso più facili da prevedere con maggiore sicurezza. Le previsioni possono essere aggiornate frequentemente nel tempo o devono essere fatte una volta e rimanere statiche? L'aggiornamento delle previsioni man mano che nuove informazioni diventano disponibili si traduce in previsioni più accurate. Con quale frequenza temporale sono richieste le previsioni? Spesso le previsioni possono essere fatte a frequenze più basse o più alte, consentendo di sfruttare il downsampling e l'upsampling dei dati, che a loro volta possono offrire vantaggi durante la modellazione. I dati delle serie temporali spesso richiedono pulizia, ridimensionamento e persino trasformazione. Per esempio: Frequenza . Forse i dati sono forniti a una frequenza troppo alta per essere modellati o sono distanziati in modo non uniforme nel tempo che richiede il ricampionamento per l'uso in alcuni modelli. Valori anomali . Forse ci sono valori anomali corrotti o estremi che devono essere identificati e gestiti. Mancante . Forse ci sono lacune o dati mancanti che devono essere interpolati o imputati. Spesso i problemi delle serie temporali sono in tempo reale e forniscono continuamente nuove opportunità di previsione. Ciò aggiunge un'onestà alla previsione delle serie temporali che elimina rapidamente le ipotesi sbagliate, gli errori nella modellazione e tutti gli altri modi in cui potremmo essere in grado di ingannare noi stessi. Esempi di previsione di serie temporali C'è un'offerta quasi infinita di problemi di previsione delle serie temporali. Di seguito sono riportati 10 esempi da una serie di settori per rendere più concrete le nozioni di analisi e previsione delle serie temporali. Prevedere se un tracciato EEG in secondi indica che un paziente sta avendo una crisi o meno. Previsione del prezzo di chiusura di un'azione ogni giorno. Previsione del tasso di natalità in tutti gli ospedali di una città ogni anno. Previsione delle vendite di prodotti in unità vendute ogni giorno per un negozio. Previsione del numero di passeggeri attraverso una stazione ferroviaria ogni giorno. Previsione della disoccupazione per uno stato ogni trimestre. Previsione della domanda di utilizzo su un server ogni ora. Previsione della dimensione della popolazione di conigli in uno stato ogni stagione riproduttiva. Previsione del prezzo medio della benzina in una città ogni giorno. Mi aspetto che sarai in grado di mettere in relazione uno o più di questi esempi con i tuoi problemi di previsione delle serie temporali che vorresti affrontare. Conclusione In questo post, hai scoperto la previsione delle serie temporali. Nello specifico hai imparato: Informazioni sui dati delle serie temporali e sulla differenza tra l'analisi delle serie temporali e la previsione delle serie temporali. I componenti costitutivi in cui una serie storica può essere scomposta durante l'esecuzione di un'analisi. Esempi di problemi di previsione di serie temporali per rendere concrete queste idee. Hai domande sulla previsione delle serie temporali o su questo post? Fai le tue domande nei commenti qui sotto.
- Mito la libreria python per data scientist e data analyst
Prima di iniziare a spiegarti cosa è Mito e come utilizzarlo sui tuoi dati per risparmiare l'80% sulla pulizia e analisi dati vogliamo mostrarti direttamente un video esempio di cosa si può fare con questa libreria. Giusto per farti vedere in pochi minuti quanto è potente. Subito dopo troverai spiegazioni e tutorial. Mito combina i tuoi strumenti di data science preferiti in un pacchetto Python ! Mito è un'interfaccia per fogli di calcolo per Python. Puoi importare Mito nel tuo Jupyter Notebook e apparirà un foglio di calcolo. Ogni modifica apportata al foglio di calcolo genererà il Python equivalente nella cella del codice sottostante. Ad esempio, se crei una tabella pivot in Mito, il codice pivot Pandas apparirà automaticamente, con la documentazione, nella cella del codice seguente. Il codice generato automaticamente è ottimo per ripetere l'analisi su un'altra macchina e per i neofiti di Data Science per iniziare a lavorare con i panda nel modo di lavorare con i dati. Mito è più comunemente usato in due modi: Il primo è che gli utenti Python scrivano codice rapidamente. Poiché Mito genera automaticamente il codice e lo documenta automaticamente, non devi più andare su Google o Stack Overflow per trovare la sintassi giusta per molte operazioni. Il secondo caso d'uso è la transizione dai flussi di lavoro dei fogli di calcolo a Python, che tratteremo in questo articolo. Per prima cosa installiamo Mito la libreria di Python Presumo che tu abbia una versione recente di Jupyter Lab installata sulla tua macchina. In caso contrario, consulta la documentazione ufficiale di Jupyter Lab per iniziare. Per installare Mito, esegui questi comandi: python -m pip install mitoinstaller python -m mitoinstaller install Quindi apri Jupyter Lab e importa il Mitosheet: import mitosheet mitosheet.sheet() Puoi vedere le istruzioni di installazione complete nella pagina "documenti" del sito Web Mito. Importare dataset con python e Mito In Mito puoi importare file Excel o CSV. Tutto quello che devi fare è fare clic sul pulsante di importazione e puoi sfogliare i tuoi file locali. La gestione di un set di dati di grandi dimensioni in un foglio di calcolo può essere incredibilmente lenta: l'aggiornamento di formule, la creazione di tabelle pivot o la generazione di grafici possono richiedere minuti o addirittura ore per il caricamento. E se hai un set di dati più grande di 1 milione di righe, Excel non lo accetterà nemmeno. Molti utenti Mito prendono i loro fogli di calcolo e li importano in Mito per elaborare i dati rapidamente. Mito può gestire qualsiasi dimensione di dati che rientri in un DataFrame Pandas (ovvero milioni e milioni di righe) e quando importi il tuo set di dati, Mito lo trasforma automaticamente in un DataFrame. Analisi dei dati con Mito Con Mito puoi facilmente eseguire tutte le classiche operazioni solite dei data scientist o data analyst, ad esempio : Pivoting Graphing Filtering Sorting Merging Deduplicate Potrai eseguire tutte le classiche operazioni di Excel Creare formule come Excel Creare Statistiche avanzate Generare codice python in modo automatico e tanto altro! Nelle visualizzazioni seguenti, puoi vedere com'è filtrare un set di dati, creare una tabella pivot e creare un grafico e avere il codice equivalente generato nella cella del codice sottostante. Creiamo una Tabella pivot con Mito Vediamo le Statistiche di riepilogo Aggiungiamo delle Formule simili a Excel Esportare l'analisi con Mito e Python Dopo aver completato l'analisi in Mito, ci sono alcuni modi per condividere il risultato. Alcuni utenti vogliono prendere il codice generato e copiarlo in un altro script o applicare qualcosa di più avanzato come un modello ML più avanti nel notebook. Molti utenti desiderano riportare l'output su un foglio di calcolo. All'interno di Mito, puoi fare clic su "Pulsante Esporta" e recuperare lo stato corrente di Mito come file Excel o CSV. Ecco il sito Web di Mito , dove puoi saperne di più sullo strumento e ottenere le istruzioni per l'installazione. Conclusione su Mito la libreria che automatizza la Data Science e la Data Analysis Mito è un potente strumento per coloro che desiderano passare da ambienti di fogli di calcolo come Excel o Google Spreadsheets a Python. Usiamo Mito per l'analisi esplorativa dei dati iniziale, per avere un'idea dei dati. Digitare lo stesso insieme di comandi più e più volte diventa noioso dopo anni e anni. Aggiungerai Mito ai strumenti di Data Science? Facci sapere nei commenti qui sotto. Vuoi mettere in pratica quello che hai letto ? Scarica Progetti già pronti Lavora con il nostro editor online senza dover installare librerie Usa i nostri set di Dati Oppure segui i tutorial correlati : Tutorial di Regressione Logistica per l'apprendimento automatico Riconoscimento facciale con Python, in meno di 25 righe di codice Tutorial di Regressione Logistica per l'apprendimento automatico Scikit Learn e Python Tutorial Per Creare Modelli di Intelligenza Artificiale Tutorial Pratico Tensorflow , TensorBoard e Python Feature Engineering e Feature Selection per Principianti e non Spiegazione della più semplice rete neurale per principianti PyScript, come usare Python nel browser! Il tuo Primo Programma di Machine Learning con Python e Google Colab Il tuo primo Programma di Deep Learning in Python con Keras Step-By-Step Come costruire modelli predittivi sanitari utilizzando PyHealth? Esempio pratico Rilevamento Di Veicoli In Tempo Reale Come implementare l'algoritmo Perceptron da zero in Python Implementare le reti neurali ricorrenti (RNN) con Python e Keras Deep learnign e python : Object Recognition e Object Predict esempio Come salvare e caricare il tuo modello di deep learning
- Cosa è la classificazione del testo
Gli analisti affermano che ci sono molte più informazioni di quelle che possiamo elaborare. Ciò è particolarmente vero per la classificazione del testo. Pensate a quanto testo produciamo su Facebook, o quante informazioni contiene wikipedia. La classificazione del testo è l'atto di determinare a quale categoria appartiene un testo. Questo video fa schifo Questo video è fantastico L' I.A. aiuterà l'uomo L' I.A. distruggerà l'uomo Questo video fa schifo Questo video è fantastico L' I.A. aiuterà l'uomo L' I.A. distruggerà l'uomo Il processo è solitamente diviso in due parti principali, "formazione" e "classificazione". La classificazione del testo è un processo di apprendimento automatico, il che significa che è una forma di intelligenza artificiale. Questo può essere utilizzato in molti modi diversi e può essere molto utile in una varietà di campi diversi. Che cos'è la classificazione del testo? La classificazione del testo è il processo di categorizzazione testuale in una o più classi diverse per organizzare, strutturare e filtrare in qualsiasi parametro. Ad esempio, la classificazione del testo viene utilizzata in documenti legali, studi medici e file o semplicemente come recensioni di prodotti. I dati sono più importanti che mai; le aziende stanno spendendo fortune cercando di estrarre quante più informazioni possibili. Perché usare la classificare del testo con il Machine Learning? Scalabilità: l'immissione, l'analisi e l'organizzazione manuali dei dati sono noiose e lente. L'apprendimento automatico consente un'analisi automatica che può essere applicata a set di dati, non importa quanto grandi o piccoli siano. Coerenza: l'errore umano si verifica a causa della fatica e della desensibilizzazione al materiale nel set di dati. L'apprendimento automatico aumenta la scalabilità e migliora drasticamente la precisione grazie alla natura imparziale e alla coerenza dell'algoritmo. Velocità: a volte potrebbe essere necessario accedere e organizzare rapidamente i dati. Un algoritmo appreso dalla macchina può analizzare i dati per fornire informazioni in modo digeribile. Creare un classificatore del testo Inizia con 6 passaggi universali Alcuni metodi di base possono classificare documenti di testo diversi in una certa misura, ma i metodi più comunemente usati coinvolgono l'apprendimento automatico. Ci sono sei passaggi di base che un modello di classificazione del testo deve affrontare prima di essere distribuito. 1. Fornire un set di dati di alta qualità I set di dati sono blocchi di dati grezzi utilizzati come origine dati per alimentare il nostro modello. Nel caso della classificazione del testo, vengono utilizzati algoritmi di apprendimento automatico supervisionati, fornendo così al nostro modello di apprendimento automatico dati etichettati. I dati etichettati sono dati predefiniti per il nostro algoritmo con un tag informativo allegato. 2. Filtraggio ed elaborazione dei dati Poiché i modelli di apprendimento automatico possono comprendere solo valori numerici, la tokenizzazione e l'incorporamento di parole del testo fornito saranno necessarie affinché il modello riconosca correttamente i dati. La tokenizzazione è il processo di divisione dei documenti di testo in parti più piccole chiamate token. I token possono essere rappresentati come l'intera parola, una sottoparola o un singolo carattere. Ad esempio, la tokenizzazione del lavoro in modo più intelligente può essere eseguita in questo modo: Parola chiave: stupido Sottoparola token: st-pi-do Sottolettera token: s-t-pi-d-o La tokenizzazione è importante perché i modelli di classificazione del testo possono elaborare i dati solo a livello basato su token e non possono comprendere ed elaborare frasi complete. Sarebbe necessaria un'ulteriore elaborazione sul set di dati grezzi fornito affinché il nostro modello digerisse facilmente i dati forniti. Rimuovi le funzionalità non necessarie, filtrando i valori nulli e infiniti e altro ancora. Mescolare l'intero set di dati aiuterebbe a prevenire eventuali distorsioni durante la fase di addestramento. 3. Suddivisione del nostro set di dati in set di dati di addestramento e test Vogliamo addestrare i dati sull'80% del set di dati riservando il 20% del set di dati per testare l'accuratezza dell'algoritmo. Poi ognuno fa come preferisce. 4. Allena l'algoritmo Eseguendo il nostro modello con il set di dati di addestramento, l'algoritmo può classificare i testi forniti in diverse categorie identificando schemi e approfondimenti nascosti. 5. Testare e verificare le prestazioni del modello Successivamente, verifica l'integrità del modello utilizzando il set di dati di test come menzionato nel passaggio 3. Il set di dati di test non sarà etichettato per testare l'accuratezza del modello rispetto ai risultati effettivi. Per testare accuratamente il modello, il set di dati di test deve contenere nuovi casi di test (dati diversi rispetto al set di dati di addestramento precedente) per evitare l'overfitting del nostro modello. 6. Ottimizzazione del modello Ottimizza il modello di machine learning regolando i diversi iperparametri del modello senza overfitting o creare una varianza elevata. Un iperparametro è un parametro il cui valore controlla il processo di apprendimento del modello. Ora sei pronto per la distribuzione! Come funziona la classificazione del testo? Nel processo di filtraggio menzionato in precedenza, gli algoritmi di machine e deep learning possono comprendere solo valori numerici, costringendoci a eseguire alcune tecniche di incorporamento di parole sul nostro set di dati. L'inclusione di parole è il processo di rappresentazione delle parole in vettori di valore reale che possono codificare il significato della parola data. Word2Vec: un metodo di incorporamento di parole non supervisionato sviluppato da Google. Utilizza le reti neurali per imparare da grandi set di dati di testo. Come suggerisce il nome, l'approccio Word2Vec converte ogni parola in un dato vettore. GloVe: noto anche come Global Vector, è un modello di apprendimento automatico non supervisionato per ottenere rappresentazioni vettoriali di parole. Simile al metodo Word2Vec, l'algoritmo GloVe mappa le parole in spazi significativi in cui la distanza tra le parole è correlata alla somiglianza semantica. TF-IDF: Abbreviazione di termine frequenza documento inversa frequenza, TF-IDF è un algoritmo di incorporamento di parole che valuta l'importanza di una parola all'interno di un determinato documento. Il TF-IDF assegna ad ogni parola un determinato punteggio per indicarne l'importanza in una serie di documenti. Algoritmi di classificazione del testo Ecco tre degli algoritmi di classificazione del testo più noti ed efficaci. Tieni presente che ci sono ulteriori algoritmi di definizione incorporati in ciascun metodo. 1. Classificazione del testo con Macchina vettoriale di supporto lineare ( SVM) Considerato uno dei migliori algoritmi di classificazione del testo in circolazione, l'algoritmo della macchina vettoriale di supporto lineare traccia i punti dati forniti relativi alle loro caratteristiche date, quindi traccia una linea di adattamento migliore per dividere e classificare i dati in classi diverse. 2. Classificazione del testo con la Regressione logistica La regressione logistica è una sottoclasse di regressione che si concentra principalmente sui problemi di classificazione. Utilizza un confine decisionale, una regressione e una distanza per valutare e classificare il set di dati. 3. Classificazione del testo con Naive Bayes L'algoritmo di Naive Bayes classifica oggetti diversi in base alle loro caratteristiche fornite. Quindi traccia i confini del gruppo per estrapolare quelle classificazioni di gruppo da risolvere e classificare ulteriormente. Errori da evitare nella classificazione del testo Dati di train di scarsa qualità Fornire al tuo algoritmo dati di bassa qualità comporterà previsioni future scadenti. Pensa ai dati come gli ingredienti del tuo programma. Se usi ingredienti di bassa qualità o magari scaduti come pensi verrà fuori il piatto alla fine ? Una schifezza, anche se ti sei impegnato tanto. Tuttavia, un problema molto comune tra i professionisti dell'apprendimento automatico è alimentare il modello di formazione con un set di dati troppo dettagliato che include funzionalità non necessarie. Il sovraffollamento dei dati con dati irrilevanti può comportare una diminuzione delle prestazioni del modello. Quando si tratta di scegliere e organizzare un set di dati, Less is More. Un addestramento errato per testare rapporti di dati può influire notevolmente sulle prestazioni del modello e influire sulla riproduzione casuale e sul filtro. Con punti dati precisi che non sono distorti da altri fattori non necessari, il modello di addestramento funzionerà in modo più efficiente. Quando si esegue il training del modello, scegliere un set di dati che soddisfi i requisiti del modello, filtrare i valori non necessari, mescolare il set di dati e testare la precisione del modello finale. Gli algoritmi più semplici richiedono meno tempo e risorse di calcolo; i modelli migliori sono quelli più semplici che possono risolvere problemi complessi. Overfitting e Underfitting La precisione dei modelli quando l'allenamento raggiunge un picco e poi si riduce lentamente man mano che l'allenamento continua. Questo è chiamato overfitting; il modello inizia ad apprendere modelli non intenzionali poiché la formazione è durata troppo a lungo. Prestare attenzione quando si ottiene un'elevata precisione sul set di addestramento poiché l'obiettivo principale è sviluppare modelli la cui accuratezza è radicata nel set di test (dati che il modello non ha mai visto prima). D'altra parte, underfitting si ha quando il modello formativo ha ancora margini di miglioramento e non ha ancora raggiunto il suo massimo potenziale. I modelli scarsamente addestrati derivano dal periodo di tempo addestrato o sono eccessivamente regolati rispetto al set di dati. Questo esemplifica il punto di avere dati concisi e precisi. Trovare il punto debole durante l'allenamento di un modello è fondamentale. La suddivisione del set di dati 80/20 è un buon inizio, ma l'ottimizzazione dei parametri potrebbe essere ciò di cui il tuo modello specifico ha bisogno per funzionare al meglio. Formato testo errato Sebbene non sia ampiamente menzionato in questo articolo, l'utilizzo del formato di testo corretto per il tuo problema di classificazione del testo porterà a risultati migliori. Alcuni approcci alla rappresentazione dei dati testuali includono GloVe , Word2Vec e modelli di incorporamento . L'uso del formato di testo corretto migliorerà il modo in cui il modello legge e interpreta il set di dati e, a sua volta, lo aiuterà a comprendere i modelli. Applicazioni di classificazione del testo ecco alcuni eempi di applicazioni di classificazione del testo : Filtraggio dello spam: ricercando determinate parole chiave, un'e-mail può essere classificata come utile o spam. Classificazione del testo: utilizzando le classificazioni del testo, le applicazioni possono classificare diversi elementi (articoli, libri, ecc.) in classi diverse classificando i testi correlati come il nome dell'elemento, la descrizione e così via. L'utilizzo di tali tecniche può migliorare l'esperienza in quanto semplifica la navigazione degli utenti all'interno di un database. Identificazione dell'incitamento all'odio: alcune società di social media utilizzano la classificazione del testo per rilevare e vietare commenti o post con manierismi offensivi in quanto non consentono di digitare e chattare alcuna variazione di volgarità in un gioco multiplayer per bambini. Marketing e pubblicità: le aziende possono apportare modifiche specifiche per soddisfare i propri clienti comprendendo come gli utenti reagiscono a determinati prodotti. Può anche consigliare determinati prodotti in base alle recensioni degli utenti su prodotti simili. Gli algoritmi di classificazione del testo possono essere utilizzati insieme ai sistemi di raccomandazione, un altro algoritmo di deep learning utilizzato da molti siti Web online per ottenere affari ripetuti. Set di dati per la classificazione del testo Con tonnellate di set di dati etichettati e pronti per l'uso disponibili, puoi sempre cercare il set di dati perfetto che soddisfi i requisiti del tuo modello. Sebbene tu possa affrontare alcuni problemi quando decidi quale utilizzare, nella parte successiva ti consiglieremo alcuni dei set di dati più noti disponibili per l'uso pubblico. Set di dati IMDB Set di dati delle recensioni di Amazon Yelp Recensioni Dataset Raccolta di spam SMS Set di dati di revisione del grado di apertura Set di dati sul sentiment delle compagnie aeree statunitensi di Twitter Dataset di incitamento all'odio e linguaggio offensivo Set di dati clickbait I NOSTRI DATASET Siti web come Kaggle contengono una varietà di set di dati che coprono tutti gli argomenti. Prova a eseguire il tuo modello su un paio dei set di dati sopra menzionati per esercitarti! Esempio di Classificazione del testo con Python Classificazione del testo e Machine Learning Con il machine learning che ha avuto un enorme impatto nell'ultimo decennio, le aziende stanno provando ogni metodo possibile per utilizzare il machine learning per automatizzare i processi. Recensioni, commenti, post, articoli, giornali e documentazione hanno tutti un valore inestimabile nel testo. Con la classificazione del testo utilizzata in molti modi creativi per estrarre informazioni e modelli degli utenti, le aziende possono prendere decisioni supportate dai dati; i professionisti possono ottenere e apprendere informazioni preziose più velocemente che mai. Conclusione sulla Classificazione del testo Non è un segreto che le aziende stiano spendendo milioni di dollari cercando di estrarre quante più informazioni possibili. I dati sono la spina dorsale di qualsiasi azienda e più dati hai, maggiori sono le tue possibilità di prendere le decisioni giuste. Uno strumento che i data scientist possono utilizzare per estrarre i dati è la classificazione del testo. Ci auguriamo che il nostro post sul blog sulla classificazione del testo ti sia piaciuto. Se hai qualche domanda, usa i commenti qui sotto :)
- Come Generare dataset con python e scikit-learn
I dataset di test sono piccoli set di dati inventati che consentono di testare un algoritmo di apprendimento automatico. I dati dei set di dati di test hanno proprietà ben definite, come linearità o non linearità, che consentono di esplorare il comportamento dell'algoritmo specifico. La libreria Python scikit-learn fornisce una suite di funzioni per la generazione di campioni da problemi di test configurabili per la regressione e la classificazione. In questo tutorial scoprirai problemi di test e come usarli in Python con scikit-learn. Dopo aver completato questo tutorial, saprai: Come generare problemi di test di previsione di classificazione multi-classe. Come generare problemi di test di previsione della classificazione binaria. Come generare problemi di test di predizione di regressione lineare. Prerequisiti : Se non sai cosa è il Machine Learning, clicca qui Se non sai come scaricare e gestire le librerie, clicca qui Se non sai cosa sia un Dataset, clicca qui Se non sai perchè utilizziamo python, clicca qui Non hai un ambiente di sviluppo ? clicca qui Generare dataset con python Un problema durante lo sviluppo e l'implementazione di algoritmi di apprendimento automatico è come sapere se li hai implementati correttamente. I set di dati di test sono piccoli problemi inventati che consentono di testare ed eseguire il debug degli algoritmi. Sono anche utili per comprendere meglio il comportamento degli algoritmi in risposta alle modifiche degli iperparametri. Di seguito sono riportate alcune proprietà dei set di dati di test: Possono essere generati rapidamente e facilmente. Contengono risultati "conosciuti" o "compresi" per il confronto con le previsioni. Sono stocastici, consentendo variazioni casuali sullo stesso problema ogni volta che vengono generati. Sono piccoli e facilmente visualizzabili in due dimensioni. Possono essere ridimensionati banalmente. Consiglio di utilizzare i set di dati di test quando si inizia con un nuovo algoritmo di apprendimento automatico o quando si sviluppa un nuovo cablaggio di test. scikit-learn è una libreria Python per l'apprendimento automatico che fornisce funzioni per generare una suite di problemi di test. In questo tutorial, esamineremo alcuni esempi di generazione di problemi di test per algoritmi di classificazione e regressione. Generare dataset di classificazione La classificazione è il problema dell'assegnazione di etichette alle osservazioni. In questa sezione esamineremo tre problemi di classificazione: blob, lune e cerchi. Generare dataset di classificazione La funzione make_blobs() può essere utilizzata per generare blob di punti con una distribuzione gaussiana. Puoi controllare quanti BLOB generare e il numero di campioni da generare, oltre a una miriade di altre proprietà. Il problema è adatto per problemi di classificazione lineare data la natura linearmente separabile dei blob. L'esempio seguente genera un set di dati 2D di campioni con tre BLOB come problema di previsione della classificazione multi-classe. Ogni osservazione ha due input e 0, 1 o 2 valori di classe. # Genera un dataset per la classificazione 2d X, y = make_blobs(n_samples=100, centers=3, n_features=2) L'esempio completo è elencato di seguito. from sklearn.datasets import make_blobs from matplotlib import pyplot from pandas import DataFrame # Genera un dataset per la classificazione 2d X, y = make_blobs(n_samples=100, centers=3, n_features=2) # Creiamo uno scatter plot per il valore della classe df = DataFrame(dict(x=X[:,0], y=X[:,1], label=y)) colors = {0:'red', 1:'blue', 2:'green'} fig, ax = pyplot.subplots() grouped = df.groupby('label') for key, group in grouped: group.plot(ax=ax, kind='scatter', x='x', y='y', label=key, color=colors[key]) pyplot.show() L'esecuzione dell'esempio genera gli input e gli output per il problema e quindi crea un pratico grafico 2D che mostra i punti per le diverse classi utilizzando colori diversi. Nota, il tuo set di dati specifico e la trama risultante varieranno data la natura stocastica del generatore di dati. Questa è una funzionalità, non un bug. Useremo questa stessa struttura di esempio per i seguenti esempi. Generare dataset di classificazione ( lune ) La funzione make_moons() è per la classificazione binaria e genererà uno schema di turbolenza o due lune. Puoi controllare quanto sono rumorose le forme della luna e il numero di campioni da generare. Questo problema di test è adatto per algoritmi in grado di apprendere limiti di classe non lineari. L'esempio seguente genera un set di dati lunare con rumore moderato. # Genera un dataset per la classificazione 2d X, y = make_moons(n_samples=100, noise=0.1) L'esempio completo è elencato di seguito. from sklearn.datasets import make_moons from matplotlib import pyplot from pandas import DataFrame # Genera un dataset per la classificazione 2d X, y = make_moons(n_samples=100, noise=0.1) # Creiamo uno scatter plot per il valore della classe df = DataFrame(dict(x=X[:,0], y=X[:,1], label=y)) colors = {0:'red', 1:'blue'} fig, ax = pyplot.subplots() grouped = df.groupby('label') for key, group in grouped: group.plot(ax=ax, kind='scatter', x='x', y='y', label=key, color=colors[key]) pyplot.show() L'esecuzione dell'esempio genera e traccia il set di dati per la revisione, colorando ancora i campioni in base alla classe assegnata. Generare dataset di classificazione ( cerchi ) La funzione make_circles() genera un problema di classificazione binaria con set di dati che rientrano in cerchi concentrici. Ancora una volta, come con il problema del test delle lune, puoi controllare la quantità di rumore nelle forme. Questo problema di test è adatto per algoritmi in grado di apprendere varietà non lineari complesse. L'esempio seguente genera un set di dati circles con un po' di rumore. # Genera un dataset per la classificazione 2d X, y = make_circles(n_samples=100, noise=0.05) L'esempio completo è elencato di seguito. from sklearn.datasets import make_circles from matplotlib import pyplot from pandas import DataFrame # Genera un dataset per la classificazione 2d X, y = make_circles(n_samples=100, noise=0.05) # Creiamo uno scatter plotordinato per il valore della classe df = DataFrame(dict(x=X[:,0], y=X[:,1], label=y)) colors = {0:'red', 1:'blue'} fig, ax = pyplot.subplots() grouped = df.groupby('label') for key, group in grouped: group.plot(ax=ax, kind='scatter', x='x', y='y', label=key, color=colors[key]) pyplot.show() L'esecuzione dell'esempio genera e traccia il set di dati per la revisione. Generare dataset di regressione La regressione è il problema di prevedere una quantità data un'osservazione. La funzione make_regression() creerà un set di dati con una relazione lineare tra input e output. Puoi configurare il numero di campioni, il numero di funzioni di input, il livello di rumore e molto altro. Questo set di dati è adatto per algoritmi in grado di apprendere una funzione di regressione lineare. L'esempio seguente genererà 100 esempi con una funzione di input e una funzione di output con un rumore modesto. # Generiamo un Dataset per la regressione ( regression dataset ) X, y = make_regression(n_samples=100, n_features=1, noise=0.1) L'esempio completo è elencato di seguito. from sklearn.datasets import make_regression from matplotlib import pyplot # Generiamo un Dataset per la regressione ( regression dataset ) X, y = make_regression(n_samples=100, n_features=1, noise=0.1) # Creiamo il dataset del nostro set di dati pyplot.scatter(X,y) pyplot.show() L'esecuzione dell'esempio genererà i dati e traccia la relazione X e y, che, dato che è lineare, è piuttosto noiosa. Estensioni Questa sezione elenca alcune idee per estendere il tutorial che potresti voler esplorare. Confronta algoritmi . Seleziona un problema di test e confronta una suite di algoritmi sul problema e segnala le prestazioni. Problemi aggiuntivi . La libreria fornisce una suite di problemi di test aggiuntivi; scrivi un esempio di codice per ciascuno per dimostrare come funzionano. Se esplori una di queste estensioni, ci piacerebbe saperlo. Magari faccelo sapere nei commenti. Ulteriori letture Questa sezione fornisce ulteriori risorse sull'argomento se stai cercando di approfondire. Feature Engineering e Feature Selection per Principianti e non Come preparare i dati per il Machine Learning Come Analizzare Un Dataset in Solo 5 Passaggi Cosa è un Dataset e a cosa serve Dove trovare i migliori Dataset per esercitarsi Manipolazione Dati con Python e Pandas Cosa hai imparato ? In questo tutorial, hai scoperto problemi di test e come usarli in Python con scikit-learn. Nello specifico hai imparato: Come generare dataset di test di previsione di classificazione multi-classe. Come generare dataset di test di previsione della classificazione binaria. Come generare dataset di test di predizione di regressione lineare. Hai domande? Fai pure le tue domande nei commenti qui sotto e faremo del nostro meglio per rispondere.














