Está en la página 1de 6

1.

Introduccion

January 26, 2018

1 Unas palabras
1.1 £Que es Machine Learning?
El machine learning es el campo de estudio que da a las computadoras la habilidad de aprender
sin que este explicitamente programado.
Arthur Samuel, 1959
El machine learning en este momento se escucha cada vez mas en todo sitios pero £que es este
mundo?. Bueno para dar una introduccion al concepto de Machine Learning devemos comprender
a un algoritmo de Machine Learning como un Functor Universal, £Que significa esto?, Cuando tu
quieres resolver un problema creas un algoritmo para llegar a un resultado pero, cuando tenemos
una gran cantidad de datos que parecen no tener coorelacion para una persona se pasan a estos
algoritmos para que encuentre la funcion que se acota a ese grafico.
Una aplicacion que se le puede dar es por ejemplo, la deteccion de fraudes, si tu marcas un
correo como Spam un algoritmo aprendera del corpus de ese mail para ver cuando el usuario
marcaria un mail como Spam y hacerlo automaticamente. Otra aplicacion es en la deteccion de
objetos invisibles en imagenes que se usa para el campo medico con una eficiencia en la deteccion
de cancer a traves de imagenes.

1.2 £Por que me interesa el Machine Learning?


Te lo digo de antemano, a todos no interesa este mundo a mi me dio curiosidad este mundo el
2010 cuando google mostro las demostraciones de su nuevo framework llamado “TensorFlow” y
me acuerdo que en ese tiempo no corria en windows solo en mac y en linux, los que querian hacer
algoritmos de machine learning con tensorflow debian usar una maquina virtual de linux, en la
actualidad “TensorFlow” esta disponible en todos los sistemas operativos. Lo que mas me llamo
la atencion fue la implementacion de la red GANN’s de deep dream que consistia que a una red
neuronal convolucional profunda se le hacia que mezclara los filtros de las capas con una imagen,
en esos tiempos no podria explicarlo como lo explico ahora.
El potencial del Machine Learning para el mundo mundo real es casi infinita y en el futuro
podrian ampliarse esas barreras se me podria ocurrir aplicaciones para todos los campos inclusos
los artisticos con las redes Gann’s, pero de eso iremos deglosando en cada capitulo del libro, no
queria quedarme sin dedicar estas palabras para animarlos a comenzar en este mundo

1
2 Entrando en materia
2.1 Tipos de Machine Learning
Aqui tenemos muchos tipos de machine learning y vamos a hacer un repaso por los principales

2.2 Aprendizaje supervisado/no supervisado


Se clasifican en tipos de supervision en los que estan estos metodos:
ůAprendizaje Supervisado
ůAprendizaje No Supervisado
ůAprendizaje Semi Supervisado
ůAprendizaje Por Refuerzo

2.2.1 Aprendizaje Supervisado


Aqui tenemos dos grupos de dato importantes los Features y las Labels o Classes, £que son estos
datos?, las Features son los valores de datos que influyen sobre la respuesta es decir al programa
le damos un vector de muestras de datos y la salida ideal que es la respuesta a cada uno de estos
datos, luego de pasarlos por el algoritmo, nos clasificara el dato nuevo segun los datos anteriores

2.2.2 Aprendizaje No Supervisado


Aqui no necesitamos salidas ideales solo entradas y el algoritmo va a ir correlacionando los datos
buscando los horizontes de percepcion y al darle un nuevo dato va a encontrar una anomalia para
posteriormente dar una clasificacion, las aplicaciones mas impresionantes que he visto es sobre
imagenes, como subir la nitidez de la misma o hacer un efecto mas preciso que el FXXA en la
reduccion de dientes de cierra en las imagenes pero aqui veremos varias aplicaciones practicas

2.2.3 Aprendizaje Semi Supervisado


Dentro de un dataset en ocaciones puede haber muchos datos sin Labels o Salidas ideales en-
tonces el programa mezcla de el algoritmo Supervisado y No Supervisado el algoritmo trata de
completar el camino de la funcion para satisfacer las salidas sin Labels

2.2.4 Aprendizaje por Refuerzo


El aprenzaje por refuerzo en mi opinion es lo mas parecido al aprendizaje empirico del humano es
decir le damos a la inteligencia artificial un estimulo cada vez que completa una tarea de manera
correcta la recompenza depende del caso pero generalmente es hacer una tarea de manera correcta
o en el caso de los jugadores automaticos en funcion de los puntos

2
2. Obteniendo los datos

January 26, 2018

