Sunteți pe pagina 1din 21

Laboratorio Nro 5: REGRESION LINEAL

REGRESION LINEAL 1. Implementar la regresin lineal y ver cmo es que funciona con datos. Se necesitar bajar el cdigo inicial (starter code) y desempaquetar su contenido al directorio donde se desee completar el ejercicio. Si es necesario, usar el comando cd en Octave para cambiar al directorio antes de empezar los ejercicios. Adems se puede encontrar instrucciones de instalacin de Octave en la pgina Octave Installation. Archivos incluidos en este ejercicio: Ex1.m script en Octave que ayuda a dar pasos a travs del ejercicio. Ex1_multi.m script en Octave para las partes finales del ejercicio. Ex1data1.txt Conjunto de datos para regresin lineal con una variable. Ex1data2.txt Conjunto de datos para regresin lineal con mltiples variables. *warmUpExercise.m ejemplo simple de funciones en Octave. *plotData.m funcin para displayar el conjunto de datos. *computeCost.m funcin para calcular el costo de regresin lineal. *gradientDescentMulti.m algoritmo gradient descent para mltiples variables. +computeCostMulti.m funcin de costo para mltiples variables. +gradientDescentMulti.m gradient descent para mltiples variables. +FeatureNormalize.m Funcin para normalizar caractersticas. +normalEqn.m Funcin para calcular ecuaciones normales. * indica archivos que necesitas completar + indica archivos con ejercicios extras. A travs de este ejercicio, usars los scripts ex1.m y ex1_multi.m. Estos scripts configuran el conjunto de datos para los problemas y hacen llamadas a funciones que tu escribirs. No necesitas modificar ninguno de ellos. Solo requieres modificar las funciones en los otros archivos, siguiendo estas instrucciones. Para este ejercicios de programacin solo requieres completar la primera parte del ejercicio de implementar regresin lineal con una variable. La segunda parte del ejercicio, la cual podrs completar para una nota extra, cubre regresin lineal con mltiples variables. Los ejercicios usan Octave, un lenguaje de programacin de alto nivel para computaciones numricas. Puedes referirte a la pgina de ayuda para la instalacin del mismo. (https://class.coursera.org/ml/wiki/view?page=OctaveInstallation) En la lnea de comandos de Octave, escribe help seguido del nombre de la funcin, para ver la ayuda del mismo. Por ejemplo help plot nos dar informacin para ploteo. Adems hay un manual de Octave aqu (Octave documentation pages ).

A) Funcin simple en Octave La primera parte de ex1.m da ejercicio a la sintaxis de Octave. En el archivo warmUpExercise.m encontrars la cabecera de la funcin en Octave.

Modifcala para retornar una matriz identidad 5x5 llenando el siguiente cdigo: A = eye(5);

Luego ejecuta ex1.m (asumiendo que ests en el correcto directorio, escribe ex1 en el prompt de Octave) y deberas ver una salida similar a esta:

B) Regresin lineal con una variable En esta parte del ejercicio, implementars regresin lineal con una variable para predecir ganancias de un camin de comidas. Supn que ests en un restaurante y ests considerando diferentes ciudades para aperturar un nuevo local. La cadena tiene ya camiones de comida en varias ciudades y tienes datos de ganancias y poblacin para esas ciudades. Te gustara usar esos datos para ayudarte a seleccionar cual ciudad se debera expandir a continuacin. El archivo ex1data1.txt contiene el conjunto de datos para nuestro problema de regresin lineal. La primer columna es la poblacin de una ciudad y la segunda es la ganancia de un camin de comida en esa ciudad. Un valor negativo para la ganancia indica una prdida. El script ex1.m ha sido programado para cargar los datos. B.1 Graficando los datos Antes de empezar cualquier tarea, es usual entender los datos visualizndolos. Para este conjunto de datos puedes usar un Plot scatter para visualizarlos ya que solo hay 2 propiedades (ganancia y poblacin). En ex1.m el conjunto de datos es cargado en las variables X e y: X = data(:, 1); y = data(:, 2); m = length(y);

A continuacin, el script llama a la funcin plotData para crear un scatter plot de los datos. Tu trabajo es completar plotData.m para dibujar el plot; modifica el archivo y llena el siguiente cdigo: plot(x,y,rx,MarkerSize, 10); ylabel(Ganancia en $10000s); xlabel(Poblacin de la ciudad en 10000s);

Ahora, cuando continuas ejecutando ex1.m nuestro resultado final deber ser como la figura 1, con las mismas x rojas y etiquetas en los ejes.

B.2 Gradient Descent En esta parte, encajars los parmetros de la regresin lineal a nuestro conjunto de datos usando gradient descent. - Actualizando las ecuaciones: El objetivo de la regresin lineal es minimizar la funcin de costo:

