[MÚSICA] [MÚSICA] [MÚSICA] Recordemos el problema que vimos la semana pasada, donde tratábamos de predecir el precio de una vivienda a partir de datos de caracterÃsticas como los metros cuadrados, la cantidad de habitaciones o la dirección donde estaba ubicada. Vamos a hacer un pequeño cambio al planteo de este problema y vamos a convertir el precio, en lugar de ser una variable dependiente, en una variable independiente, y vamos a considerarlo un dato dado. Y lo que vamos a tratar de predecir esta vez es si esta casa en un determinado tiempo se va a vender o no. Es decir, una clasificador binario de tipo sà y no, o como también lo vamos a llamar, como uno o cero. ¿Qué significa esto? Que en este problema you vamos a saber cuál es el precio que se fijó para esa propiedad, conocemos otra caracterÃstica como su dirección, su cantidad de habitaciones, sus metros cuadrados y lo queremos saber es simplemente si se va a lograr vender o no esa propiedad en un tiempo determinado que vamos a fijar para nuestro problema. Repasemos ahora la notación que vamos a utilizar. Tenemos, por un lado, nuestras variables independientes x, que son los metros cuadrados de la propiedad, la cantidad de habitaciones, la dirección donde se encuentra y el precio establecido. Y por otro lado, tenemos el valor de y, que es un booleano, sÃ-no, o cero-uno, que identifica el target que estamos tratando de entrenar y predecir. Vamos a tener entonces un tamaño de input de tamaño 4, que vamos a denominar como m minúscula correspondiente a las cuatro variables independientes que estamos representando. Por otro lado, por cada observación, vamos a tener un par ordenado de x e y, que se corresponden a cada una de las x a un vector de tamaño 4 por cada uno de los valores que tienen las variables independientes y un valor y que solamente puede tomar la posición de 0 o de 1 por ser una clasificación binaria. Esto se va a repetir por una cantidad de registros de entrenamiento que tiene nuestro data set, que vamos a denominar como n. Esto quiere decir que tenemos primero el par ordenado x1, y1; luego x2, y2; y asà hasta concluir nuestro dataset en xn, yn. Por otro lado, tenemos a nuestro dataset de entrenamiento, que vamos a denominar como M o Mtrain, para distinguirlo de dataset de testeo, que vamos a llamar como Mtest. Este dataset M va a estar compuesto por la matriz X de nuestras variables independientes, donde cada observación va a ser una fila diferente, con lo cual vamos a tener n filas en esta matriz por cada observación que tengamos en nuestro dataset de entrenamiento y m columnas por cada una de las variables independientes que tenemos para predecir. Si usamos una función de Python de x.shape de pandas, verÃamos que esta matriz tiene un tamaño de n filas por m columnas. De forma similar, nuestra matriz Y va a tener solamente una columna y filas iguales a n, con lo cual, si usamos Y.shape, nos darÃa una matriz de tamaño n filas, 1 columna. Una última aclaración respecto a la notación que vamos utilizar. Pueden llegar a ver en otros cursos que la definición de estas matrices X e Y la pueden llegar a hacer de una forma exactamente inversa, es decir, donde cada observación x1 se define, en lugar de una fila, como una columna. Es decir que tenemos la cantidad de columnas como observaciones tiene nuestro dataset y una cantidad de filas como parámetros tiene cada una de las observaciones que estamos trabajando. De la misma forma, el vector Y deja de ser de tamaño n y 1, y pasa a ser un vector de una sola fila y tantas columnas como observaciones tiene nuestro dataset. Ambas notaciones son correctas, pero nos parece más intuitivo trabajarlo de esta manera, dado que varios de los algoritmos que van a implementar usando esto en la práctica, por ejemplo, Keras, trabajan la notación de esta manera, es decir, donde cada observación representa una fila y no una columna. Pero sépanlo que cuando lean Papers o lean otros cursos, pueden llegar a ver esta notación de forma inversa. Veamos ahora cómo podemos resolver este problema de clasificación binaria usando una regresión logÃstica. Repasemos cómo definimos nosotros una regresión donde cada uno de los valores independientes de x los multiplicábamos por un peso, w, sumados a una constante b nos daba como resultado el valor y. ¿Cuál es el problema que tenemos usando esta función para resolver este problema? Nuestro target, nuestro resultado, tiene que ser un valor binario 0 o 1, un booleano, cuando el resultado de y va a ser un resultado real entre menos infinito y más infinito. ¿Cómo podemos entonces forzar esta función para que el resultado de y sea siempre el valor 0 o el valor 1? Lo que vamos a hacer es pasar una función sigmoide por todo lo que se encuentra en el primer lado de nuestra ecuación, a lo cual, a partir de ahora, vamos a denominar como z. ¿Qué es una función sigmoide? Ni es otra cosa que una representación donde todos los valores positivos de z, serÃa x por los pesos w más la constante b, van a tender a ser 1, y todos los valores negativos de z van a tender a ser 0. ¿Cómo logramos esto? Definiendo nuestra función sigmoide a z como el resultado de la ecuación de 1 dividido 1 más e a la -z, donde, de vuelta, z es x por w más b. Pensemos un poquito cómo funciona esta ecuación. Si tengo valores de z que son positivos y muy grandes, es decir, el resultado de x por w más b son valores positivos muy grandes, el componente de e a la -z va a tender a 0. Con lo cual, si el componente de e a la -z tiende a 0, 1 dividido 1 más 0 va a ser igual a 1, o va a tender a ser igual a 1, o valores muy cercanos a 1. Si por el contrario, z es negativo y valores muy grandes, la función sigmoide de z nos va a entregar un resultado que va a ser 1 dividido 1 un valor muy grande, que es igual a e a la -z, donde z es negativo, con lo cual menos por menos es más. SerÃa e elevado a un número muy grande, que da como resultado un número muy grande. Entonces, 1 dividido 1 más un número muy grande va a tender a ser un valor muy cercano a 0. De esta manera podemos terminar de pasar de resultados reales a resultados que siempre tiendan a ser o 1 o 0, que es nuestro objetivo en este problema. Ahora que planteamos nuestro problema como un problema de clasificación binaria donde el resultado es 0 o 1 y definimos la regresión logÃstica como una forma para resolver este problema, vamos a ver en el próximo video cómo definir la función de pérdida y de costo para resolver esto y optimizar el resultado logrado. [MÚSICA]