1 Obteniendo datos
Necesitamos primeramente instalar lo que usaremos inmediatamente
Anaconda (Opcional)
Pagina: https://www.anaconda.com/download/
Luego abriremos la consola en mi caso en linux la terminal y escribimos un comando para
hacer un nuevo espacio de trabajo
Ejecutar
Comando:
*conda create –name “ml” python=3.5.2
Luego con source activaremos el entorno
Nota:
Ejecutaremos este comando cada vez que trabajemos con este libro
source activate ml
Luego instalaremos lo siguiente que usaremos inmediatamente
pip install jupyter pip install numpy pip install scipy pip install pandas pip install matplotlib pip install
sklearn
luego de haber hecho esto testeamos que todo este en orden y ejecutaremos este comando
python3 -c “import, jupyter, numpy, scipy, pandas, matplotlib, sklearn”
ahora iniciaremos jupyter con el comando
jupyter notebook
se nos abrira el navegador por defecto y crearas un nuevo con el boton new y seleccionaras
python 3

In [1]: from sklearn import datasets


import pandas as pd

2 Explorando un dataset
Vamos a usar el dataset del titanic que es la lista real del titanic el link esta aqui
https://raw.githubusercontent.com/ageron/handson-ml/master/datasets/housing/housing.csv

In [2]: datos = pd.read_csv('CSV/Titanic.csv',delimiter=',',decimal='.', index_col=0)


datos.head()

Out[2]: Name PClass Age Sex \


1 Allen, Miss Elisabeth Walton 1st 29.00 female

1
2 Allison, Miss Helen Loraine 1st 2.00 female
3 Allison, Mr Hudson Joshua Creighton 1st 30.00 male
4 Allison, Mrs Hudson JC (Bessie Waldo Daniels) 1st 25.00 female
5 Allison, Master Hudson Trevor 1st 0.92 male

Survived SexCode
1 1 1
2 0 1
3 0 0
4 0 1
5 1 0

In [3]: print("Numero de instancias: ",len(datos))


print("Edad minima: ",min(datos['Age']))
print("Edad maxima: ",max(datos['Age']))

Numero de instancias: 1313


Edad minima: 0.17
Edad maxima: 71.0

In [4]: print(datos['PClass'].value_counts())

3rd 711
1st 322
2nd 279
* 1
Name: PClass, dtype: int64

In [5]: print(datos['Sex'].value_counts())

male 851
female 462
Name: Sex, dtype: int64

In [6]: print(datos['Survived'].value_counts())

0 863
1 450
Name: Survived, dtype: int64

In [7]: %matplotlib inline


import matplotlib.pyplot as plt

datos['Age'].hist(bins=50, figsize=(20,15))

Out[7]: <matplotlib.axes._subplots.AxesSubplot at 0x7faae911b2e8>

2
Aqui tenemos un datase de 6 columnas Nombre, Pclass, Edad, Sexo, Sobrevivio ademas ha-
ciendo un poco de exploracion mas a fondo podemos ver que el dataset tiene 1313 intacias la Edad
minima es 0.17 y la Edad maxima es 71.0 tambien podemos ver que iban 711 personas en 3era clase
322 personas en 1era clase y 322 personas en 2da clase habien 851 hombres y 462 mujeres y sobre-
vivieron 450 y murieron 864 y las edades las podemos explorar en un grafico como se hizo en este
caso

2.1 Por que hacemos esto?


la exploracion no se exagera tanto como en este caso pero deben saber que la exploracion de los
datos es una buena practica para determinar los valores que sirven dentro de un dataset de texto
o cosas similares

2.2 Tomando las variables relevantes y limpiando el dataset


Las variables que me interesan en este momento son la clase la edad y el sexo ya que estos valores
influyen directamente sobre el resultado

In [8]: import numpy as np


datos = datos.drop(labels=['Name','Sex'], axis=1)

print(len(datos))
datos.head()

3
1313

Out[8]: PClass Age Survived SexCode


1 1st 29.00 1 1
2 1st 2.00 0 1
3 1st 30.00 0 0
4 1st 25.00 0 1
5 1st 0.92 1 0

2.3 Haciendo el set de test


Simpre devemos reservar datos para los test generalmente se reservan un 20% pero me gusta
reservar el 25% o 30%
Para esto tenemos una funcion de sklearn bastante util que se llama train_test_split

In [9]: from sklearn.model_selection import train_test_split

trainset, testset = train_test_split(datos,test_size=0.25, random_state=42)

print(len(trainset))
print(len(testset))

984
329

También podría gustarte