Estoy tratando de predecir un resultado binario - vamos a llamar "el Cáncer/cáncer de mama," después de este ejemplo aquí.
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:
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?