Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

fitSVMPosterior

Ajuste las probabilidades posteriores

Descripción

ejemplo

ScoreSVMModel = fitSVMPosterior(SVMModel) Devuelve, que es un clasificador entrenado de máquina de vectores de soporte (SVM) que contiene la función óptima de transformación de probabilidad de puntuación a posterior para el aprendizaje de dos clases.ScoreSVMModel

El software se ajusta a la función de transformación de probabilidad de puntuación a posterior adecuada utilizando el clasificador de SVM, y mediante la validación cruzada utilizando los datos del predictor almacenado () y las etiquetas de clase ().SVMModelSVMModel.XSVMModel.Y La función de transformación calcula la probabilidad posterior de que una observación se clasifica en la clase positiva ().SVMModel.Classnames(2)

  • Si las clases son inseparables, la función de transformación es la.función sigmoide

  • Si las clases son perfectamente separables, la función de transformación es la.función de paso

  • En el aprendizaje de dos clases, si una de las dos categorías tiene una frecuencia relativa de 0, la función de transformación es la. no es apropiado para el aprendizaje de una sola clase.función constantefitSVMPosterior

  • Si es un clasificador, el software estima la función de transformación óptima mediante validación cruzada de 10 veces como se describe en.SVMModelClassificationSVM[1] De lo contrario, debe ser un clasificador. especifica el método de validación cruzada.SVMModelClassificationPartitionedModelSVMModel

  • El software almacena la función de transformación óptima en.ScoreSVMModel.ScoreTransform

ScoreSVMModel = fitSVMPosterior(SVMModel,TBL,ResponseVarName) Devuelve un clasificador de vectores de soporte entrenado que contiene la función de transformación del clasificador SVM entrenado y compacto.SVMModel El software estima la función de transformación de puntuación utilizando los Datos predictores en las etiquetas de tabla y clase.TBLTBL.ResponseVarName

ScoreSVMModel = fitSVMPosterior(SVMModel,TBL,Y) Devuelve un clasificador de vectores de soporte entrenado que contiene la función de transformación del clasificador SVM entrenado y compacto.SVMModel El software estima la función de transformación de puntuación utilizando los Datos predictores en las etiquetas de tabla y clase.TBLY

ejemplo

ScoreSVMModel = fitSVMPosterior(SVMModel,X,Y) Devuelve un clasificador de vectores de soporte entrenado que contiene la función de transformación del clasificador SVM entrenado y compacto.SVMModel El software estima la función de transformación de puntuación utilizando Datos predictores y etiquetas de clase.XY

ejemplo

ScoreSVMModel = fitSVMPosterior(___,Name,Value) utiliza opciones adicionales especificadas por uno o más argumentos de par proporcionados es un clasificador.Name,ValueSVMModelClassificationSVM Por ejemplo, puede especificar el número de pliegues para utilizar la validación cruzada en pliegue.k

ejemplo

[ScoreSVMModel,ScoreTransform] = fitSVMPosterior(___) Además devuelve los parámetros de la función de transformación () utilizando cualquiera de los argumentos de entrada en las sintaxis anteriores.ScoreTransform

Ejemplos

contraer todo

Cargue el conjunto de datos de iris de Fisher. Entrena el clasificador usando las longitudes y anchos del pétalo, y elimina las especies virginicas de los datos.

load fisheriris classKeep = ~strcmp(species,'virginica'); X = meas(classKeep,3:4); y = species(classKeep);  gscatter(X(:,1),X(:,2),y); title('Scatter Diagram of Iris Measurements') xlabel('Petal length') ylabel('Petal width') legend('Setosa','Versicolor')

Las clases son perfectamente separables. Por lo tanto, la función de transformación de puntuación es una función de paso.

Entrenar un clasificador SVM utilizando los datos. Cross valida el clasificador usando la validación cruzada de 10 veces (el valor predeterminado).

rng(1); CVSVMModel = fitcsvm(X,y,'CrossVal','on');

