SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
RaúlGarreta
Tryolabs/ Fing Udelar
@raulgarreta
PyConUruguay 2012
 ¿Qué es AprendizajeAutomático (AA) ?
 ¿Qué se puede hacer conAA?
 Herramientasde AA en Python
 Ejemplos
 Subárea dentro de Inteligencia
Artificial.
 Estudia algoritmos que tienen la
capacidad de aprender a realizar una
tarea automáticamente.
 Mejoransu performance con la
experiencia.
 Permitenresolver tareascomplejas,
cuya solución es muy difícil o
imposible de realizar manualmente.
 Aprendizaje como aspecto
fundamentalen la Inteligencia.
 Procesamientode Lenguaje Natural
 SpamFiltering
 VisiónArtificial
 Reconocimiento de Rostros
 OCR
 JugadoresArtificiales
 Data Mining
 Sistemas de Recomendación
 Y mucho, mucho más…
 Mejorar en una tarea T
 Respecto a una medida de performance P
 Basándoseen la experiencia E
 Supervisado
 Clasificación
▪ Árbolesde decisión
▪ Naive Bayes
▪ SVM
▪ …
 Regresión
▪ RedesNeuronales
▪ …
 NoSupervisado
 Clustering
▪ KNN
▪ SOM
 PorRefuerzos
 Temporal Difference
 T: clasificar mails en Spam / No Spam
 P: porcentaje de mails correctamente
clasificados
 E: ver una muestra de mails clasificados
manualmentepor el usuario como Spam / No
Spam
 ¿Qué es lo que se aprende y cómo se modela?
 V: Mail-> {Spam, No Spam}
 V(m1) = Spam, si m1 es mail de spam
 V(m2) = No Spam, si m2 es mail de interés
 V = f(aparece la palabra “viagra”, el remitente está
en mi lista de contactos?, #que aparece la palabra
“compre”, …)
 f = función lineal? Función polinomial de 2do
grado? Red neuronal? Árbol de Decisión? …
 ¿Con qué algoritmo se aprende?
 Esto muchas veces depende de la
representación/modeloque se va a utilizar
 Si modelo con una Red Neuronal -> puedo
utilizar Backpropagation
 Si modelo con un Árbol de Decisión -> puedo
utilizar ID3
 Si utilizo un modelo probabilístico -> estimar las
probabilidades contando frecuencias.
 …
 Qué tipo de entrenamiento se utiliza?
 Supervisado: tengo ejemplos etiquetados,
una base de mails ya clasificadoscomo spam
/ no spam.
 Utilizoesta base como conjunto de
entrenamiento.
 Puedo particionar en entrenamiento/ testeo
para aprender y testear respectivamente.
Ejemplo:70% para entrenamiento,30%
testeo
 FeatureSelection: cual es el input del algoritmo,
como represento un ejemplo, cuales son las
característicasimportantes a considerar para
clasificar.
 Medidas de Performance: ¿cómo sé si el sistema
realmente funciona bien? ¿cómo sé si el sistema
mejora si realizo modificaciones?
 Train set /Testing set
 Precision, Recall, Medida F
 Matrizde Confusión
 Haymuchas opciones:
 Orange http://orange.biolab.si/
 NLTK http://nltk.org/
 Mlpy http://mlpy.sourceforge.net/
 Pyml http://pyml.sourceforge.net/
 Pybrain http://pybrain.org/
 Scikit-learn http://scikit-learn.org/
 ¿Cómo implementarnuestro spam filter en
Pythonen 6 pasos sencillos?
 UtilizaremosScikit-learn
 Necesitamosrecolectar ejemplos de entrenamiento.
 Mails etiquetadoscomo spam / ham
 Exportar mis mails de mi cuenta de gmail
