Si è tornato a parlare molto di Machine Learning negli ultimi anni. Grazie anche al fatto che è possibile oggi processare enormi moli di dati in tempi (relativamente) veloci questa parte dell'informatica sta vivendo una seconda giovinezza.
In questa sessione vedremo cos'è il machine learning, quali sono le diverse casistiche tecniche e funzionali in cui può essere usato ed inizieremo a "giocare" con i dati per vedere fin dove possiamo spingerci, usando strumenti On-Premise e quindi spostandoci poi sull'offerta Azure Machine Learning dove, una volta fatta propria la teoria, si possono realizzare soluzioni estremamente complesso in modo molto visuale e sfruttare la scalabilità di Azure per avere performance ottimali. Il tutto senza dimenticare che gli algoritmi così ottenuti possono essere facilmente integrati nelle nostre applicazioni semplicemente invocando un web service.
4. #sqlsatTorino
#sqlsat400May 23, 2015
Davide Mauri
Microsoft SQL Server MVP
Works with SQL Server from 6.5, on BI from 2003
Specialized in Data Solution Architecture, Database
Design, Performance Tuning, High-Performance Data
Warehousing, BI, Big Data
President of UGISS (Italian SQL Server UG)
Regular Speaker @ SQL Server events
Consulting & Training, Mentor @ SolidQ
E-mail: dmauri@solidq.com
Twitter: @mauridb
Blog: http://sqlblog.com/blogs/davide_mauri/default.aspx
7. #sqlsatTorino
#sqlsat400May 23, 2015
Machine Learning
Algoritmi che apprendono dai dati
Niente di nuovo dal punto di vista scientifico
"Field of study that gives computers the ability to learn
without being explicitly programmed“ - 1959, Arthur
Samuel
In Italiano: «Apprendimento Automatico»
Nome meno bello ma più vicino alla realtà
Richiede *molta* potenza di calcolo (anche per Not-
So-Big Data)
Azure, here we come!
8. #sqlsatTorino
#sqlsat400May 23, 2015
Machine Learning
Molto, molto, molto, molto utile per
Identificare pattern sconosciuti e non “umanamente”
identificabili
Ad es. in spazi multi-dimensionali (da un punto di vista
matematico e pratico, sono oggetti con cui ci relazioniamo
tutti i giorni)
Identificare correlazioni nascoste
Es. relazioni di causa/effetto per identificare frodi, eventi
specifici (rottura di un pezzo)
Classificare in automatico insiemi di dati
Es. autore di provenienza di un testo, sentiment analysis,
pattern recognition
Anticipare il futuro basandosi su conoscenza passata
Es. Analisi delle tendenze di prezzi, stock, costi
9. #sqlsatTorino
#sqlsat400May 23, 2015
Machine Learning
Ci sono due (ma alcuni le dividono in cinque!)
grosse categorie
Supervised Learning
Unsupervised Learning
Supervised: agli algoritmi viene insegnato qual è
il risultato atteso
Unsupervised: gli algoritmi identificano in
autonomia le regole / i pattern
10. #sqlsatTorino
#sqlsat400May 23, 2015
Linguaggi
Linguaggi comuni ed utilizzati attualmente
R (MS ha appena acquisito Revolution Analytics)
Pyton (Scikit-Learn – pron: “sy-kit learn”)
In ambito .NET
Infer.NET
http://research.microsoft.com/en-
us/um/cambridge/projects/infernet/
F#
http://fsharp.org/guides/machine-learning/index.html
http://stackoverflow.com/questions/8068040/resources-for-
working-with-machine-learning-in-f
Azure ML
Net# - Linguaggo specifico per Reti Neurali Artificiali
11. #sqlsatTorino
#sqlsat400May 23, 2015
AzureML
“Democratize Machine Learning”
https://studio.azureml.net/
Gratis (“Free Tier”) per dati fino a 10GB e per
attività di test/sviluppo
Sviluppo di esperimenti e pubblicazione degli
algoritmi tramite Web API / Service
12. #sqlsatTorino
#sqlsat400May 23, 2015
Tool
R + RStudio
IDE free per R, molto ben fatto
http://www.rstudio.com/
Anaconda Python
Distribuzione di Python con tutti i package necessari per fare
Data Science
http://www.continuum.io/
PyTools For Visual Studio
Estensione per sviluppare con Python con Visual Studio
Team di sviluppo assorbito da AzureML
https://pytools.codeplex.com/
14. #sqlsatTorino
#sqlsat400May 23, 2015
IRIS Dataset
Disponibile presso il sito UC Irvine Machine
Learning Repository
http://archive.ics.uci.edu/ml/datasets/Iris
150 classificazioni di fiori “iris”
3 classi: Virginica, Versicolor, Setosa
4 feature (dimensioni): Sepal Width & Length, Petal Width
& Length
Uno dei set più famosi
Una classe linearmente separabile
Le alter due classi NON sono linearmente separabili
18. #sqlsatTorino
#sqlsat400May 23, 2015
Azure Machine Learning
www.azureml.com
Azure ML Studio
Web application per lo sviluppo dei modelli
Processo di sviluppo
Experiment
Score
Evaluate
Publish
21. #sqlsatTorino
#sqlsat400May 23, 2015
Web Endpoint
Azure Machine Learning permette di creare un
endpoint web per invocare l’algoritmo di ML da
applicazioni custom
Protocollo basato su JSON
Insieme al web service viene creato anche
Pagina di Help
Endpoint per chiamata singola
Endpoint per chiamata batch