es un clasificador de SVM entrenado.CVSVMModelClassificationPartitionedModel

Estime la función de paso que transforma las puntuaciones en probabilidades posteriores.

[ScoreCVSVMModel,ScoreParameters] = fitSVMPosterior(CVSVMModel);
Warning: Classes are perfectly separated. The optimal score-to-posterior transformation is a step function. 

hace lo siguiente:fitSVMPosterior

  • Utiliza los datos almacenados en el software para ajustarse a la función de transformaciónCVSVMModel

  • Advierte cada vez que las clases son separables

  • Almacena la función Step enScoreCSVMModel.ScoreTransform

Mostrar el tipo de función de puntuación y sus valores de parámetro.

ScoreParameters
ScoreParameters = struct with fields:
                        Type: 'step'
                  LowerBound: -0.8431
                  UpperBound: 0.6897
    PositiveClassProbability: 0.5000

es una matriz de estructura con cuatro campos:ScoreParameters

  • El tipo de función de transformación de Partitura ()Type

  • La puntuación correspondiente al límite de clase negativo ()LowerBound

  • La puntuación correspondiente al límite de la clase positiva ()UpperBound

  • La probabilidad de clase positiva ()PositiveClassProbability

Puesto que las clases son separables, la función Step transforma la partitura a cualquiera o, que es la probabilidad posterior de que una observación es un Iris versicolor.01

Cargue el conjunto de datos.ionosphere

load ionosphere

Las clases de este conjunto de datos no son separables.

Entrenar un clasificador SVM. Validación cruzada mediante la verificación cruzada de 10 veces (el valor predeterminado). Es una buena práctica estandarizar los predictores y especificar el orden de la clase.

rng(1) % For reproducibility CVSVMModel = fitcsvm(X,Y,'ClassNames',{'b','g'},'Standardize',true,...     'CrossVal','on'); ScoreTransform = CVSVMModel.ScoreTransform
ScoreTransform =  'none' 

es un clasificador de SVM entrenado.CVSVMModelClassificationPartitionedModel La clase positiva es.'g' La propiedad es.ScoreTransformnone

Estimar la función de puntuación óptima para la asignación de puntuaciones de observación a las probabilidades posteriores de una observación que se clasifica como.'g'

[ScoreCVSVMModel,ScoreParameters] = fitSVMPosterior(CVSVMModel); ScoreTransform = ScoreCVSVMModel.ScoreTransform
ScoreTransform =  '@(S)sigmoid(S,-9.482017e-01,-1.218360e-01)' 
ScoreParameters
ScoreParameters = struct with fields:
         Type: 'sigmoid'
        Slope: -0.9482
    Intercept: -0.1218

es la función óptima de transformación de puntuación. contiene la función de transformación de partitura, la estimación de pendiente y la estimación de intercepción.ScoreTransformScoreParameters

Puede estimar la muestra de prueba, las probabilidades posteriores pasando a.ScoreCVSVMModelkfoldPredict

Estimar las probabilidades posteriores de clase positiva para el conjunto de pruebas de un algoritmo SVM.

Cargue el conjunto de datos.ionosphere

load ionosphere

Entrenar un clasificador SVM. Especifique una muestra de retención del 20%. Es una buena práctica estandarizar los predictores y especificar el orden de la clase.

rng(1) % For reproducibility CVSVMModel = fitcsvm(X,Y,'Holdout',0.2,'Standardize',true,...     'ClassNames',{'b','g'});

es un clasificador con validación cruzada entrenado.CVSVMModelClassificationPartitionedModel

Estimar la función de puntuación óptima para la asignación de puntuaciones de observación a las probabilidades posteriores de una observación que se clasifica como.'g'

ScoreCVSVMModel = fitSVMPosterior(CVSVMModel);

es un clasificador cruzado validado que contiene la función de transformación de puntuación óptima estimada a partir de los datos de entrenamiento.ScoreSVMModelClassificationPartitionedModel