messages
ham
ham1.txt
ham2.txt
...
spam
spam1.txt
spam2.txt
...
data_samples =
load_files(container_path='/path/to/messages',
shuffle=True)
SPLIT_PERC = 0.6
train_size = int(len(data_samples.data)*SPLIT_PERC)
data_train = data_samples.data[:train_size]
data_test = data_samples.data[train_size:]
y_train = data_samples.target[:train_size]
y_test = data_samples.target[train_size:]
vectorizer = TfidfVectorizer(sublinear_tf=True,
strip_accents='ascii')
x_train = vectorizer.fit_transform(data_train)
x_test = vectorizer.transform(data_test)
classifier = MultinomialNB()
classifier.fit(x_train, y_train)
pred = classifier.predict(x_test)
metrics.precision_score(y_test, pred)
metrics.recall_score(y_test, pred)
metrics.f1_score(y_test, pred)
metrics.confusion_matrix(y_test, pred)
 Web:
 Scikit-learn
http://scikit-learn.org/stable/auto_examples
 Streamhacker.com
 Libros:
 NLTKbook,NLTK cookbook
 Machine Learning,Tom Mitchel
 Cursos:
 Udelar
http://www.fing.edu.uy/inco/cursos/aprendaut/
 StanfordUniversity
https://www.coursera.org/course/ml
 WashingtonUniversity
https://www.coursera.org/course/machlearning
¿Preguntas?

Mais conteúdo relacionado

Semelhante a Aprendizaje Automático con Python

Aprendizaje Automàtico - Introduccion a Machine Learning
Aprendizaje Automàtico - Introduccion a Machine LearningAprendizaje Automàtico - Introduccion a Machine Learning
Aprendizaje Automàtico - Introduccion a Machine LearningHugo Median Rivas
 
TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...
TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...
TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...TestingAR Meetup
 
Algoritmos y estructura de datos
Algoritmos y estructura de datosAlgoritmos y estructura de datos
Algoritmos y estructura de datosLily- XztrzitA-
 
El Libro de la Inteligencia Artificial (versión 8)
El Libro de la Inteligencia Artificial (versión 8)El Libro de la Inteligencia Artificial (versión 8)
El Libro de la Inteligencia Artificial (versión 8)Alfredo Vela Zancada
 
Machine Learning.pptx
Machine Learning.pptxMachine Learning.pptx
Machine Learning.pptxManuel Duque
 
Introducción al Machine Learning con BigML
Introducción al Machine Learning con BigMLIntroducción al Machine Learning con BigML
Introducción al Machine Learning con BigMLMSc Aldo Valdez Alvarado
 
UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)Videoconferencias UTPL
 
Clase Inteligencia Artificial Unidad 3
Clase Inteligencia Artificial Unidad 3Clase Inteligencia Artificial Unidad 3
Clase Inteligencia Artificial Unidad 3K Reyes
 
El Libro de la Inteligencia Artificial (versión 5)
El Libro de la Inteligencia Artificial (versión 5)El Libro de la Inteligencia Artificial (versión 5)
El Libro de la Inteligencia Artificial (versión 5)Alfredo Vela Zancada
 
Recommenders
RecommendersRecommenders
Recommendersbcurtu
 
Aprendizaje de máquina
Aprendizaje de máquinaAprendizaje de máquina
Aprendizaje de máquinaHugo Banda
 
Introduccion-de-Machine-Learning-Con-Python (2).pptx
Introduccion-de-Machine-Learning-Con-Python (2).pptxIntroduccion-de-Machine-Learning-Con-Python (2).pptx
Introduccion-de-Machine-Learning-Con-Python (2).pptxJorge293
 
Machine Learning. Introducción.pptx
Machine Learning. Introducción.pptxMachine Learning. Introducción.pptx
Machine Learning. Introducción.pptxJorgedelCastilloGmez
 
Mineria de Datos.pdf
Mineria de Datos.pdfMineria de Datos.pdf
Mineria de Datos.pdfhenry913654
 

Semelhante a Aprendizaje Automático con Python (20)

