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.

predict

Predecir etiquetas utilizando el árbol de clasificación

Descripción

label = predict(Mdl,X) Devuelve un vector de las etiquetas de clase previstas para los Datos predictores de la tabla o matriz, en función del árbol de clasificación entrenado, completo o compacto.XMdl

label = predict(Mdl,X,Name,Value) utiliza opciones adicionales especificadas por uno o más argumentos de par.Name,Value Por ejemplo, puede especificar la podar a un nivel determinado antes de predecir las etiquetas.Mdl

[label,score,node,cnum] = predict(___) utiliza cualquiera de los argumentos de entrada en las sintaxis anteriores y, además, devuelve:

  • Una matriz de puntuaciones de clasificación () que indica la probabilidad de que una etiqueta proviene de una clase determinada.Puntuación Para los árboles de clasificación, las puntuaciones son probabilidades posteriores. Para cada observación en, el corresponde al mínimo entre todas las clases.Xetiqueta de clase pronosticadacosto de clasificación errónea esperado

  • Vector de los números de nodo pronosticados para la clasificación ().node

  • Un vector de número de clase pronosticado para la clasificación ().cnum

Argumentos de entrada

expandir todo

Árbol de clasificación entrenado, especificado como un objeto de modelo o.ClassificationTreeCompactClassificationTree Es decir, es un modelo de clasificación entrenado devuelto por oMdlfitctree compact.

Datos de predictor que se clasificarán, especificados como una matriz o tabla numérica.

Cada fila de corresponde a una observación, y cada columna corresponde a una variable.X

  • Para una matriz numérica:

    • Las variables que componen las columnas de deben tener el mismo orden que las variables predictoras que entrenaron.XMdl

    • Si ha entrenado usando una tabla (por ejemplo,), entonces puede ser una matriz numérica si contiene todas las variables predictoras numéricas.MdlTblXTbl Para tratar los predictores numéricos como categóricos durante el entrenamiento, identifique los predictores categóricos utilizando el argumento de par nombre-valor de.TblCategoricalPredictorsfitctree Si contiene variables predictoras heterogéneas (por ejemplo, tipos de datos numéricos y categóricos) y es una matriz numérica, se produce un error.TblXPredecir

  • Para una tabla:

    • no admite variables de varias columnas ni matrices de celdas que no sean matrices de celdas de vectores de caracteres.Predecir

    • Si ha entrenado utilizando una tabla (por ejemplo,), todas las variables predictoras en deben tener los mismos nombres de variables y tipos de datos que los que entrenaron (almacenados en).MdlTblXMdlMdl.PredictorNames Sin embargo, el orden de columna de no necesita corresponder al orden de columna de. y puede contener variables adicionales (variables de respuesta, pesos de observación, etc.), pero las ignora.XTblTblXPredecir

    • Si entrenó con una matriz numérica, los nombres de los predictores y los nombres de las variables predictoras correspondientes deben ser los mismos.MdlMdl.PredictorNamesX Para especificar nombres de predictores durante el entrenamiento, vea el argumento de par nombre-valor de.PredictorNamesfitctree Todas las variables predictoras en deben ser vectores numéricos. puede contener variables adicionales (variables de respuesta, pesos de observación, etc.), pero las ignora.XXPredecir

Tipos de datos: table | double | single

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

Nivel de poda, especificado como el par separado por comas que consta de y un vector de enteros no negativos en orden ascendente o.'Subtrees''all'

Si especifica un vector, todos los elementos deben ser al menos y como máximo. indica el árbol completo, no podado e indica el árbol completamente podado (es decir, sólo el nodo raíz).0max(Mdl.PruneList)0max(Mdl.PruneList)

Si especifica,'all' predict opera en todos los subárboles (es decir, toda la secuencia de poda). Esta especificación equivale a usar.0:max(Mdl.PruneList)

predict ciruelas a cada nivel indicado en y, a continuación, estima los argumentos de salida correspondientes.MdlSubtrees El tamaño de determina el tamaño de algunos argumentos de salida.Subtrees

Para invocar, las propiedades y de deben estar no vacías.SubtreesPruneListPruneAlphaMdl En otras palabras, crece estableciendo, o podando usandoMdl'Prune','on'Mdl prune.

Ejemplo: 'Subtrees','all'

Tipos de datos: single | double | char | string

Argumentos de salida

expandir todo

, devuelto como vector o array.Las etiquetas de clase previstas Cada entrada de corresponde a la clase con el costo mínimo esperado para la fila correspondiente de.EtiquetaX

Supongamos que es un vector numérico que contiene elementos (para, ver) y tiene filas.SubtreesT'all'SubtreesXN

  • Si el tipo de datos de respuesta es y:char

    • = 1, entonces es una matriz de caracteres que contiene filas.TEtiquetaN Cada fila contiene la etiqueta pronosticada producida por subárbol.Subtrees

    • > 1, entonces es un array-por-Cell.TEtiquetaNT

  • De lo contrario, es un-por-array que tiene el mismo tipo de datos que la respuesta.EtiquetaNT (The software treats string arrays as cell arrays of character vectors.)