Calcule las probabilidades posteriores de la clase positiva fuera de la muestra. Visualice los resultados de las primeras 10 observaciones fuera de la muestra.

[~,OOSPostProbs] = kfoldPredict(ScoreCVSVMModel); indx = ~isnan(OOSPostProbs(:,2)); hoObs = find(indx); % Holdout observation numbers OOSPostProbs = [hoObs, OOSPostProbs(indx,2)]; table(OOSPostProbs(1:10,1),OOSPostProbs(1:10,2),...     'VariableNames',{'ObservationIndex','PosteriorProbability'})
ans=10×2 table
    ObservationIndex    PosteriorProbability
    ________________    ____________________

            6                  0.17379      
            7                  0.89639      
            8                0.0076593      
            9                  0.91603      
           16                 0.026714      
           22                4.607e-06      
           23                   0.9024      
           24                2.413e-06      
           38                0.0004266      
           41                  0.86427      

Argumentos de entrada

contraer todo

Clasificador de SVM entrenado, especificado como a, o clasificador.ClassificationSVMCompactClassificationSVMClassificationPartitionedModel

Si es un clasificador, puede establecer argumentos opcionales de par nombre-valor.SVMModelClassificationSVM

Si es un clasificador, debe introducir los Datos predictores y las etiquetas de clase.SVMModelCompactClassificationSVMXY

Datos de ejemplo, especificados como una tabla. Cada fila de corresponde a una observación, y cada columna corresponde a una variable predictora.TBL Opcionalmente, puede contener columnas adicionales para la variable de respuesta y ponderaciones de observación. debe contener todos los predictores utilizados para entrenar.TBLTBLSVMModel No se permiten las variables de varias columnas ni matrices de celdas que no sean matrices de celdas de vectores de caracteres.

Si contiene la variable de respuesta utilizada para entrenar, no es necesario especificar o.TBLSVMModelResponseVarNameY

Si ha entrenado con datos de ejemplo contenidos en una tabla, los datos de entrada paraSVMModel fitSVMPosterior también debe estar en una tabla.

Si se establece en el entrenamiento, entonces el software estandariza las columnas de los Datos predictores utilizando los medios correspondientes en y las desviaciones estándar en.'Standardize',truefitcsvmSVMModelSVMModel.MuSVMModel.Sigma

Tipos de datos: table

Datos de predictor utilizados para estimar la función de transformación de la probabilidad de la puntuación a la posterior, especificada como una matriz.

Cada fila de corresponde a una observación (también conocida como una instancia o ejemplo), y cada columna corresponde a una variable (también conocida como una característica).X

La longitud y el número de filas en debe ser igual.YX

Si se establece cuando se entrena, el software se ajusta a las estimaciones de los parámetros de la función de transformación utilizando datos estandarizados.'Standardize',truefitcsvmSVMModel

Tipos de datos: double | single

Nombre de variable de respuesta, especificado como el nombre de una variable en.TBL Si contiene la variable de respuesta utilizada para entrenar, no es necesario especificar.TBLSVMModelResponseVarName

Si especifica, debe hacerlo como un vector de caracteres o un escalar de cadena.ResponseVarName Por ejemplo, si la variable de respuesta se almacena como, a continuación, especifique as.TBL.ResponseResponseVarName'Response' De lo contrario, el software trata todas las columnas de, incluidos, como predictores.TBLTBL.Response

La variable de respuesta debe ser una matriz categórica, de caracteres o de cadena, un vector lógico o numérico o una matriz de vectores de caracteres. Si la variable de respuesta es una matriz de caracteres, cada elemento debe corresponder a una fila de la matriz.

Tipos de datos: char | string

Etiquetas de clase que se utilizan para estimar la función de transformación de la puntuación a la probabilidad posterior, especificada como una matriz categórica, de caracteres o de cadena, un vector lógico o numérico, o una matriz de celdas de vectores de caracteres.

Si es una matriz de caracteres, cada elemento debe corresponder a una etiqueta de clase.Y