Aprendizaje Automàtico - Introduccion a Machine Learning
Aprendizaje Automàtico - Introduccion a Machine LearningAprendizaje Automàtico - Introduccion a Machine Learning
Aprendizaje Automàtico - Introduccion a Machine Learning
 
TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...
TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...
TestingAR Meetup VIII - Luis Argerich - Una Breve Introducción a Machine Lear...
 
Algoritmos y estructura de datos
Algoritmos y estructura de datosAlgoritmos y estructura de datos
Algoritmos y estructura de datos
 
Fundamentos IA
Fundamentos IAFundamentos IA
Fundamentos IA
 
Machine Learning.pptx
Machine Learning.pptxMachine Learning.pptx
Machine Learning.pptx
 
El Libro de la Inteligencia Artificial (versión 8)
El Libro de la Inteligencia Artificial (versión 8)El Libro de la Inteligencia Artificial (versión 8)
El Libro de la Inteligencia Artificial (versión 8)
 
Machine Learning.pptx
Machine Learning.pptxMachine Learning.pptx
Machine Learning.pptx
 
Introducción al Machine Learning con BigML
Introducción al Machine Learning con BigMLIntroducción al Machine Learning con BigML
Introducción al Machine Learning con BigML
 
UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN DE ALGORITMOS-I-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 
Clase Inteligencia Artificial Unidad 3
Clase Inteligencia Artificial Unidad 3Clase Inteligencia Artificial Unidad 3
Clase Inteligencia Artificial Unidad 3
 
Machine Learning.pptx
Machine Learning.pptxMachine Learning.pptx
Machine Learning.pptx
 
El Libro de la Inteligencia Artificial (versión 5)
El Libro de la Inteligencia Artificial (versión 5)El Libro de la Inteligencia Artificial (versión 5)
El Libro de la Inteligencia Artificial (versión 5)
 
Recommenders
RecommendersRecommenders
Recommenders
 
EMBD2018 | Autotuning en modelos de Machine Learning
EMBD2018 | Autotuning en modelos de Machine LearningEMBD2018 | Autotuning en modelos de Machine Learning
EMBD2018 | Autotuning en modelos de Machine Learning
 
Aprendizaje de máquina
Aprendizaje de máquinaAprendizaje de máquina
Aprendizaje de máquina
 
Introduccion-de-Machine-Learning-Con-Python (2).pptx
Introduccion-de-Machine-Learning-Con-Python (2).pptxIntroduccion-de-Machine-Learning-Con-Python (2).pptx
Introduccion-de-Machine-Learning-Con-Python (2).pptx
 
Clase2
Clase2Clase2
Clase2
 
Machine Learning. Introducción.pptx
Machine Learning. Introducción.pptxMachine Learning. Introducción.pptx
Machine Learning. Introducción.pptx
 
Mineria de Datos.pdf
Mineria de Datos.pdfMineria de Datos.pdf
Mineria de Datos.pdf
 
presentacion.pdf
presentacion.pdfpresentacion.pdf
presentacion.pdf
 

Último

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 

Último (12)

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

