Vahid Mirjalili

Python Machine Learning


Скачать книгу

red, la combinación lineal de pesos y las características de la muestra, .

Observa que, de forma similar a la convención que utilizamos en el Capítulo 2, Entrenar algoritmos simples de aprendizaje automático para clasificación, se refiere al parámetro del sesgo y es un valor de entrada adicional que proporcionamos () que es igual a 1.

      Ahora vamos a mostrar gráficamente la función sigmoide para diferentes valores del rango de -7 a 7 para ver qué aspecto tiene:

      >>> import matplotlib.pyplot as plt

      >>> import numpy as np

      >>> def sigmoid(z):

      ... return 1.0 / (1.0 + np.exp(-z))

      >>> z = np.arange(-7, 7, 0.1)

      >>> phi_z = sigmoid(z)

      >>> plt.plot(z, phi_z)

      >>> plt.axvline(0.0, color='k')

      >>> plt.ylim(-0.1, 1.1)

      >>> plt.xlabel('z')

      >>> plt.ylabel('$\phi (z)$')

      >>> # y axis ticks and gridline

      >>> plt.yticks([0.0, 0.5, 1.0])

      >>> ax = plt.gca()

      >>> ax.yaxis.grid(True)

      >>> plt.show()

      Como resultado de la ejecución del código del ejemplo anterior, deberíamos ver la curva en forma de S (sigmoide):

      Podemos ver que se acerca a 1 si z se dirige hacia el infinito (), puesto que pasa a ser muy pequeño para los amplios valores de z. De forma parecida, se dirige hacia 0 para como resultado de un denominador cada vez más grande. Así, llegamos a la conclusión de que la función sigmoide toma valores de números reales como entrada y los transforma en valores del rango [0, 1] con una intercepción en .

      Para crear una intuición para el modelo de regresión lógica, podemos relacionarlo con el Capítulo 2, Entrenar algoritmos simples de aprendizaje automático para clasificación. En Adaline, utilizamos la función de identidad como función de activación. En regresión lógica, esta función de activación simplemente se convierte en la función sigmoide que hemos definido anteriormente. La diferencia entre Adaline y la regresión logística se muestra en la siguiente imagen:

      La salida de la función sigmoide se interpreta como la probabilidad de que una muestra concreta pertenezca a la clase 1, , dadas sus características x parametrizadas por los pesos w. Por ejemplo, si calculamos para una muestra de flor en particular, significa que la oportunidad de que esta muestra sea una flor Iris-versicolor es del 0 %. Por lo tanto, la probabilidad de que esta flor sea una Iris-setosa se puede calcular como o 20 %. La probabilidad predicha se puede, simplemente, convertir después en un resultado binario mediante una función umbral:

      Si miramos el gráfico anterior de la función sigmoide, este equivale a lo siguiente:

      De hecho, existen muchas aplicaciones en las cuales no solo nos interesan las etiquetas de clase predichas, sino que también la estimación de la probabilidad de la pertenencia a una clase resulta particularmente útil (la salida de la función sigmoide antes de aplicar la función umbral). La regresión logística se utiliza en la previsión meteorológica, por ejemplo, no solo para predecir si lloverá un día en concreto sino también para informar de la posibilidad de lluvia. De forma parecida, la regresión logística se puede utilizar para predecir la posibilidad de que un paciente tenga una enfermedad concreta dados determinados síntomas, razón por la cual goza de una gran popularidad en el campo de la medicina.

      Ahora que ya has aprendido cómo podemos utilizar el modelo de regresión logística para predecir probabilidades y etiquetas de clase, vamos a hablar brevemente acerca de cómo debemos ajustar los parámetros del modelo, por ejemplo, los pesos w. En el capítulo anterior, definimos la suma de errores cuadráticos de la función de coste de la siguiente manera:

      Minimizamos esta función para aprender los pesos w para nuestro modelo de clasificación Adaline. Para explicar cómo podemos derivar la función de coste para la regresión logística, en primer lugar debemos definir la probabilidad L que queremos maximizar al crear un modelo de regresión logística, asumiendo que las muestras individuales de nuestro conjunto de datos son independientes unas de otras. La fórmula es como esta:

      A la práctica, es más fácil maximizar el logaritmo (natural) de esta ecuación, denominada función de probabilidad logarítmica:

      En primer lugar, la aplicación de la función log reduce el potencial para el desbordamiento numérico, que puede ocurrir si las probabilidades son muy pequeñas. En segundo lugar, podemos convertir el producto de factores en una suma de factores, que hace más fácil obtener la derivada de esta función mediante el truco de la suma, como recordarás del cálculo.

      Ahora, podríamos utilizar un algoritmo de optimización como el ascenso del gradiente para maximizar esta función de probabilidad logarítmica. De forma alternativa, vamos a volver a escribir la probabilidad logarítmica como una función de coste J que puede ser minimizada mediante el descenso del gradiente, como en el Capítulo 2, Entrenar algoritmos simples de aprendizaje automático para clasificación:

      Para entender mejor esta función de coste, echemos un vistazo al coste que calculamos para una instancia de entrenamiento de muestra única:

      Si miramos la ecuación, podemos ver que el primer término es cero si