La longitud y el número de filas en debe ser igual.YX

Tipos de datos: categorical | char | string | logical | single | double | cell

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: realiza la validación cruzada de 8 veces cuando es un clasificador.'KFold',8SVMModelClassificationSVM

Partición de validación cruzada utilizada para calcular la función de transformación, especificada como el par separado por comas que consta de y un objeto de partición creado por.'CVPartition'cvpartitioncvpartition Sólo se puede utilizar una de estas cuatro opciones a la vez para crear un modelo con validación cruzada:,, o.'KFold''Holdout''Leaveout''CVPartition'

El argumento de par nombre-valor de divide los datos en subconjuntos mediante.crossvalfitcsvmcvpartition

Ejemplo: Supongamos que crea una partición aleatoria para la validación cruzada de 5 veces en 500 observaciones mediante el uso de.cvp = cvpartition(500,'KFold',5) A continuación, puede especificar el modelo con validación cruzada mediante.'CVPartition',cvp

Fracción de los datos para la validación de exclusión utilizada para calcular la función de transformación, especificada como el par separado por comas que consta de y un valor escalar en el intervalo (0,1).'Holdout' La validación de exclusión prueba la fracción especificada de los datos y utiliza los datos restantes para el entrenamiento.

Sólo se puede utilizar una de estas cuatro opciones a la vez para crear un modelo con validación cruzada:,, o.'KFold''Holdout''Leaveout''CVPartition'

Ejemplo: 'Holdout',0.1

Tipos de datos: double | single

Número de pliegues que se usarán al calcular la función de transformación, especificado como el par separado por comas que consta de un valor entero positivo mayor que 1.'KFold'

Sólo se puede utilizar una de estas cuatro opciones a la vez para crear un modelo con validación cruzada:,, o.'KFold''Holdout''Leaveout''CVPartition'

Ejemplo: 'KFold',8

Tipos de datos: single | double

Leave-One-out marca de validación cruzada que indica si se usa la validación cruzada de Leave-One-out para calcular la función de transformación, especificada como el par separado por comas que consta de y o.'Leaveout''on''off' Utilice la validación cruzada de Leave-One-out especificando.'Leaveout','on'

Sólo se puede utilizar una de estas cuatro opciones a la vez para crear un modelo con validación cruzada:,, o.'KFold''Holdout''Leaveout''CVPartition'

Ejemplo: 'Leaveout','on'

Argumentos de salida

contraer todo

Clasificador de SVM entrenado que contiene la función de transformación de puntuación estimada, devuelta como un, o clasificador.ClassificationSVMCompactClassificationSVMClassificationPartitionedModel

El tipo de clasificador es el mismo que el tipo de clasificador.ScoreSVMModelSVMModel

Para estimar las probabilidades posteriores, pasar y pronostique datos paraScoreSVMModel predict. Si se establece para entrenar, a continuación, estandariza las columnas de uso de los medios correspondientes en y desviaciones estándar en.'Standardize',truefitcsvmSVMModelPredecirXSVMModel.MuSVMModel.Sigma

Parámetros óptimos de función de transformación de puntuación a posterior probabilidad, especificados como una matriz de estructura. Si el campo es:Type

  • , entonces tiene estos campos:sigmoidScoreTransform

    • — El valor de laSlopeAfunción sigmoide

    • — El valor de la función sigmoideInterceptB

  • , entonces tiene estos campos:stepScoreTransform

    • : el valor de en el. Representa:PositiveClassProbabilityπfunción de pasoπ

      • La probabilidad de que una observación esté en la clase positiva.

      • La probabilidad posterior de que una puntuación esté en el intervalo (,).LowerBoundUpperBound

    • : el valorLowerBound maxyn=1sn en la función Step. Representa el límite inferior del intervalo que asigna la probabilidad posterior de estar en la clase positiva a las puntuaciones.PositiveClassProbability Cualquier observación con una puntuación menor que la probabilidad posterior de ser la clase positiva.LowerBound0

    • : el valorUpperBound minyn=+1sn en la función Step. Representa el límite superior del intervalo que asigna la probabilidad posterior de estar en la clase positiva.PositiveClassProbability Cualquier observación con una puntuación mayor que la probabilidad posterior de ser la clase positiva.UpperBound1

  • , a continuación, contiene el nombre de la predicción de clase.constantScoreTransform.PredictedClass

    Este resultado es el mismo que.SVMModel.ClassNames La probabilidad posterior de una observación es siempre.ScoreTransform.PredictedClass1

