5 votos

Modelo desarrollado por optimizar una medida del rendimiento, pero evaluado por otro

Estoy tratando de predecir un resultado binario - vamos a llamar "el Cáncer/cáncer de mama," después de este ejemplo aquí.

2x2 contingency table

Por eso, $a$ se refiere a cáncer correctamente diagnosticados como tales, y así sucesivamente. Mediante regresión logística puedo encontrar los parámetros $\theta$ que minimizar la función de costo:

$J(\theta) = - \frac{1}{m} \displaystyle \sum_{i=1}^m [y^{(i)}\log (h_\theta (x^{(i)})) + (1 - y^{(i)})\log (1 - h_\theta(x^{(i)}))]$,

donde $h_\theta (x^{(i)})$ es la predicción del modelo, $y^{(i)})$ es el resultado, y $m$ es el número de ejemplos de formación. Después de Andrew Ng Coursera sujeto en aprendizaje de máquina tengo ningún problema en escribir una función de MATLAB que se encuentra parámetros adecuados:

function [J, grad] = costFunction(theta, X, y)
%COSTFUNCTION Compute cost and gradient for logistic regression
%   J = COSTFUNCTION(theta, X, y) computes the cost of using theta as the
%   parameter for logistic regression and the gradient of the cost
%   w.r.t. to the parameters.

m = length(y); % number of training examples
J = 0;
grad = zeros(size(theta));

the_hypothesis = sigmoid(X*theta);
first_part = y'*log(the_hypothesis);
second_part = (1-y)'*log(1-the_hypothesis);
J = -(1 / m) * sum(first_part + second_part);