donde la hiptesis h(x) es dada por el modelo lineal: recordando que los parmetros de tu modelo son los valores j. Estos son los valores que ajustars para minimizar el costo J( ). Una manera de hacerlo es usar el algoritmo batch gradient descent. En este algoritmo cada iteracin realiza las modificaciones:

Con cada paso del algoritmo gradient descent, tus parmetros j se acercan a los valores ptimos que producirn el costo mnimo J( ).

Nota de implementacin: Almacenamos cada ejemplo como una fila en la matriz X en Octave. Para tomar en cuenta el trmino interceptado 0, aadimos una columna inicial adicional a X y le damos el valor de 1 a todos. Esto nos permite tratar 0 como simplemente otra caracterstica. - Implementacin En ex1.m tenemos configurado ya los datos para regresin lineal. En las siguientes lneas adicionaremos otra dimensin a nuestros datos para acomodar el trmino interceptado 0. Adems inicializamos los parmetros a 0 y el ratio de aprendizaje alpha a 0.01. X = [ones(m, 1) data(:,1)]; theta = zeros(2,1); iterations = 1500; alpha = 0.01;

- Calculando la funcin de Costo J() A medida que usas gradient descent para aprender a minimizar la funcin de costo J(), es usual monitorizar la convergencia calculando el costo. En esta parte implementaremos una funcin para calcular J() as se puede chequear la convergencia de tu implementacin de gradient descent.

La siguiente tarea es completar el cdigo en el archivo computeCost.m el cual es una funcin que calcula J( ). A medida que vas haciendo esto, recuerda que las variables X e y no tienen valores escalares, sino matrices cuyas columnas representan los ejemplos del conjunto de entrenamiento. Una vez que has completado la funcin, el siguiente paso en ex1.m correr la funcin de costo una vez usando inicializado en ceros, e imprimiendo los costos. Deberas ver un costo de 32.07.

- Gradient descent archivo gradientDescent.m.

Note la manera que la lnea continua en ex1.m usa multiplicacin de matrices, en vez de sumas explcitas o ciclos, para calcular predicciones. Este es un ejemplo de vectorizacin de cdigo en Octave. predict1 = [1, 3.5] * theta; predict2 = [1, 7] * theta;

B.3 Depuracin: Si no quieres multiplicacin de matrices, necesitas agregar un punto en tu notacin para especificarlo en Octave. Por ejemplo, A*B multiplica matrices, mientras A.*B hace una operacin de multiplicacin elemento a elemento. B.4 Visualizando J() En 3 Dimensiones

En 2 dimensiones:

REGRESION LOGISTICA 2. Implementar la Regresin Logstica y aplicarla a 2 conjuntos de datos. Antes de iniciar se necesitar bajar el starter code y desempaquetarlo en el directorio donde queremos completar el ejercicio. Si es necesario, usar el comando cd de Octave para cambiar este directorio antes de iniciar el ejercicio. Completars el cdigo en plotData para que visualice una figura como la Figura 1, donde los ejes son las notas de los 2 exmenes y los ejemplos positivos y negativos son visualizados con diferentes marcas: B) Visualizar los datos Antes de empezar a implementar cualquier algoritmo de aprendizaje, es bueno visualizar los datos si es posible. En la primera parte de ex2.m el cdigo cargar los datos y los visualizar en un plot 2D llamando a la funcin plotData. Completars el cdigo en plotData para que visualice una figura como la Figura 1, donde los ejes son las notas de los 2 exmenes y los ejemplos positivos y negativos son visualizados con diferentes marcas:

C) Implementacin C.1 Ejercicio de calentamiento: Funcin sigmoide

C.2 Funcin de costo y gradiente

Una vez que hayas terminado, ex2.m llamar a costFunction usando los parmetros de . Debers ver que el costo es ms o menos 0.693.

C.3 Parmetros de aprendizaje usando fminunc

3. REGRESION LOGISTICA REGULARIZADA B. Mapeo de Caractersticas

C. Funcin de costo y gradiente

PROBLEMAS EN OCTAVE 1. Problema 1

Respuesta: C=A*B y C=A+B . 2.- Problema 2

Respuesta: B=A(:,1:2)

3.-Problema 3

Respuesta: Siendo A una matriz de 10X10 y x una matriz de una columna de 10X1 Se usa V=A*X; 4.-Problema4:

Respuesta: La que no cumple es Z=W*V; , todas las dems cumplen las operaciones que se plantean.

5. Problema 5

Respuesta: Todas se pueden ,cumplen y se pueden probar

S-ar putea să vă placă și