Más acerca de

contraer todo

Función sigmoide

La función sigmoide que asigna la puntuación sj correspondiente a la observación a la probabilidad posterior de la clase positiva esj

P(sj)=11+exp(Asj+B).

Si el valor del campo es, a continuación, los parámetros y corresponden a los campos y de, respectivamente.TypeScoreTransformsigmoidABScaleInterceptScoreTransform

Función Step

La función de paso que asigna la puntuación sj correspondiente a la observación a la probabilidad posterior de la clase positiva esj

P(sj)={0;s<maxyk=1skπ;maxyk=1sksjminyk=+1sk1;sj>minyk=+1sk,

Dónde:

  • sj es la puntuación de la observación.j

  • + 1 y – 1 denotan las clases positivas y negativas, respectivamente.

  • es la probabilidad previa de que una observación esté en la clase positiva.π

Si el valor del campo es, entonces las cantidadesTypeScoreTransformstep maxyk=1sk Y minyk=+1sk corresponden a los campos y de, respectivamente.LowerBoundUpperBoundScoreTransform

Función constante

La función constante asigna todas las puntuaciones de una muestra a las probabilidades posteriores 1 o 0.

Si todas las observaciones tienen probabilidad posterior 1, entonces se espera que vengan de la clase positiva.

Si todas las observaciones tienen una probabilidad posterior de 0, no se espera que vengan de la clase positiva.

Sugerencias

  • Este proceso describe una manera de predecir probabilidades posteriores de clase positiva.

    1. Entrenar un clasificador SVM pasando los datos a.fitcsvm El resultado es un clasificador de SVM entrenado, como, que almacena los datos.SVMModel El software establece la función de transformación de puntuación Property () en.SVMModel.ScoreTransformationnone

    2. Pase el clasificador de SVM entrenado a o.SVMModelfitSVMPosteriorfitPosterior El resultado, por ejemplo, es el mismo clasificador de SVM entrenado que, excepto los conjuntos de software para la función de transformación de puntuación óptima.ScoreSVMModelSVMModelScoreSVMModel.ScoreTransformation

    3. Pase la matriz de Datos predictores y el clasificador de SVM entrenado que contiene la función de transformación de puntuación óptima () a.ScoreSVMModelPredecir La segunda columna en el segundo argumento de salida de almacena las probabilidades posteriores de clase positiva correspondientes a cada fila de la matriz de Datos predictores.Predecir

      Si omite el paso 2, devuelve la puntuación de clase positiva en lugar de la probabilidad posterior de clase positiva.Predecir

  • Después de ajustar las probabilidades posteriores, puede generar código de C/C++ que predice etiquetas para nuevos datos. La generación de código C/C++ requiere MATLAB®Coder™. Para obtener más información, consulte.Introducción a la generación de código

Algoritmos

Si vuelve a estimar la función de transformación puntuación a posterior probabilidad, es decir, si pasa un clasificador SVM a o y su propiedad no es, entonces el software:fitPosteriorfitSVMPosteriorScoreTransformnone

  • Muestra una advertencia

  • Restablece la función de transformación original antes de estimar la nueva'none'

Referencias

[1] Platt, J. “Probabilistic outputs for support vector machines and comparisons to regularized likelihood methods”. In: Advances in Large Margin Classifiers. Cambridge, MA: The MIT Press, 2000, pp. 61–74.

Introducido en R2014a