En los dos últimos casos, la columna j de contiene el vector de las etiquetas pronosticadas producidas por subárbolEtiqueta Subtrees(j).

Las probabilidades posteriores, devueltas como una matriz numérica de tamaño por-, donde es el número de observaciones (filas) en, y es el número de clases (in). es la probabilidad posterior de que la fila de es de clase.NKNXKMdl.ClassNamesscore(i,j)iXj

Si tiene elementos y tiene filas, entonces es un-por--por-Array, y y son-por-matrices.SubtreesTXNPuntuaciónNKTnodecnumNT

Números de nodo para las clases pronosticadas, devueltas como un vector numérico. Cada entrada corresponde al nodo pronosticado para la fila correspondiente de.MdlX

Los números de clase correspondientes a la predicción, devueltos como un vector numérico.labels Cada entrada de corresponde a un número de clase predicho para la fila correspondiente de.cnumX

Ejemplos

expandir todo

Examine las predicciones de algunas filas de un conjunto de datos que no se entrenan.

Cargue el conjunto de datos de iris de Fisher.

load fisheriris

Dividir los datos en formación (50%) y validación (50%) Establece.

n = size(meas,1); rng(1) % For reproducibility idxTrn = false(n,1); idxTrn(randsample(n,round(0.5*n))) = true; % Training set logical indices idxVal = idxTrn == false;                  % Validation set logical indices

Cultivar un árbol de clasificación usando el conjunto de entrenamiento.

Mdl = fitctree(meas(idxTrn,:),species(idxTrn));

Predecir etiquetas para los datos de validación. Cuente el número de observaciones mal clasificadas.

label = predict(Mdl,meas(idxVal,:)); label(randsample(numel(label),5)) % Display several predicted labels
ans = 5x1 cell array
    {'setosa'    }
    {'setosa'    }
    {'setosa'    }
    {'virginica' }
    {'versicolor'}

numMisclass = sum(~strcmp(label,species(idxVal)))
numMisclass = 3 

El software clasifica erróneamente tres observaciones fuera de la muestra.

Cargue el conjunto de datos de iris de Fisher.

load fisheriris

Dividir los datos en formación (50%) y validación (50%) Establece.

n = size(meas,1); rng(1) % For reproducibility idxTrn = false(n,1); idxTrn(randsample(n,round(0.5*n))) = true; % Training set logical indices idxVal = idxTrn == false;                  % Validation set logical indices

Aumente un árbol de clasificación utilizando el conjunto de entrenamiento y, a continuación, verlo.

Mdl = fitctree(meas(idxTrn,:),species(idxTrn)); view(Mdl,'Mode','graph')

El árbol resultante tiene cuatro niveles.

Estimar las probabilidades posteriores para el conjunto de prueba utilizando subárboles podados a los niveles 1 y 3.

[~,Posterior] = predict(Mdl,meas(idxVal,:),'SubTrees',[1 3]); Mdl.ClassNames
ans = 3x1 cell array
    {'setosa'    }
    {'versicolor'}
    {'virginica' }

Posterior(randsample(size(Posterior,1),5),:,:),...     % Display several posterior probabilities
ans =  ans(:,:,1) =      1.0000         0         0     1.0000         0         0     1.0000         0         0          0         0    1.0000          0    0.8571    0.1429   ans(:,:,2) =      0.3733    0.3200    0.3067     0.3733    0.3200    0.3067     0.3733    0.3200    0.3067     0.3733    0.3200    0.3067     0.3733    0.3200    0.3067  

Los elementos de son probabilidades posteriores de clase:Posterior

  • Las filas corresponden a las observaciones del conjunto de validación.

  • Las columnas corresponden a las clases enumeradas en.Mdl.ClassNames

  • Las páginas corresponden a los subárboles.

El subárbol podado al nivel 1 es más seguro de sus predicciones que el subárbol podado al nivel 3 (es decir, el nodo raíz).

Más acerca de

expandir todo

Algoritmos

genera predicciones siguiendo las ramas de hasta que alcanza un nodo hoja o un valor que falta.PredecirMdl Si llega a un nodo hoja, devuelve la clasificación de ese nodo.Predecir

Si llega a un nodo con un valor que falta para un predictor, su comportamiento depende de la configuración del par nombre-valor cuando se construye.PredecirSurrogatefitctreeMdl

  • =Surrogate'off' (valor predeterminado): devuelve la etiqueta con el mayor número de muestras de formación que llegan al nodo.Predecir

  • =Surrogate'on' : utiliza la mejor división sustituta en el nodo.Predecir Si faltan todas las variables de división suplente con positivo, devuelve la etiqueta con el mayor número de muestras de entrenamiento que llegan al nodo.medida predictiva de asociaciónPredecir Para obtener una definición, consulte.Medida predictiva de la Asociación

Capacidades ampliadas

Introducido en R2011a