Coder Social home page Coder Social logo

learning's Introduction

Machine learning

Buscamos construir un programa capaz de aprender. Esto significa que, expuesto a un conjunto de ejemplos, dados por una tupla de características y acompañados por un valor de clasificación, el programa sea capaz de predecir el valor de clasificación de un nuevo ejemplo nunca antes visto.

Para este ejemplo utilizamos la base de Iris (Fisher, 1936) https://archive.ics.uci.edu/ml/datasets/iris. Algunos registros en esta base de 150 ejemplos:

5.2,4.1,1.5,0.1,Iris-setosa
5.5,4.2,1.4,0.2,Iris-setosa
4.6,3.2,1.4,0.2,Iris-setosa
7.0,3.2,4.7,1.4,Iris-versicolor
5.5,2.3,4.0,1.3,Iris-versicolor
5.7,2.8,4.1,1.3,Iris-versicolor
6.3,3.3,6.0,2.5,Iris-virginica
4.9,2.5,4.5,1.7,Iris-virginica
5.8,2.8,5.1,2.4,Iris-virginica
6.4,3.2,5.3,2.3,Iris-virginica

El problema de aprendizaje es de regresión y postulamos un modelo lineal. Es decir, buscamos inferir pesos tales que donde es la matriz de características de los ejemplos, e aproxime la clasificación verdadera .

Para encontrar definimos una función de error que vamos a minimizar:

Planteamos igualar a 0 el vector de derivadas parciales de E con respecto a cada .

Programa

El programa funciona en uno de tres modos posibles: aprendizaje, evaluación y clasificación.

Aprendizaje

Con la opción -l, el programa lee una base de ejemplos e induce los pesos según las ecuaciones normales definidas anteriormente.

Como resultado del aprendizaje, graba un archivo llamado PESOS conteniendo el vector de pesos aprendido, que se utilizará en las etapas siguientes.

Se puede limitar el aprendizaje a un subconjunto de la base, de modo de contar con un conjunto de entrenamiento y uno de validación. Para esto se puede utilizar la opción -t que define la proporción de ejemplos de la base que serán utilizados en la fase de aprendizaje. El resto de los ejemplos, no considerados durante el aprendizaje, será grabado en el archivo VALID para ser utilizado en las fases siguientes.

La opción -t define la proporción entre cantidades de ejemplos de entrenamiento y de validación en forma aleatoria y no exacta. Por ejemplo, -t=0.4 implica que se desea dividir la base en un 40% para entrenamiento y un 60% para validación. Al leer la base durante el aprendizaje, para cada ejemplo se generará un número aleatorio k. Si k es menor o igual que 0.4, el ejemplo será considerado durante el aprendizaje. En caso contrario, no se considerará para el aprendizaje y será grabado en el conjunto de validación VALID.

Otras opciones son -d (debug, presenta las matrices que son calculadas, con sus dimensiones), -w=ARCHIVO (especifica un archivo de pesos alternativo).

Ejemplos

./ml -l -t=0.4 -d < iris.data
./ml -l -w=PESOS2 < iris.data

Evaluación

Una vez logrado un conjunto de pesos, se puede evaluar la calidad del aprendizaje procesando un conjunto nuevo de ejemplos. El programa con la opción -v clasificará un conjunto de ejemplos según los pesos proporcionados y comparará los resultados de la clasificación con los rótulos originales. Dará un porcentaje que expresa la proporción de ejemplos clasificados correctamente.

Ejemplos

./ml -v -d < VALID

for i in 0.2 0.4 0.6 0.8; do
> ./ml -l -t=$i < iris.data
> ./ml -v < VALID
> done
Clasificados OK 108 de 123 (87.80 %)
Clasificados OK 74 de 86 (86.05 %)
Clasificados OK 53 de 62 (85.48 %)
Clasificados OK 27 de 30 (90.00 %)

Clasificación

La opción -c aplica los pesos proporcionados a la clasificación de ejemplos de los cuales se ignora el rótulo.

Ejemplos

./ml -c < VALID
./ml -c -w=PESOS2 (y se tipean las tuplas de características). 

Bibliografía

http://www.deeplearningbook.org/contents/ml.html

learning's People

Contributors

egrosclaude avatar texify[bot] avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.