Risultati Ricerca Intelligenza Artificiale Italia
461 risultati trovati per "intelligenza artificiale aziendale"
- Differenza tra Batch e Epoch nel deep learning
ottimizzazione utilizzato per addestrare algoritmi di apprendimento automatico, in particolare le reti neurali artificiali Questa procedura di aggiornamento è spesso diversa da algoritmo a algoritmo, ma nel caso di reti neurali artificiali
- Come Migliorare la precisione di un modello di M.L. con il PreProcessing o pre-elaborazione dei dati
In questo post scoprirai i passaggi di pre-elaborazione dei dati che puoi utilizzare per migliorare la capacità predittiva dei tuoi modelli. Cosa è la pre-elaborazione dei dati? È necessario pre-elaborare i dati grezzi prima di modellare il problema. La preparazione specifica può dipendere dai dati che hai a disposizione e dagli algoritmi di machine learning che desideri utilizzare. A volte, la pre-elaborazione dei dati può portare a miglioramenti imprevisti nell'accuratezza del modello. Ciò può essere dovuto al fatto che una relazione nei dati è stata semplificata o non oscurata. La preparazione dei dati è un passaggio importante e dovresti sperimentare i passaggi di pre-elaborazione dei dati appropriati per i tuoi dati per vedere se puoi ottenere l'incremento desiderabile nella precisione del modello. Esistono tre tipi di pre-elaborazione che puoi considerare per i tuoi dati: Aggiungi attributi ai tuoi dati Rimuovi gli attributi dai tuoi dati Trasforma gli attributi nei tuoi dati Analizzeremo ciascuno di questi tre tipi di pre-processo ed esamineremo alcuni esempi specifici di operazioni che è possibile eseguire. Come Migliorare la precisione di un modello di M.L. : 1) Aggiungere attributi di dati I modelli avanzati possono estrarre le relazioni da attributi complessi, sebbene alcuni modelli richiedano che tali relazioni siano esplicitate in modo chiaro. La derivazione di nuovi attributi dai dati di addestramento da includere nel processo di modellazione può darti un impulso nelle prestazioni del modello. Attributi fittizi : gli attributi categoriali possono essere convertiti in n attributi binari, dove n è il numero di categorie (o livelli) dell'attributo. Questi attributi denormalizzati o scomposti sono noti come attributi fittizi o variabili fittizie. Attributo trasformato : una variazione trasformata di un attributo può essere aggiunta al set di dati per consentire a un metodo lineare di sfruttare le possibili relazioni lineari e non lineari tra gli attributi. È possibile utilizzare trasformazioni semplici come log, quadrato e radice quadrata. Dati mancanti : gli attributi con dati mancanti possono avere i dati mancanti imputati utilizzando un metodo affidabile, ad esempio k-neiest neighbors. 2) Rimuovere gli attributi dei dati Alcuni metodi funzionano male con attributi ridondanti o duplicati. Puoi aumentare la precisione del modello rimuovendo gli attributi dai tuoi dati. Proiezione : i dati di addestramento possono essere proiettati in spazi dimensionali inferiori, ma caratterizzano comunque le relazioni intrinseche nei dati. Un approccio popolare è l'analisi dei componenti principali (PCA) in cui i componenti principali trovati dal metodo possono essere presi come un insieme ridotto di attributi di input. Segno spaziale : una proiezione del segno spaziale dei dati trasformerà i dati sulla superficie di una sfera multidimensionale. I risultati possono essere utilizzati per evidenziare l'esistenza di valori anomali che possono essere modificati o rimossi dai dati. Attributi correlati : alcuni algoritmi degradano di importanza con l'esistenza di attributi altamente correlati. È possibile identificare attributi a coppie con alta correlazione e rimuovere dai dati gli attributi più correlati. 3) Trasformare gli attributi dei dati Le trasformazioni dei dati di addestramento possono ridurre l'asimmetria dei dati e l'importanza dei valori anomali nei dati. Molti modelli prevedono che i dati vengano trasformati prima di poter applicare l'algoritmo. Centratura : trasforma i dati in modo che abbiano una media di zero e una deviazione standard di uno. Questo è in genere chiamato standardizzazione dei dati. Ridimensionamento : una trasformazione di ridimensionamento standard consiste nel mappare i dati dalla scala originale a una scala compresa tra zero e uno. Questo è in genere chiamato normalizzazione dei dati. Rimuovi outliers : i dati distorti sono dati che hanno una distribuzione che viene spostata da una parte o dall'altra (valori maggiori o minori) anziché essere normalmente distribuiti. Alcuni metodi presuppongono dati normalmente distribuiti e possono funzionare meglio se viene rimossa l'inclinazione. Prova a sostituire l'attributo con il log, la radice quadrata o l'inverso dei valori. Box-Cox : è possibile utilizzare una trasformata o una famiglia di trasformazioni Box-Cox per regolare in modo affidabile i dati per rimuovere l'inclinazione. Binning : i dati numerici possono essere resi discreti raggruppando i valori in bin. Questo è in genere chiamato discretizzazione dei dati. Questo processo può essere eseguito manualmente, sebbene sia più affidabile se eseguito in modo sistematico e automatico utilizzando un'euristica che abbia senso nel dominio. Letture consigliate per mettere in pratica ciò che hai letto : Manipolazione Dati con Python e Pandas Come preparare i dati per il Machine Learning o apprendimento automatico Una Guida Semplice e Completa per passare da Excel a Python Feature Engineering e Feature Selection per Principianti e non Introduzione a Scikit Learn con esempio pratico in Python Analisi esplorativa dati con Python Come rimuovere e gestire i valori anomali con python nel machine learning Trucchi Python per la data science Conclusione sul Come Migliorare la precisione di un modello di M.L. Il pre-processing dei dati è un passaggio importante che può essere richiesto per preparare i dati grezzi per la modellazione, per soddisfare le aspettative dei dati per algoritmi di apprendimento automatico specifici e può fornire miglioramenti imprevisti nell'accuratezza del modello. In questo post abbiamo scoperto tre gruppi di metodi di pre-elaborazione dei dati: Aggiunta di attributi Rimozione degli attributi Attributi di trasformazione La prossima volta che cercherai un aumento della precisione del modello, considera quali nuove prospettive puoi progettare sui tuoi dati affinché i tuoi modelli possano esplorare e sfruttare.
- Che cosa è il ROS (Robot Operating System) e quali sono le sue applicazioni + Esempio pratico
Aziende di robotica come ABB, Fanuc, Universal Robots, Robotiq, Omron, Staubli e Fanuc dispongono di grafo: Con la versione ROS – Industrial e ROS2 quindi si espande sempre di più il bacino d’utenza delle aziende ROS quindi è un ambiente operativo dove gli algoritmi dell’intelligenza artificiale trovano molteplici
- LA CONCENTRAZIONE
Arrivati a questo punto abbiamo tutti i mezzi per andare a parlare di INTELLIGENZA nel prossimo Articolo
- Deep learnign e python : Object Recognition e Object Predict esempio pratico in 13 righe di codice
Introduzione Il rilevamento di oggetti è una tecnologia che rientra nel dominio più ampio della visione artificiale sviluppatori di creare applicazioni e sistemi con capacità di apprendimento approfondito e di visione artificiale
- Come funzionano gli algoritmi di machine learning? La spiegazione Completa
Come funzionano gli algoritmi di apprendimento automatico? Una delle classiche domande che vengono fatte ai colloqui, quindi leggi attentamente tutto l'articolo Iniziamo, Su che principio sono basati gli algoritmi di Machine Learning? Esiste un principio comune alla base di tutti gli algoritmi di apprendimento automatico supervisionati per la modellazione predittiva. In questo post scoprirai come funzionano effettivamente gli algoritmi di machine learning comprendendo il principio comune che sta alla base di tutti gli algoritmi. La Base del Machine Learning: Gli algoritmi di apprendimento automatico sono descritti come l'apprendimento di una funzione target (f) che mappa al meglio le variabili di input (X) su una variabile di output (Y). Y = f(X) Questo è un compito di apprendimento generale in cui vorremmo fare previsioni in futuro (Y) dati nuovi esempi di variabili di input (X). Non sappiamo che aspetto abbia la funzione (f) o la sua forma. Se lo facessimo, lo useremmo direttamente e non avremmo bisogno di impararlo dai dati usando algoritmi di apprendimento automatico. È più difficile di quanto pensi. C'è anche l'errore (e) che è indipendente dai dati di input (X). Y = f(X) + e Questo errore potrebbe essere un errore come non avere abbastanza attributi per caratterizzare sufficientemente la migliore mappatura da X a Y. Questo errore è chiamato errore irriducibile perché non importa quanto siamo bravi a stimare la funzione target (f), non possiamo ridurre questo errore. Vale a dire che il problema dell'apprendimento di una funzione dai dati è un problema difficile e questo è il motivo per cui esistono il campo del machine learning e degli algoritmi di machine learning. Come funzionano gli algoritmi di Machine learning ? Il tipo più comune di machine learning consiste nell'apprendere la mappatura Y=f(X) per fare previsioni di Y per il nuovo X. Questo è chiamato modellazione predittiva o analisi predittiva e il nostro obiettivo è rendere le previsioni più accurate possibili. In quanto tale, non siamo realmente interessati alla forma e alla forma della funzione (f) che stiamo imparando, solo che fa previsioni accurate. Potremmo imparare la funzione di Y=f(X) per saperne di più sulla relazione nei dati e questo è chiamato inferenza statistica. Se questo fosse l'obiettivo, useremmo metodi più semplici e apprezzeremmo la comprensione del modello appreso e della forma di (f) sopra facendo previsioni accurate. Quando apprendiamo una funzione (f) ne stimiamo la forma dai dati che abbiamo a disposizione. In quanto tale, questa stima avrà un errore. Non sarà una stima perfetta per l'ipotetica migliore mappatura sottostante da Y data X. Molto tempo nell'apprendimento automatico applicato viene dedicato al tentativo di migliorare la stima della funzione sottostante e, a termine, migliorare le prestazioni delle previsioni fatte dal modello. Tecniche per l'apprendimento di una funzione Gli algoritmi di apprendimento automatico sono tecniche per stimare la funzione target (f) per prevedere la variabile di output (Y) date le variabili di input (X). Rappresentazioni diverse fanno ipotesi diverse sulla forma della funzione appresa, ad esempio se è lineare o non lineare. Diversi algoritmi di apprendimento automatico fanno ipotesi diverse sulla forma e la struttura della funzione e sul modo migliore per ottimizzare una rappresentazione per approssimarla. Questo è il motivo per cui è così importante provare una suite di algoritmi diversi su un problema di apprendimento automatico, perché non possiamo sapere in anticipo quale approccio sarà il migliore per stimare la struttura della funzione sottostante che stiamo cercando di approssimare. Conclusione In questo post hai scoperto il principio alla base che spiega l'obiettivo di tutti gli algoritmi di apprendimento automatico per la modellazione predittiva. Hai imparato che gli algoritmi di apprendimento automatico funzionano per stimare la funzione di mappatura (f) delle variabili di output (Y) date le variabili di input (X) o Y=f(X). Hai anche appreso che diversi algoritmi di apprendimento automatico fanno ipotesi diverse sulla forma della funzione sottostante. E che quando non sappiamo molto sulla forma della funzione target, dobbiamo provare una suite di algoritmi diversi per vedere cosa funziona meglio. Hai domande su come funzionano gli algoritmi di machine learning o su questo post? Lascia un commento e fai la tua domanda e faremo del nostro meglio per rispondere.
- Web Scraping con Python la Guida Completa
I prezzi delle azioni, i dettagli dei prodotti, le statistiche sportive, i contatti dell'azienda e molto Queste aziende possono quindi vendere l'accesso a queste informazioni alle aziende di detti settori. tabella semplicemente come un modo per formattare la pagina, ma pandas potrebbe non essere abbastanza intelligente 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
- 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.
- Classificazione binaria con python e keras Deep Learning
Keras è una libreria Python per il deep learning che racchiude le efficienti librerie numeriche TensorFlow e Theano. Keras ti consente di progettare e addestrare in modo rapido e semplice reti neurali e modelli di deep learning. In questo post scoprirai come utilizzare in modo efficace la libreria Keras nel tuo progetto di machine learning lavorando passo dopo passo attraverso un progetto di classificazione binaria. Dopo aver completato questo tutorial, saprai: Come caricare i dati di allenamento e renderli disponibili a Keras Come progettare e addestrare una rete neurale per dati tabulari Come valutare le prestazioni di un modello di rete neurale in Keras su dati invisibili Come eseguire la preparazione dei dati per migliorare le capacità quando si utilizzano le reti neurali Come ottimizzare la topologia e la configurazione delle reti neurali in Keras Cosa è la classificazione binaria ? La classificazione binaria è un metodo per l'apprendimento automatico che essenzialmente prende un insieme di dati e li classifica in base a due categorie. Ad esempio, se si dispone di un set di dati costituito da valori che sono 0 o 1, potrebbe trattarsi di una classificazione binaria. Questo metodo di apprendimento automatico viene solitamente utilizzato nel deep learning. Allora, cos'è la classificazione binaria? Si tratta di un processo che accetta un insieme di dati di input e gli assegna una categoria. Le etichette sono 0 o 1, che sono le due categorie. Le uscite sono le stesse. Applicazioni della classificazione binaria La classificazione binaria è un metodo di riconoscimento dei pattern utilizzato nel deep learning. È una tecnica di apprendimento statistico che viene utilizzata per determinare se un dato input ha un'appartenenza a una classe specifica. Il metodo è un'operazione fondamentale nell'apprendimento automatico. L'algoritmo di classificazione binaria viene utilizzato in un'ampia varietà di applicazioni di apprendimento automatico in cui le classi sono note. Ad esempio Rilevamento dello spam e-mail (spam o meno). Previsione di abbandono (abbandono o meno). Previsione di conversione (acquista o meno). Classificazione binaria con python 1. Descrizione del Dataset Il set di dati che utilizzerai in questo tutorial è il set di dati Sonar . Questo è un set di dati che descrive i ritorni dei segnali acustici del sonar che rimbalzano su diversi servizi. Le 60 variabili di input sono la forza dei rendimenti a diverse angolazioni. È un problema di classificazione binaria che richiede un modello per differenziare le rocce dai cilindri metallici. Puoi saperne di più su questo set di dati nel repository UCI Machine Learning . Puoi scaricare il set di dati gratuitamente e inserirlo nella tua directory di lavoro con il nome del file sonar.csv . È un set di dati ben compreso. Tutte le variabili sono continue e generalmente nell'intervallo da 0 a 1. La variabile di output è una stringa "M" per la mia e "R" per rock, che dovrà essere convertita in numeri interi 1 e 0. Un vantaggio dell'utilizzo di questo set di dati è che si tratta di un problema di benchmark standard. Ciò significa che abbiamo un'idea delle capacità attese di un buon modello. Utilizzando la convalida incrociata, una rete neurale dovrebbe essere in grado di ottenere prestazioni di circa l'84% con un limite superiore di precisione per i modelli personalizzati di circa l'88%. Classificazione binaria con python 2. Prestazioni del modello di rete neurale di base Creiamo un modello di base e un risultato per questo problema. Inizierai importando tutte le classi e le funzioni di cui avrai bisogno. import pandas as pd from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from scikeras.wrappers import KerasClassifier from sklearn.model_selection import cross_val_score from sklearn.preprocessing import LabelEncoder from sklearn.model_selection import StratifiedKFold from sklearn.preprocessing import StandardScaler from sklearn.pipeline import Pipeline ... Ora puoi caricare il set di dati usando i panda e dividere le colonne in 60 variabili di input (X) e una variabile di output (Y). Usa i panda per caricare i dati perché gestisce facilmente le stringhe (la variabile di output), mentre tentare di caricare i dati direttamente usando NumPy sarebbe più difficile. # Carichiamo i dati dataframe = pd.read_csv("sonar.csv", header=None) dataset = dataframe.values # dividiamoli in input (X) e output (Y) X = dataset[:,0:60].astype(float) Y = dataset[:,60] La variabile di output è valori stringa. Devi convertirli in valori interi 0 e 1. Puoi farlo usando la classe LabelEncoder di scikit-learn. Questa classe modellerà la codifica richiesta utilizzando l'intero set di dati tramite la funzione fit(), quindi applicherà la codifica per creare una nuova variabile di output utilizzando la funzione transform(). # Trasformiamo le variabili categoriche encoder = LabelEncoder() encoder.fit(Y) encoded_Y = encoder.transform(Y) Ora sei pronto per creare il tuo modello di rete neurale usando Keras. Utilizzerai scikit-learn per valutare il modello utilizzando la convalida incrociata k-fold stratificata. Questa è una tecnica di ricampionamento che fornirà una stima delle prestazioni del modello. Lo fa suddividendo i dati in k-parti e addestrando il modello su tutte le parti tranne una, che viene presentata come un set di test per valutare le prestazioni del modello. Questo processo viene ripetuto k volte e il punteggio medio di tutti i modelli costruiti viene utilizzato come stima affidabile delle prestazioni. È stratificato, il che significa che esaminerà i valori di output e tenterà di bilanciare il numero di istanze che appartengono a ciascuna classe nei k-split dei dati. Per utilizzare i modelli Keras con scikit-learn, devi utilizzare il wrapper KerasClassifier dal modulo SciKeras. Questa classe accetta una funzione che crea e restituisce il nostro modello di rete neurale. Richiede anche argomenti che passerà alla chiamata a fit(), come il numero di epoche e la dimensione del batch. Iniziamo definendo la funzione che crea il tuo modello di base. Il tuo modello avrà un unico livello nascosto completamente connesso con lo stesso numero di neuroni delle variabili di input. Questo è un buon punto di partenza predefinito durante la creazione di reti neurali. I pesi vengono inizializzati utilizzando un piccolo numero casuale gaussiano. Viene utilizzata la funzione di attivazione del raddrizzatore. Il livello di output contiene un singolo neurone per fare previsioni. Utilizza la funzione di attivazione sigmoidea per produrre un output di probabilità nell'intervallo da 0 a 1 che può essere convertito facilmente e automaticamente in valori di classe nitidi. Infine, durante l'allenamento utilizzerai la funzione di perdita logaritmica (binary_crossentropy), la funzione di perdita preferita per i problemi di classificazione binaria. Il modello utilizza anche l'efficiente algoritmo di ottimizzazione Adam per la discesa del gradiente e le metriche di precisione verranno raccolte quando il modello viene addestrato. # modello base def create_baseline(): # creiamo il modello model = Sequential() model.add(Dense(60, input_shape=(60,), activation='relu')) model.add(Dense(1, activation='sigmoid')) # Compiliamo il modello model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) return model Ora è il momento di valutare questo modello utilizzando la convalida incrociata stratificata nel framework scikit-learn. Passa il numero di epoche di addestramento al KerasClassifier, usando ancora valori predefiniti ragionevoli. Anche l'output dettagliato è disattivato, dato che il modello verrà creato dieci volte per la convalida incrociata 10 volte eseguita. # valutiamolo estimator = KerasClassifier(model=create_baseline, epochs=100, batch_size=5, verbose=0) kfold = StratifiedKFold(n_splits=10, shuffle=True) results = cross_val_score(estimator, X, encoded_Y, cv=kfold) print("Baseline: %.2f%% (%.2f%%)" % (results.mean()*100, results.std()*100)) Dopo aver collegato questo insieme, l'esempio completo è elencato di seguito. from pandas import read_csv from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from scikeras.wrappers import KerasClassifier from sklearn.model_selection import cross_val_score from sklearn.preprocessing import LabelEncoder from sklearn.model_selection import StratifiedKFold dataframe = read_csv("sonar.csv", header=None) dataset = dataframe.values X = dataset[:,0:60].astype(float) Y = dataset[:,60] encoder = LabelEncoder() encoder.fit(Y) encoded_Y = encoder.transform(Y) def create_baseline(): model = Sequential() model.add(Dense(60, input_shape=(60,), activation='relu')) model.add(Dense(1, activation='sigmoid')) model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) return model estimator = KerasClassifier(model=create_baseline, epochs=100, batch_size=5, verbose=0) kfold = StratifiedKFold(n_splits=10, shuffle=True) results = cross_val_score(estimator, X, encoded_Y, cv=kfold) print("Baseline: %.2f%% (%.2f%%)" % (results.mean()*100, results.std()*100)) Nota : i risultati possono variare a causa della natura stocastica dell'algoritmo o della procedura di valutazione, o delle differenze nella precisione numerica. Considera di eseguire l'esempio alcune volte e confrontare il risultato medio. L'esecuzione di questo codice produce l'output seguente che mostra la media e la deviazione standard dell'accuratezza stimata del modello su dati invisibili. Baseline: 81.68% (7.26%) Questo è un punteggio eccellente senza fare alcun duro lavoro.ù Classificazione binaria con python 3. Eseguire nuovamente il modello di base con la preparazione dei dati È buona norma preparare i dati prima della modellazione. I modelli di rete neurale sono particolarmente adatti per avere valori di input coerenti, sia in scala che in distribuzione. La standardizzazione è un efficace schema di preparazione dei dati per i dati tabulari durante la creazione di modelli di reti neurali. È qui che i dati vengono ridimensionati in modo tale che il valore medio per ciascun attributo sia 0 e la deviazione standard sia 1. Ciò preserva le distribuzioni gaussiane e di tipo gaussiano mentre normalizza le tendenze centrali per ciascun attributo. Puoi usare scikit-learn per eseguire la standardizzazione del tuo set di dati sonar usando la classe StandardScaler . Anziché eseguire la standardizzazione sull'intero set di dati, è buona norma addestrare la procedura di standardizzazione sui dati di addestramento durante il passaggio di un'esecuzione di convalida incrociata e utilizzare la standardizzazione addestrata per preparare la piega di prova "non vista". Ciò rende la standardizzazione un passaggio nella preparazione del modello nel processo di convalida incrociata. Impedisce all'algoritmo di avere conoscenza dei dati "invisibili" durante la valutazione, conoscenza che potrebbe essere trasmessa dallo schema di preparazione dei dati come una distribuzione più nitida. Puoi ottenerlo in scikit-learn usando un Pipeline . La pipeline è un wrapper che esegue uno o più modelli all'interno di un passaggio della procedura di convalida incrociata. Qui puoi definire una pipeline con StandardScaler seguito dal tuo modello di rete neurale. # valutiamo il modello su un dataset standardizzato estimators = [] estimators.append(('standardize', StandardScaler())) estimators.append(('mlp', KerasClassifier(model=create_baseline, epochs=100, batch_size=5, verbose=0))) pipeline = Pipeline(estimators) kfold = StratifiedKFold(n_splits=10, shuffle=True) results = cross_val_score(pipeline, X, encoded_Y, cv=kfold) print("Standardized: %.2f%% (%.2f%%)" % (results.mean()*100, results.std()*100)) Dopo aver collegato questo insieme, l'esempio completo è elencato di seguito. # Binary Classification con Standardized from pandas import read_csv from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from scikeras.wrappers import KerasClassifier from sklearn.model_selection import cross_val_score from sklearn.preprocessing import LabelEncoder from sklearn.model_selection import StratifiedKFold from sklearn.preprocessing import StandardScaler from sklearn.pipeline import Pipeline # dataset dataframe = read_csv("sonar.csv", header=None) dataset = dataframe.values # input (X) e output (Y) X = dataset[:,0:60].astype(float) Y = dataset[:,60] # encode encoder = LabelEncoder() encoder.fit(Y) encoded_Y = encoder.transform(Y) # baseline model def create_baseline(): # creazione modello model = Sequential() model.add(Dense(60, input_shape=(60,), activation='relu')) model.add(Dense(1, activation='sigmoid')) # compilazione model model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) return model # valutazione modello con standardized dataset estimators = [] estimators.append(('standardize', StandardScaler())) estimators.append(('mlp', KerasClassifier(model=create_baseline, epochs=100, batch_size=5, verbose=0))) pipeline = Pipeline(estimators) kfold = StratifiedKFold(n_splits=10, shuffle=True) results = cross_val_score(pipeline, X, encoded_Y, cv=kfold) print("Standardized: %.2f%% (%.2f%%)" % (results.mean()*100, results.std()*100)) L'esecuzione di questo esempio fornisce i risultati seguenti. Nota : i risultati possono variare a causa della natura stocastica dell'algoritmo o della procedura di valutazione, o delle differenze nella precisione numerica. Considera di eseguire l'esempio alcune volte e confrontare il risultato medio. Ora vedi un piccolo ma molto bello aumento della precisione media. Standardized: 84.56% (5.74%) Classificazione binaria con python 4. Ottimizzazione dei livelli e del numero di neuroni nel modello Ci sono molte cose da mettere a punto su una rete neurale, come l'inizializzazione del peso, le funzioni di attivazione, la procedura di ottimizzazione e così via. Un aspetto che potrebbe avere un effetto fuori misura è la struttura della rete stessa, chiamata topologia di rete. In questa sezione, esaminerai due esperimenti sulla struttura della rete: rimpicciolirla e ingrandirla. Questi sono buoni esperimenti da eseguire quando si sintonizza una rete neurale sul proprio problema. 4.1. Valuta una rete più piccola Si noti che è probabile che vi sia molta ridondanza nelle variabili di input per questo problema. I dati descrivono lo stesso segnale da diverse angolazioni. Forse alcuni di questi angoli sono più rilevanti di altri. Quindi puoi forzare un tipo di estrazione di funzionalità dalla rete limitando lo spazio di rappresentazione nel primo livello nascosto. In questo esperimento, prenderai il tuo modello di base con 60 neuroni nello strato nascosto e lo ridurrai della metà a 30. Ciò farà pressione sulla rete durante l'allenamento per selezionare la struttura più importante nei dati di input da modellare. Standardizzerai anche i dati come nell'esperimento precedente con la preparazione dei dati e cercherai di sfruttare il leggero aumento delle prestazioni. # modello più piccolo def create_smaller(): # creazione modello model = Sequential() model.add(Dense(30, input_shape=(60,), activation='relu')) model.add(Dense(1, activation='sigmoid')) # compilazione modello model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) return model estimators = [] estimators.append(('standardize', StandardScaler())) estimators.append(('mlp', KerasClassifier(model=create_smaller, epochs=100, batch_size=5, verbose=0))) pipeline = Pipeline(estimators) kfold = StratifiedKFold(n_splits=10, shuffle=True) results = cross_val_score(pipeline, X, encoded_Y, cv=kfold) print("Smaller: %.2f%% (%.2f%%)" % (results.mean()*100, results.std()*100)) Dopo aver collegato questo insieme, l'esempio completo è elencato di seguito. # Binary Classification con Standardized Smaller from pandas import read_csv from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from scikeras.wrappers import KerasClassifier from sklearn.model_selection import cross_val_score from sklearn.preprocessing import LabelEncoder from sklearn.model_selection import StratifiedKFold from sklearn.preprocessing import StandardScaler from sklearn.pipeline import Pipeline # dataset dataframe = read_csv("sonar.csv", header=None) dataset = dataframe.values #input (X) e output (Y) X = dataset[:,0:60].astype(float) Y = dataset[:,60] # encode encoder = LabelEncoder() encoder.fit(Y) encoded_Y = encoder.transform(Y) # modello più piccolo def create_smaller(): # creiamo modello model = Sequential() model.add(Dense(30, input_shape=(60,), activation='relu')) model.add(Dense(1, activation='sigmoid')) # compiliamo modello model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) return model estimators = [] estimators.append(('standardize', StandardScaler())) estimators.append(('mlp', KerasClassifier(model=create_smaller, epochs=100, batch_size=5, verbose=0))) pipeline = Pipeline(estimators) kfold = StratifiedKFold(n_splits=10, shuffle=True) results = cross_val_score(pipeline, X, encoded_Y, cv=kfold) print("Smaller: %.2f%% (%.2f%%)" % (results.mean()*100, results.std()*100)) L'esecuzione di questo esempio fornisce il seguente risultato. Puoi vedere che hai un leggero aumento dell'accuratezza media stimata e un'importante riduzione della deviazione standard (spread medio) dei punteggi di accuratezza per il modello. Nota : i risultati possono variare a causa della natura stocastica dell'algoritmo o della procedura di valutazione, o delle differenze nella precisione numerica. Considera di eseguire l'esempio alcune volte e confrontare il risultato medio. Questo è un ottimo risultato perché stai andando leggermente meglio con una rete grande la metà, che, a sua volta, richiede metà del tempo per allenarti. Smaller: 86.04% (4.00%) 4.2. Valuta una rete più ampia Una topologia di rete neurale con più livelli offre maggiori opportunità alla rete di estrarre funzionalità chiave e ricombinarle in utili modi non lineari. Puoi facilmente valutare se l'aggiunta di più livelli alla rete migliora le prestazioni apportando un'altra piccola modifica alla funzione utilizzata per creare il nostro modello. Qui aggiungi un nuovo livello (una linea) alla rete che introduce un altro livello nascosto con 30 neuroni dopo il primo livello nascosto. La tua rete ora ha la topologia: 60 inputs -> [60 -> 30] -> 1 output L'idea qui è che alla rete viene data l'opportunità di modellare tutte le variabili di input prima di essere bloccata e costretta a dimezzare la capacità di rappresentazione, proprio come hai fatto nell'esperimento sopra con la rete più piccola. Invece di comprimere la rappresentazione degli input stessi, hai un livello nascosto aggiuntivo per aiutare nel processo. # modello più grande def create_larger(): # creiamo il modello model = Sequential() model.add(Dense(60, input_shape=(60,), activation='relu')) model.add(Dense(30, activation='relu')) model.add(Dense(1, activation='sigmoid')) # compiliamo il model model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) return model estimators = [] estimators.append(('standardize', StandardScaler())) estimators.append(('mlp', KerasClassifier(model=create_larger, epochs=100, batch_size=5, verbose=0))) pipeline = Pipeline(estimators) kfold = StratifiedKFold(n_splits=10, shuffle=True) results = cross_val_score(pipeline, X, encoded_Y, cv=kfold) print("Larger: %.2f%% (%.2f%%)" % (results.mean()*100, results.std()*100)) Dopo aver collegato questo insieme, l'esempio completo è elencato di seguito. # Binary Classification con Standardized Larger from pandas import read_csv from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense from scikeras.wrappers import KerasClassifier from sklearn.model_selection import cross_val_score from sklearn.preprocessing import LabelEncoder from sklearn.model_selection import StratifiedKFold from sklearn.preprocessing import StandardScaler from sklearn.pipeline import Pipeline # dataset dataframe = read_csv("sonar.csv", header=None) dataset = dataframe.values # input (X) e output (Y) X = dataset[:,0:60].astype(float) Y = dataset[:,60] # encode encoder = LabelEncoder() encoder.fit(Y) encoded_Y = encoder.transform(Y) # modello più grande def create_larger(): # crezione modello model = Sequential() model.add(Dense(60, input_shape=(60,), activation='relu')) model.add(Dense(30, activation='relu')) model.add(Dense(1, activation='sigmoid')) # compilazione modello model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy']) return model estimators = [] estimators.append(('standardize', StandardScaler())) estimators.append(('mlp', KerasClassifier(model=create_larger, epochs=100, batch_size=5, verbose=0))) pipeline = Pipeline(estimators) kfold = StratifiedKFold(n_splits=10, shuffle=True) results = cross_val_score(pipeline, X, encoded_Y, cv=kfold) print("Larger: %.2f%% (%.2f%%)" % (results.mean()*100, results.std()*100)) L'esecuzione di questo esempio produce i risultati seguenti. Nota : i risultati possono variare a causa della natura stocastica dell'algoritmo o della procedura di valutazione, o delle differenze nella precisione numerica. Considera di eseguire l'esempio alcune volte e confrontare il risultato medio. Puoi vedere che non ottieni un aumento delle prestazioni del modello. Questo potrebbe essere un rumore statistico o un segno che è necessaria ulteriore formazione. Larger: 83.14% (4.52%) Con un'ulteriore messa a punto di aspetti come l'algoritmo di ottimizzazione e il numero di epoche di addestramento, si prevede che siano possibili ulteriori miglioramenti. Qual è il miglior punteggio che puoi ottenere su questo set di dati? Riepilogo In questo post, hai scoperto la libreria Keras deep Learning in Python. Hai imparato passo dopo passo come risolvere un problema di classificazione binaria con Keras, in particolare: Come caricare e preparare i dati per l'uso in Keras Come creare un modello di rete neurale di base Come valutare un modello Keras utilizzando scikit-learn e la convalida incrociata k-fold stratificata In che modo gli schemi di preparazione dei dati possono migliorare le prestazioni dei tuoi modelli In che modo gli esperimenti che regolano la topologia di rete possono migliorare le prestazioni del modello
- Cos’è Google BERT dalla spiegazione al codice Python
Le aziende e le organizzazioni utilizzano l'analisi del sentiment per analizzare i propri prodotti o e il miglioramento dei modelli linguistici degli ultimi anni hanno fatto sì che il management delle aziende 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
- Tipi di architetture di rete neurale nel deep learning
architetture di rete neurale si riferiscono ai progetti strutturali e organizzativi delle reti neurali artificiali
- Esempio pratico di Deep Learning con Python : Previsione del prezzo delle azioni
Lunga memoria a breve termine (LSTM) è una rete neurale artificiale ricorrente (RNN) utilizzato nel campo cosa scriverò una descrizione del programma. # Descrizione: questo programma utilizza una rete neurale artificiale
- Esempio pratico di Machine Learning con Python : Stimare / Prevedere il prezzo degli appartamenti
progetti sono il modo migliore per approfondire la conoscenza della scienza dei dati e delle applicazioni dell'intelligenza artificiale.
- Migliori NoCode Builder per Creare App con l'IA senza Programmare
App aziendale? occuparsi dello sviluppo mentre voi vi concentrate sul design del prodotto, sul marketing o sulla crescita aziendale Questo rende Backendless una scelta eccellente per le aziende che necessitano di una solida infrastruttura
- Comandi Git per data scientist
Scopri i comandi Git essenziali per il controllo delle versioni e la collaborazione a progetti di data science. Storicamente, la maggior parte dei data scientist non è a conoscenza delle pratiche e degli strumenti di sviluppo software come i sistemi di controllo delle versioni. Ma questo sta cambiando, i progetti di scienza dei dati stanno adottando le migliori pratiche dell'ingegneria del software e Git è diventato uno strumento essenziale per il controllo delle versioni di file e dati. I moderni data team lo usano per collaborare a progetti di codebase e risolvere i conflitti più velocemente. Che cos'è il controllo della versione? Il software di controllo della versione ti consente di salvare il tuo lavoro mentre procedi, così puoi tornare indietro nel tempo e riprendere da dove eri rimasto. Il software di controllo della versione più comunemente usato è Git. Cos'è Git? Git è un versatile sistema di controllo della versione utilizzato nello sviluppo di software. Viene utilizzato per gestire e tenere traccia delle modifiche a file e attività. Git è un successore del sistema di controllo del codice sorgente (SCCS) degli sviluppatori. Git utilizza un sistema di controllo della versione distribuito che consente a più sviluppatori di lavorare sullo stesso progetto contemporaneamente. È un buon strumento da usare insieme ad altri sistemi di controllo della versione come Subversion. Cos'è un Comando Git ? Git è un popolare sistema di controllo delle versioni che aiuta a gestire le modifiche ai documenti in un ambiente di lavoro collaborativo. Se non conosci il controllo della versione, ti starai chiedendo come usarlo. Se sei già un data scientist e non sai come usare Git, ti starai chiedendo come può aiutare il tuo flusso di lavoro. Ad ogni modo, troverai utile questo elenco di comandi Git. In questo post, impareremo 14 comandi Git essenziali che ti aiuteranno a inizializzare un progetto, creare e unire rami, seguire la versione dei file, sincronizzarlo con un server remoto e monitorare le modifiche. Nota: assicurati di aver installato correttamente Git dal sito ufficiale . Comandi Git per data scientist 1. Inizializzazione Puoi inizializzare il sistema di controllo della versione Git nella directory corrente digitando: git init Oppure puoi inizializzare Git in una directory specifica. git init Comandi Git per data scientist 2. Clona Il comando clone copierà tutti i file di progetto da un server remoto alla macchina locale. Aggiungerà anche un nome remoto come `origine` per sincronizzare i file con il server remoto. Git clone richiede un collegamento HTTPS e un collegamento SSH per la connessione sicura. git clone Comandi Git per data scientist 3. Remote È possibile connettersi a uno o più server remoti aggiungendo il nome del remoto e l'indirizzo HTTPS/SSH. git remote add Nota: la clonazione di un repository da GitHub o qualsiasi server remoto aggiunge automaticamente remote come `origine`. Comandi Git per data scientist 4. Crea Ramo I rami sono il modo migliore per lavorare su una nuova funzionalità o eseguire il debug del codice. Ti permette di lavorare in isolamento senza disturbare il ramo `main`. Crea un nuovo ramo usando il comando checkout con il tag `-b` e il nome del ramo. git checkout -b Oppure usa switch con il tag `-c` e il nome del ramo git switch -c O semplicemente usa il comando branch git branch Comandi Git per data scientist 5. Cambiare ramo Per passare da un ramo corrente a un altro ramo, è possibile utilizzare il comando checkout o switch seguito dal nome del ramo. git checkout git switch Comandi Git per data scientist 6. Pull Per sincronizzare le modifiche con un server remoto, è necessario prima eseguire il pull delle modifiche dal repository remoto al repository locale utilizzando il comando pull . Ciò è necessario quando vengono apportate modifiche in un repository remoto. git pull Puoi aggiungere un nome remoto seguito da un nome di ramo per estrarre un singolo ramo. git pull Per impostazione predefinita, il comando pull recupera le modifiche e le unisce al ramo corrente. Per rebase, invece di unire, puoi aggiungere il flag `--rebase` prima del nome e del ramo remoti. git pull --rebase origin master Comandi Git per data scientist 7. Aggiungi Usa il comando aggiungi per aggiungere file nell'area di gestione temporanea. Richiede il nome del file o l'elenco dei nomi dei file. git add Puoi anche aggiungere tutti i file usando il flag `.` o `-A`. git add . Comandi Git per data scientist 8. Commit Dopo aver aggiunto i file all'area di staging, puoi creare una versione utilizzando il comando commit . Il comando commit richiede il titolo del commit usando il flag `-m`. Se hai apportato più modifiche e vuoi elencarle tutte, aggiungile alla descrizione usando un altro flag `-m`. git commit -m "Titolo" -m "Descrizione" Nota: assicurati di aver configurato il nome utente e l'e -mail prima di confermare le modifiche. git config --global user.name git config --global user.email Comandi Git per data scientist 9. Push Per sincronizzare le modifiche locali su server remoti utilizzando il comando push . Puoi semplicemente digitare `git push` per inviare le modifiche al repository remoto. Per eseguire il push delle modifiche su uno specifico server remoto e succursale, utilizzare il comando seguente. git push Comandi Git per data scientist 10. Annulla commit Git revert annulla le modifiche a un commit specifico e lo aggiunge come nuovo commit, mantenendo intatto il registro. Per ripristinare, devi fornire un hash di un commit specifico. git revert Puoi anche annullare le modifiche usando il comando reset . Reimposta le modifiche su un commit specifico, scartando tutti i commit effettuati dopo. git reset Nota: l'utilizzo del comando reset è sconsigliato in quanto modifica la cronologia del registro git Comandi Git per data scientist 11. Unione Il comando di unione unirà semplicemente le modifiche del ramo specifico nel ramo corrente. Il comando richiede un nome di ramo. git merge Questo comando è molto utile quando si lavora con più rami e si desidera unire le modifiche al ramo principale. Comandi Git per data scientist 12. Registro Per controllare la cronologia completa dei commit precedenti, puoi utilizzare il comando log. Per mostrare i log più recenti, puoi aggiungere `-` seguito dal numero e ti mostrerà un numero limitato di cronologia dei commit recenti. Ad esempio, limita i log a 5: git log -5 Puoi anche controllare i commit effettuati da autori specifici. git log --author=”” Nota: git log ha più flag per filtrare tipi specifici di commit. Consulta la documentazione completa . Comandi Git per data scientist 13. Differenza L'uso del comando diff visualizzerà il confronto tra le modifiche non salvate con il commit corrente. git diff Per confrontare due diversi commit, utilizzare: git diff E per confrontare due rami, usa: git diff Comandi Git per data scientist 14. Stato Lo stato del comando mostra lo stato corrente della directory di lavoro. Include informazioni sulle modifiche di cui eseguire il commit, i percorsi non uniti, le modifiche non organizzate per il commit e l'elenco dei file non tracciati. git status Conclusione sui miliori comandi Git per data scientist Speriamo che il nostro articolo sui comandi Git essenziali per i data scientist ti sia piaciuto. L'apprendimento di queste competenze vitali farà un'enorme differenza nel tuo lavoro e nella tua carriera come professionista della scienza dei dati. Naturalmente, sappiamo che non tutti i data scientist hanno il tempo o la voglia di imparare questi comandi, quindi abbiamo fornito una serie di tutorial facili da seguire che forniscono una pratica pratica nell'uso di Git. Grazie per aver letto, siamo sempre entusiasti quando uno dei nostri post è in grado di fornire informazioni utili per i professionisti della scienza dei dati.