grad = (1/m) * ((the_hypothesis-y)'*X);

end

Ahora estoy tratando de aplicar este material a mi propia área de investigación. Sin embargo, en última instancia, mis modelos no ser juzgado en relación a esta función de coste. En lugar de que van a ser juzgados en relación a un "skill score" de un tipo que se aplica tradicionalmente en mi área de investigación. Aquí están algunos ejemplos de la habilidad de las puntuaciones:

Examples of skill scores

Lo que yo realmente quiero es encontrar los parámetros que maximizan cualquier habilidad puntuación que tengo que lidiar. Así que digamos que me digan que vas a ser juzgado por el Peirce Habilidad de Puntuación", entonces yo acababa de editar mi función de costo y ejecutar mi modelo, y se producirían los parámetros que maximze que habilidad determinada puntuación. Sin embargo, no fue evidente para mí ¿cómo puedo hacer eso.

Soñar despierto acerca de este problema que se me ocurrió una solución cojo. Me estaba imaginando algo de donde puedo dividir los datos en la formación/cross-validation/conjuntos de la prueba y, a continuación, haga lo siguiente:

1. Fase de entrenamiento. Encontramos la mejor $\theta$ valores de acuerdo a la regresión logística en función de costo.
2. Cruz-fase de validación. Aplicamos distintos valores de umbral para las probabilidades predichas por los $\theta$s y ver cómo esto afecta el rendimiento en la calificación puntuación. Podríamos, por ejemplo, encontrar que la habilidad en la puntuación de rendimiento es mejor cuando el modelo previsto probabilidades de $\geq 0.45 $ se convierten $1$, mientras que los $< 0.45$ se convierten $0$.
3. Fase de prueba. Se aplica el $\theta$ y los valores de umbral se encuentra en las dos fases anteriores, y se aplicarán a los datos de prueba, esperemos que la consecución de una buena habilidad puntuación de rendimiento.

Sin embargo, lo que sería genial si había alguna manera de editar mi función de coste, y hacerlo directamente maximizar la habilidad de puntuación se me asignaron. Lo ideal sería que me acababa de editar mi regresión logística, la función de coste con una nueva función de coste que coincide con la habilidad de puntuación que estoy usando, y que no se ejecuten en cualquier problemas de computación (por ejemplo, local optima).

EDIT: Gracias a @deltaiv la respuesta, me doy cuenta de que me misspoke aquí - entiendo que yo había necesidad de cambiar el modelo, así como la función de costo. ¿Hay algún modelo y la función de costo 'partidos' una habilidad puntuación que podría estar interesado?

Es realista pensar que hay un modelo (y asociada a la función de coste) que vengan con los parámetros que directamente maximizar uno de los puntajes de aptitudes que me interesa? Así que tal vez este modelo hipotético producir probabilidades y un umbral, o tal vez sería producir probabilidades optimizar la habilidad de puntuación cuando alguna norma de umbral igual a 0.5 se aplica a ella, o tal vez es simplemente producir binario previsiones de 0 y 1. Estoy completamente abierto a la posibilidad de que un modelo no es viable, pero ¿por qué no es factible?

Si este modelo es inviable (o no), ¿qué debo hacer?

5voto

OmaL Puntos 106

Creo que hay un pequeño malentendido: la regresión logística (RL), por sí mismo, no es exactamente un clasificador, sino un modelo para la probabilidad condicional de a $P(Y=k|X=x)$ donde $k=0,1$ se asigna a la clase de etiquetas {Cáncer de mama, Cáncer}. En ML la terminología, creo que le llaman un modelo discriminativo, ya que los modelos de la probabilidad condicional, en contraposición a un modelo generativo, como por ejemplo la LDA, que los modelos de la probabilidad conjunta $P(Y=k,X=x)$. LR sólo se convierte en un clasificador cuando la pareja con una regla de decisión, que normalmente es algo como

if (phat > alpha) yhat = 1
else yhat = 0 

Y, a continuación, establezca $\alpha$ por validación cruzada para optimizar la precisión de la medida, que es lo que estás haciendo.


La función de costo es ya la "derecha" para LR, porque es sólo la estimación de máxima verosimilitud, bajo el supuesto de que los datos de entrenamiento es una muestra aleatoria. Para utilizar otra función de coste podría significar que usted no está estimar el $\theta$ mediante el uso de MLE, o que usted está usando otro modelo para la probabilidad condicional de a$Y$$X$ . Como cuestión de hecho, (regularización) de la bisagra de la pérdida, que es un costo diferente función, es la correcta función de costo de la SVM, que es un modelo diferente con respecto a LR. Por lo tanto te deja con básicamente dos opciones:

  1. sigue usando su función de coste y su procedimiento para la selección de $\alpha$. En la mayoría, se podría añadir ($L_2-$ o $L_1-$) regularización de su función de costo y ver si eso mejora el error de la prueba de la CV-selecciona el valor del parámetro de regularización $\lambda$. Yo esperaría que este para hacer una mejora en su actual procedimiento sólo si las clases son cerca linealmente separables, o si usted tiene un número de factores que es cercano o mayor que el número de puntos de entrenamiento, es decir, cuando la estimación de los parámetros de nonregularized un modelo de varianza grande, o cuando el nonregularized modelo no puede ser instalada en todos. BTW, $L_2- $regularización corresponde a un MAPA de estimación (en lugar de MLE) con una Gaussiana no antes de los parámetros, mientras que $L_1- $regularización corresponde a una de Laplace, no antes.
  2. agregar nuevos modelos a su piscina de modelos. Por ejemplo, intenta ajuste también LDA o SVM, y compararlos con LR mediante la validación cruzada. Estos son los diferentes modelos, y el uso de MLE llegar al objetivo de las funciones que son diferentes de la de registro de la pérdida que estaba utilizando. Sin embargo, lo hace en una serie de principios. Si usted utiliza las diferentes funciones de costo para estimar el modelo LR, no lo estarías haciendo MLE más.

EDITAR el OP fue modificado como consecuencia de mi respuesta, y ahora es diferente. Trato de tomar en cuenta las nuevas solicitudes, pero no creo que la estimación de los parámetros del modelo basado en la habilidad de las puntuaciones es inteligente. Yo todavía iba a ir con el intento de estimar el condicional y probabilidad conjunta con la mayor precisión posible, y sólo entonces, tratando de encontrar los umbrales (por validación cruzada) que optimizan la habilidad de las puntuaciones.

Deje $u(x)$ denotar la función de paso:

$$\begin{align} u(x) &= \left\{ \begin{array}{l} 1 \quad x\ge0 \\ 0 \quad x<0 \end{array} \right. \end{align}$$

If $\mathbf{X}=(1,x_1,\dots,x_d)$ is a vector of predictors (note that, with an abuse of notation, I included the constant $1$ in the vector of predictors) and $\boldsymbol{\beta}=(\beta_0,\dots,\beta_d)$ a vector of parameters, $u(\boldsymbol{\beta}^T\mathbf{X})$ is a linear classifier. We could find the $\boldsymbol{\beta}$ which minimize, for example, the FAR on the training set $\{(\mathbf{x}_i,y_i)\}_{i=1}^N$, i.e.

$$\min_{\boldsymbol{\beta}}\sum_{i=1}^N (1-y_i)u(\boldsymbol{\beta}^T\mathbf{x}_i)$$

Now, this objective function is obviously discontinuous, so optimization will be an hassle. Not only that, but there are infinitely many solutions - just consider that, whatever the training set, $\boldsymbol{\beta}=(\beta_0,0,\dots,0)$ minimizes FAR as long as $\beta_0<0$, because then $u(\boldsymbol{\beta}^T\mathbf{X})=u(\beta_0)=0$. And I haven't even touched the issue of the properties of this estimator: with MLE, we know that as long as the model is not misspecified, the estimator is consistent, asymptotically normal and efficient. But with this estimator? I have no idea. Still, you could try using it, compare to LR or SVM, and see what you get in terms of accuracy on the test set.

Of course, you could repeat similar considerations for other skill score-based loss functions: I don't think you would get much better results. In particular, I expect the issue of non-uniqueness to reappear. The reason why I expect that, is that skill scores are all discrete loss functions, i.e., they all take values in a finite set of size $N$. The parameter vector $\boldsymbol{\beta}$ instead is a continous variable: intuitively, if there's a $\boldsymbol{\beta}^*$ which minimizes the skill score, then there are infinitely many (for example, think of the values of $x$ which minimize $u(x)$). Por lo tanto, incluso si usted se considera una habilidad puntuación para el que no hay una solución trivial como la hay en el momento, usted todavía tiene que lidiar con la discontinuidad de la función de pérdida, y de la no-unicidad de los parámetros de estimación. Usted podría tratar de arreglar la última edición con la regularización.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X