Aprendizaje Automático con Python

  • 2.  ¿Qué es AprendizajeAutomático (AA) ?  ¿Qué se puede hacer conAA?  Herramientasde AA en Python  Ejemplos
  • 3.  Subárea dentro de Inteligencia Artificial.  Estudia algoritmos que tienen la capacidad de aprender a realizar una tarea automáticamente.  Mejoransu performance con la experiencia.  Permitenresolver tareascomplejas, cuya solución es muy difícil o imposible de realizar manualmente.  Aprendizaje como aspecto fundamentalen la Inteligencia.
  • 4.  Procesamientode Lenguaje Natural  SpamFiltering
  • 7.  Sistemas de Recomendación  Y mucho, mucho más…
  • 8.  Mejorar en una tarea T  Respecto a una medida de performance P  Basándoseen la experiencia E
  • 9.  Supervisado  Clasificación ▪ Árbolesde decisión ▪ Naive Bayes ▪ SVM ▪ …  Regresión ▪ RedesNeuronales ▪ …  NoSupervisado  Clustering ▪ KNN ▪ SOM  PorRefuerzos  Temporal Difference
  • 10.  T: clasificar mails en Spam / No Spam  P: porcentaje de mails correctamente clasificados  E: ver una muestra de mails clasificados manualmentepor el usuario como Spam / No Spam
  • 11.  ¿Qué es lo que se aprende y cómo se modela?  V: Mail-> {Spam, No Spam}  V(m1) = Spam, si m1 es mail de spam  V(m2) = No Spam, si m2 es mail de interés  V = f(aparece la palabra “viagra”, el remitente está en mi lista de contactos?, #que aparece la palabra “compre”, …)  f = función lineal? Función polinomial de 2do grado? Red neuronal? Árbol de Decisión? …
  • 12.  ¿Con qué algoritmo se aprende?  Esto muchas veces depende de la representación/modeloque se va a utilizar  Si modelo con una Red Neuronal -> puedo utilizar Backpropagation  Si modelo con un Árbol de Decisión -> puedo utilizar ID3  Si utilizo un modelo probabilístico -> estimar las probabilidades contando frecuencias.  …
  • 13.  Qué tipo de entrenamiento se utiliza?  Supervisado: tengo ejemplos etiquetados, una base de mails ya clasificadoscomo spam / no spam.  Utilizoesta base como conjunto de entrenamiento.  Puedo particionar en entrenamiento/ testeo para aprender y testear respectivamente. Ejemplo:70% para entrenamiento,30% testeo
  • 14.  FeatureSelection: cual es el input del algoritmo, como represento un ejemplo, cuales son las característicasimportantes a considerar para clasificar.  Medidas de Performance: ¿cómo sé si el sistema realmente funciona bien? ¿cómo sé si el sistema mejora si realizo modificaciones?  Train set /Testing set  Precision, Recall, Medida F  Matrizde Confusión
  • 15.  Haymuchas opciones:  Orange http://orange.biolab.si/  NLTK http://nltk.org/  Mlpy http://mlpy.sourceforge.net/  Pyml http://pyml.sourceforge.net/  Pybrain http://pybrain.org/  Scikit-learn http://scikit-learn.org/
  • 16.  ¿Cómo implementarnuestro spam filter en Pythonen 6 pasos sencillos?  UtilizaremosScikit-learn
  • 17.  Necesitamosrecolectar ejemplos de entrenamiento.  Mails etiquetadoscomo spam / ham  Exportar mis mails de mi cuenta de gmail messages ham ham1.txt ham2.txt ... spam spam1.txt spam2.txt ...
  • 19. SPLIT_PERC = 0.6 train_size = int(len(data_samples.data)*SPLIT_PERC) data_train = data_samples.data[:train_size] data_test = data_samples.data[train_size:] y_train = data_samples.target[:train_size] y_test = data_samples.target[train_size:]
  • 20. vectorizer = TfidfVectorizer(sublinear_tf=True, strip_accents='ascii') x_train = vectorizer.fit_transform(data_train) x_test = vectorizer.transform(data_test)
  • 22. pred = classifier.predict(x_test) metrics.precision_score(y_test, pred) metrics.recall_score(y_test, pred) metrics.f1_score(y_test, pred) metrics.confusion_matrix(y_test, pred)
  • 23.  Web:  Scikit-learn http://scikit-learn.org/stable/auto_examples  Streamhacker.com  Libros:  NLTKbook,NLTK cookbook  Machine Learning,Tom Mitchel  Cursos:  Udelar http://www.fing.edu.uy/inco/cursos/aprendaut/  StanfordUniversity https://www.coursera.org/course/ml  WashingtonUniversity https://www.coursera.org/course/machlearning