Python e Machine Learning
Python e Machine Learning
intelligenzaartificialeitalia.net/post/b4ba9442-e80b-4ff0-a8e0-
48d08418e344/preview/4jWJM1hcCzIixlbocoRiQ3181qtIZMLO5EailgcaliQ.eyJpbnN0YW5jZUlkIjoiYjAzOWJiNjEtMmFjN
y00MTNmLTgzNWQtMDA2ZWVhZTNjYWYzIiwiYXBwRGVmSWQiOiIxNGJjZGVkNy0wMDY2LTdjMzUtMTRkNy00NjZj
YjNmMDkxMDMiLCJtZXRhU2l0ZUlkIjoiMjdlMTk2ZDUtNmQzZi00Yjc4LThmNmYtZGU4YTQyMzE3ODdhIiwic2lnbkRhd
GUiOiIyMDIyLTA1LTMwVDA2OjU4OjAxLjg4N1oiLCJ1aWQiOiIzYzAyOWY1My1kNWNiLTQ0MDctYTI4Ny1lOTBjNDg5Z
TgxZTIiLCJwZXJtaXNzaW9ucyI6Ik9XTkVSIiwiZGVtb01vZGUiOmZhbHNlLCJvcmlnaW5JbnN0YW5jZUlkIjoiNDhmMGU
zOGItOTM5ZS00NDhjLWFjZDgtZTI3NDliZjc5ZTkxIiwiYmlUb2tlbiI6Ijk3ZDgyZGI0LTQ3ZjgtMGE0Ny0wYzMyLWRlZTRh
OGQyYjI4OSIsInNpdGVPd25lcklkIjoiM2MwMjlmNTMtZDVjYi00NDA3LWEyODctZTkwYzQ4OWU4MWUyIiwic2l0ZU1lb
WJlcklkIjoiM2MwMjlmNTMtZDVjYi00NDA3LWEyODctZTkwYzQ4OWU4MWUyIiwiZXhwaXJhdGlvbkRhdGUiOiIyMDIyLT
A1LTMwVDEwOjU4OjAxLjg4N1oiLCJsb2dpbkFjY291bnRJZCI6IjNjMDI5ZjUzLWQ1Y2ItNDQwNy1hMjg3LWU5MGM0O
DllODFlMiJ9
Python è una delle piattaforme in più rapida crescita per l'apprendimento automatico
applicato. In questo mini-corso scoprirai come iniziare, creare modelli accurati e
completare con sicurezza progetti di machine learning di modellazione predittiva
utilizzando Python.
L'elenco seguente fornisce alcune linee guida generali su chi è stato progettato questo
corso gratuito su python e il Machine learning.
Non farti prendere dal panico se non rientri esattamente a questi punti, potresti
semplicemente aver bisogno di rispolverare un'area per seguire senza problemi i tutorial.
Sviluppatori che sanno scrivere un po' di codice . Ciò significa che non è un
grosso problema per te prendere un nuovo linguaggio di programmazione come
Python una volta che conosci la sintassi di base. Non significa che sei un
programmatore mago, solo che puoi seguire un linguaggio di base simile al C
con poco sforzo.
1/34
Sviluppatori che conoscono un po' di machine learning . Ciò significa che
conosci le basi dell'apprendimento automatico come la convalida incrociata, alcuni
algoritmi e il compromesso tra bias e varianza . Non significa devi avere 2 lauree, 3
master e 7 dottorati, ma solo che conosci i punti di riferimento o sai dove cosa
cercare se non ti è chiarissimo.
Ti porterà da uno sviluppatore che conosce un po' di machine learning a uno sviluppatore
che può ottenere risultati utilizzando l'ecosistema Python, la piattaforma emergente per
l'apprendimento automatico professionale. Semplicemente seguendo questo corso gratis
su Python e Machine Learning
Dipende molto dal tempo che hai a disposizione e dal tuo livello di entusiasmo.
2/34
Lezione 7 : Valutazione dell'algoritmo con metodi di ricampionamento.
Abbiamo inviato questo articolo in anteprima ai nostri utenti più attivi, e loro hanno
consigliato di prendersi un oretta per lezione sopratutto per quelle dopo la 3/4 lezione
Prenditi il tuo tempo e completa le lezioni al tuo ritmo. Poni domande e pubblica persino
risultati nei commenti qui sotto.
Le lezioni si aspettano che tu esca e scopra come fare le cose. Ti daremo dei suggerimenti,
ma parte del punto di ogni lezione è costringerti a imparare dove andare per cercare aiuto
su e sulla piattaforma Python.
3/34
Lezione 1 corso gratis Python e Machine Learning:
Non puoi iniziare con l'apprendimento automatico in Python finché non hai accesso alla
piattaforma.
La lezione di oggi è facile, devi scaricare e installare la piattaforma Python 3.6 sul tuo
computer.
Visita la homepage di Python e scarica Python per il tuo sistema operativo (Linux, OS X o
Windows). Installa Python sul tuo computer. Potrebbe essere necessario utilizzare un
gestore di pacchetti specifico della piattaforma come macports su OS X o yum su RedHat
Linux.
Puoi installare tutto in una volta (molto più semplice) con Anaconda . Consigliato per i
principianti.
Avvia Python per la prima volta digitando "python" nella riga di comando.
Controlla le versioni di tutto ciò di cui avrai bisogno usando il codice qui sotto:
4/34
# Python version
import sys
print('Python: {}'.format(sys.version))
# scipy
import scipy
print('scipy: {}'.format(scipy.__version__))
# numpy
import numpy
print('numpy: {}'.format(numpy.__version__))
# matplotlib
import matplotlib
print('matplotlib: {}'.format(matplotlib.__version__))
# pandas
import pandas
print('pandas: {}'.format(pandas.__version__))
# scikit-learn
import sklearn
print('sklearn: {}'.format(sklearn.__version__))
Se sei proprio alle prime armi e stai trovando troppa difficoltà nell'installare
Python e le relative librerie ti mettiamo a disposizione un NOSTRO AMBIENTE
VIRTUALE, con Python e le librerie già installate che ti permetteranno di Programmare
Python direttamente dal BROWSER.
Una volta aperto, potrai tranquillamente copiare e incollare il codice, e premere sul
bottoncino verde, oppure premendo SHIFT-INVIO contemporaneamente.
5/34
Letture consigliate per approfondire la LEZIONE 1
6/34
Devi essere in grado di leggere e scrivere script Python di base.
Esercitati con l'assegnazione, il lavoro con le liste e il controllo del flusso in Python.
# dataframe
import numpy
import pandas
myarray = numpy.array([[1, 2, 3], [4, 5, 6]])
rownames = ['a', 'b']
colnames = ['one', 'two', 'three']
mydataframe = pandas.DataFrame(myarray, index=rownames, columns=colnames)
print(mydataframe)
Se sei proprio alle prime armi e stai trovando troppa difficoltà nell'installare
Python e le relative librerie ti mettiamo a disposizione un NOSTRO AMBIENTE
VIRTUALE, con Python e le librerie già installate che ti permetteranno di Programmare
Python direttamente dal BROWSER.
7/34
Letture consigliate per approfondire la LEZIONE 2
Ci sono molti eccellenti set di dati standard di apprendimento automatico in formato CSV
che puoi scaricare ed esercitarti nel nostro repository di DATASET
8/34
Per iniziare, di seguito è riportato uno snippet che caricherà il set di dati sull'inizio del
diabete utilizzando Panda direttamente dall'UCI Machine Learning Repository.
import pandas
url = "diabetes.data.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = pandas.read_csv(url, names=names)
print(data.shape)
Se sei proprio alle prime armi e stai trovando troppa difficoltà nell'installare
Python e le relative librerie ti mettiamo a disposizione un NOSTRO AMBIENTE
VIRTUALE, con Python e le librerie già installate che ti permetteranno di Programmare
Python direttamente dal BROWSER.
Se usi il nostro edito ONLINE, troverai le istruzioni per leggere file CSV dal tuo computer.
Complimenti per essere arrivato fin qui! Tieni duro. Se hai fatto tutte e tre le prime lezioni
di fila torna domani non mettere troppa carne al fuoco.
9/34
Lezione 4 corso gratis Python e Machine Learning:
Dopo aver caricato i tuoi dati in Python, devi essere in grado di capirli.
Meglio puoi comprendere i tuoi dati, migliori e più accurati saranno i modelli che puoi
costruire. Il primo passo per comprendere i tuoi dati è utilizzare le statistiche descrittive.
Oggi la tua lezione è imparare a utilizzare le statistiche descrittive per comprendere i tuoi
dati. Consiglio di utilizzare le funzioni di supporto fornite su Pandas
DataFrame.
Comprendi i tuoi dati usando la funzione head() per guardare le prime righe.
L'esempio seguente carica il set di dati sull'inizio del diabete e riassume la distribuzione di
ciascun attributo.
import pandas
url = "diabetes.data.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = pandas.read_csv(url, names=names)
description = data.describe()
print(description)
10/34
Se sei proprio alle prime armi e stai trovando troppa difficoltà nell'installare
Python e le relative librerie ti mettiamo a disposizione un NOSTRO AMBIENTE
VIRTUALE, con Python e le librerie già installate che ti permetteranno di Programmare
Python direttamente dal BROWSER.
Continuando dalla lezione di ieri, devi dedicare del tempo a comprendere meglio i tuoi
dati.
Un secondo modo per migliorare la comprensione dei dati consiste nell'utilizzare tecniche
di visualizzazione dei dati (ad es. il tracciamento).
11/34
Oggi, la tua lezione consiste nell'imparare come utilizzare la stampa in Python per
comprendere gli attributi da soli e le loro interazioni. Ancora una volta, consiglio di
utilizzare le funzioni di supporto fornite su Pandas DataFrame.
Ad esempio, il frammento di codice seguente caricherà il set di dati del diabete e creerà
una matrice del grafico a dispersione del set di dati.
12/34
Naturalmente senza delle basi Statistico/matematiche per te sarà difficile capire questi
grafici o individuare degli Insights.
13/34
Lezione 6 corso gratis Python e Machine Learning:
I tuoi dati grezzi potrebbero non essere configurati per essere nella forma migliore per la
modellazione.
A volte è necessario preelaborare i dati per presentare al meglio la struttura intrinseca del
problema nei dati agli algoritmi di modellazione. Nella lezione di oggi utilizzerai le
capacità di pre-elaborazione fornite da scikit-learn.
La libreria scikit-learn fornisce due idiomi standard per la trasformazione dei dati.
Ciascuna trasformazione è utile in circostanze diverse: Adatta e Trasformazione multipla
e Adatta e trasforma combinata.
Esistono molte tecniche che è possibile utilizzare per preparare i dati per la modellazione.
Ad esempio, prova alcuni dei seguenti
Ad esempio, lo snippet seguente carica il set di dati sull'inizio del diabete , calcola i
parametri necessari per standardizzare i dati, quindi crea una copia standardizzata dei
dati di input.
14/34
from sklearn.preprocessing import StandardScaler
import pandas
import numpy
url = "diabetes.data.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = pandas.read_csv(url, names=names)
array = dataframe.values
# separiamo il target
X = array[:,0:8]
Y = array[:,8]
scaler = StandardScaler().fit(X)
rescaledX = scaler.transform(X)
# trasformiamo i dati
numpy.set_printoptions(precision=3)
print(rescaledX[0:5,:])
Se sei proprio alle prime armi e stai trovando troppa difficoltà nell'installare
Python e le relative librerie ti mettiamo a disposizione un NOSTRO AMBIENTE
VIRTUALE, con Python e le librerie già installate che ti permetteranno di Programmare
Python direttamente dal BROWSER.
15/34
Clicca quì per aprire Python Online
16/34
Il tuo obiettivo con la lezione di oggi è esercitarti utilizzando i diversi metodi di
ricampionamento disponibili in scikit-learn, ad esempio:
17/34
Facci sapere nei commenti quanto ti è uscito :)
Prima di andare avanti con lezioni, divertiti a giocare un po con parametri dell'ultimo
script e facci sapere se riesci ad ottenere una precisione più alta dell'85%
Esistono molte metriche diverse che puoi utilizzare per valutare l'abilità di un algoritmo
di apprendimento automatico su un set di dati.
Puoi specificare la metrica utilizzata per il tuo cablaggio di test in scikit-learn tramite la
funzione cross_validation.cross_val_score() e le impostazioni predefinite possono
essere utilizzate per problemi di regressione e classificazione. Il tuo obiettivo con la
lezione di oggi è esercitarti utilizzando le diverse metriche delle prestazioni dell'algoritmo
disponibili nel pacchetto scikit-learn.
Lo snippet seguente mostra il calcolo della metrica LogLoss sull'inizio del set di dati del
diabete.
18/34
from pandas import read_csv
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
url = "diabetes.data.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = read_csv(url, names=names)
array = dataframe.values
X = array[:,0:8]
Y = array[:,8]
kfold = KFold(n_splits=10)
model = LogisticRegression(solver='liblinear')
scoring = 'neg_log_loss'
results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)
print(f"Logloss: {results.mean()}%" )
Output
19/34
Lezione 9 corso gratis Python e Machine Learning:
Algoritmi Spot-Check
Non puoi assolutamente sapere quale algoritmo funzionerà meglio sui tuoi dati in
anticipo.
Algoritmi lineari di controllo spot su un set di dati (ad es. regressione lineare,
regressione logistica e analisi discriminante lineare).
Spot check di alcuni algoritmi non lineari su un dataset (es. KNN, SVM e CART).
Verifica a campione alcuni sofisticati algoritmi di ensemble su un set di dati (ad es.
foresta casuale e aumento del gradiente stocastico).
Ad esempio, lo snippet sotto controlla a campione l'algoritmo K-Nearest Neighbors sul set
di dati Boston House Price.
20/34
from pandas import read_csv
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.neighbors import KNeighborsRegressor
url = "housing.data"
names = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX',
'PTRATIO', 'B', 'LSTAT', 'MEDV']
dataframe = read_csv(url, delim_whitespace=True, names=names)
array = dataframe.values
X = array[:,0:13]
Y = array[:,13]
kfold = KFold(n_splits=10, random_state=7)
model = KNeighborsRegressor()
scoring = 'neg_mean_squared_error'
results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)
print(results.mean())
Sei arrivato già ad un buon punto del corso su Python e Machine Learning ed hai imparato molto, hai
visto tantissimi concetti. Prenditi uno o due giorni per riguardare ciò che hai fatto fin ora con occhi
diversi. E inizia a cercare un set di dati che ti interessa per iniziare ad applicare in modo autonomo
quanto visto fin ora
21/34
Algoritmo Support Vector Machine (SVM) Spiegazione
Ora che sai come individuare gli algoritmi di machine learning sul tuo set di dati, devi
sapere come confrontare le prestazioni stimate di diversi algoritmi e selezionare il
modello migliore.
22/34
from pandas import read_csv
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
# carichiamo dataset
url = "diabetes.data.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = read_csv(url, names=names)
array = dataframe.values
X = array[:,0:8]
Y = array[:,8]
# prepare models
models = []
models.append(('LR', LogisticRegression(solver='liblinear')))
models.append(('LDA', LinearDiscriminantAnalysis()))
# valutiamo i modelli
results = []
names = []
scoring = 'accuracy'
for name, model in models:
kfold = KFold(n_splits=10)
cv_results = cross_val_score(model, X, Y, cv=kfold, scoring=scoring)
results.append(cv_results)
names.append(name)
msg = cv_results.mean()
print(msg)
Questo è uno script potentissimo perchè ti permette di sapere velocemente quale tra gli
algoritmi da te scelti è più performante. Qui sotto c'è il nostro Output :
23/34
Se sei proprio alle prime armi e stai trovando troppa difficoltà nell'installare
Python e le relative librerie ti mettiamo a disposizione un NOSTRO AMBIENTE
VIRTUALE, con Python e le librerie già installate che ti permetteranno di Programmare
Python direttamente dal BROWSER.
Complimenti, sei quasi giunto al termine di questo corso su Python e il Machine Learning.
A questo punto per far si che ti rimanga qualcosa di concreto ti consigliamo di scegliere un dataset che
ti piaccia da qui e di applicare questi script. Commenta il post se ti appaiono errori.
24/34
Lezione 11 corso gratis Python e Machine Learning:
Dopo aver trovato uno o due algoritmi che funzionano bene sul tuo set di dati, potresti
voler migliorare le prestazioni di quei modelli.
La libreria scikit-learn offre due modi per cercare combinazioni di parametri per un
algoritmo di apprendimento automatico. Il tuo obiettivo nella lezione di oggi è esercitarti
su ciascuno.
25/34
from pandas import read_csv
import numpy
from sklearn.linear_model import Ridge
from sklearn.model_selection import GridSearchCV
url = "diabetes.data.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = read_csv(url, names=names)
array = dataframe.values
X = array[:,0:8]
Y = array[:,8]
alphas = numpy.array([1,0.1,0.01,0.001,0.0001,0])
param_grid = dict(alpha=alphas)
model = Ridge()
grid = GridSearchCV(estimator=model, param_grid=param_grid, cv=3)
grid.fit(X, Y)
print(grid.best_score_)
print(grid.best_estimator_.alpha)
26/34
Tutorial Pratico Tensorflow , TensorBoard e Python
Un altro modo per migliorare le prestazioni dei tuoi modelli consiste nel combinare le
previsioni di più modelli.
Alcuni modelli forniscono questa capacità integrata, come la foresta casuale per il bagging
e l'aumento del gradiente stocastico per il boost. Un altro tipo di insieme chiamato
votazione può essere utilizzato per combinare le previsioni di più modelli diversi insieme.
Esercitati a insaccare gli insiemi con gli algoritmi di foresta casuale e alberi.
Esercitati a potenziare gli insiemi con la macchina per aumentare il gradiente e gli
algoritmi AdaBoost.
Esercitati con gli insiemi di voto combinando le previsioni di più modelli insieme.
Lo snippet seguente mostra come utilizzare l'algoritmo Random Forest (un insieme
insaccato di alberi decisionali) sul set di dati sull'insorgenza del diabete
27/34
from pandas import read_csv
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestClassifier
url = "diabetes.data.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = read_csv(url, names=names)
array = dataframe.values
X = array[:,0:8]
Y = array[:,8]
num_trees = 100
max_features = 3
kfold = KFold(n_splits=10)
model = RandomForestClassifier(n_estimators=num_trees, max_features=max_features)
results = cross_val_score(model, X, Y, cv=kfold)
print(results.mean())
Output:
Mancano le ultime due Lezioni, speriamo davvero che tu stia seguendo i nostri consigli e
che hai iniziato il tuo progetto :)
28/34
Lezione 13 corso gratis Python e Machine Learning:
Una volta trovato un modello ben funzionante sul tuo problema di machine learning, devi
finalizzarlo.
Nella lezione di oggi eserciterai le attività relative alla finalizzazione del tuo modello.
Esercitati a fare previsioni con il tuo modello su nuovi dati (dati non visti durante
l'addestramento e i test).
29/34
from pandas import read_csv
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
import pickle
url = "diabetes.data.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = read_csv(url, names=names)
array = dataframe.values
X = array[:,0:8]
Y = array[:,8]
test_size = 0.33
seed = 7
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=test_size,
random_state=seed)
# alleniamo il modello 75%
model = LogisticRegression(solver='liblinear')
model.fit(X_train, Y_train)
# salviamo il modello
filename = 'finalized_model.sav'
pickle.dump(model, open(filename, 'wb'))
# Carichiamo il modello
loaded_model = pickle.load(open(filename, 'rb'))
result = loaded_model.score(X_test, Y_test)
print(result)
30/34
Letture consigliate per approfondire la LEZIONE 13:
31/34
Lezione 14 corso gratis Python e Machine Learning:
Nella lezione di oggi, devi esercitarti a mettere insieme i pezzi e lavorare con un set di dati
di machine learning standard end-to-end.
Abbiamo deciso di metterti qui una cartella con i due dataset molto semplici usati nelle
lezioni e tutti gli script che abbiamo visto in questo corso.
.zip
32/34
5. Miglioramento dei risultati utilizzando metodi di ensemble.
Che modello hai usato? Che risultati hai ottenuto? Fateci sapere nei commenti.
Hai scaricato, installato e avviato Python, forse per la prima volta e hai iniziato a
familiarizzare con la sintassi del linguaggio.
Lentamente e costantemente nel corso di una serie di lezioni hai imparato come le
attività standard di un progetto di machine learning di modellazione predittiva
vengono mappate sulla piattaforma Python.
Basandosi sulle ricette per le comuni attività di machine learning, hai elaborato i
tuoi primi problemi di machine learning end-to-end utilizzando Python.
Utilizzando un modello standard, le ricette e l'esperienza che hai raccolto ora sei in
grado di lavorare da solo attraverso nuovi e diversi problemi di apprendimento
automatico di modellazione predittiva.
Non prendertela alla leggera, hai fatto molta strada in poco tempo.
33/34
Questo è solo l'inizio del tuo viaggio di apprendimento automatico con Python. Continua
a esercitarti e a sviluppare le tue abilità.
Avete domande? Ci sono stati dei punti critici? Fateci sapere. Lascia un commento qui
sotto.
34/34