Cuando tenemos múltiples características y queremos entrenar un modelo que pueda predecir el precio dadas esas características, podemos utilizar una regresión lineal multivariante. El modelo tendrá que aprender los parámetros (theta 0 a theta n) en el conjunto de datos de entrenamiento que se encuentra a continuación, de forma que si queremos predecir el precio de una casa que aún no se ha vendido, pueda darnos una predicción que se acerque más a lo que se venderá.
Practical Ideas for making Gradient Descent work well
Use feature scaling to help gradient descent converge faster. Get every feature between -1 and +1 range. It doesn’t have to be exactly in the -1 to +1 range but it should be close to that range.
2. In addition to dividing the feature by maximum value people sometimes use mean normalization.
3. If we plot the value of cost function after each iteration of gradient descent, we should see that it converges. Below is a graph that shows gradient descent is converging. The number of iterations that it can take for gradient descent to converge varies a lot.
Polynomial Regression
Let’s say we have a housing price data set that looks like below.
Then there are a few different models we might fit to this.
One thing we could do is fit a quadratic model. It doesn’t look like a straight line fits this data very well. But then we may decide that quadratic model doesn’t make sense because of a quadratic function, eventually this function comes back down and we don’t think housing prices should go down when the size goes up too high. So then maybe we might choose a different polynomial model and choose to use instead a cubic function, and where we have now a third-order term and we fit that where green line is a somewhat better fit to the data cause it doesn’t eventually come back down. Podemos hacer esto usando la maquinaria de la regresión lineal multivariante. Así que simplemente eligiendo tres características (un tamaño, otro cuadrado de tamaño y un tercer cubo de tamaño) y aplicando la maquinaria de la regresión lineal, podemos ajustar este modelo y terminar con un ajuste cúbico a los datos.
Lo importante aquí es tener en cuenta el escalado de las características. Así que si el tamaño de la casa oscila entre uno y mil, entonces el tamaño al cuadrado de la casa oscilará entre uno y un millón, y la tercera característica x al cubo, oscilará entre uno dos diez y el nueve, por lo que estas tres características toman rangos de valores muy diferentes, y es importante aplicar el escalado de características para el descenso de gradiente para conseguir que estén en rangos de valores comparables.
Otra opción razonable aquí podría ser decir que el precio de una casa es theta cero más theta uno veces el tamaño, y luego más theta dos veces la raíz cuadrada del tamaño.
Al tener conocimiento de la forma de una función de raíz cuadrada, y, en la forma de los datos, eligiendo diferentes características, a veces podemos obtener mejores modelos.
Parece un poco desconcertante, que con todas estas opciones de características diferentes, cómo decido qué características utilizar. En posteriores entradas, hablaremos de algunos algoritmos que elegirán automáticamente qué características se utilizan, y elegirán automáticamente si queremos ajustar una función cuadrática, o una función cúbica, o algo más.
Pero, hasta entonces, debemos saber que podemos elegir qué características utilizar, y mediante el diseño de diferentes características podemos ajustar funciones más complejas en nuestros datos que simplemente ajustar una línea recta a los datos.