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.

fitctree

Ajustar árbol de decisión binario para la clasificación multiclase

Descripción

tree = fitctree(Tbl,ResponseVarName) devuelve un árbol de decisión de clasificación binaria ajustado basado en las variables de entrada (también conocidas como predictores, entidades o atributos) contenidas en la tabla y la salida (respuesta o etiquetas) contenidaen en .TblTbl.ResponseVarName El árbol binario devuelto divide los nodos de bifurcación en función de los valores de una columna de .Tbl

tree = fitctree(Tbl,formula) devuelve un árbol de decisión de clasificación binaria ajustado basado en las variables de entrada contenidas en la tabla. es un modelo explicativo de la respuesta y un subconjunto de variables predictoras utilizadas para encajar .TblFórmulaTbltree

tree = fitctree(Tbl,Y) devuelve un árbol de decisión de clasificación binaria ajustado basado en las variables de entrada contenidas en la tabla y la salida en vector .TblY

ejemplo

tree = fitctree(X,Y) devuelve un árbol de decisión de clasificación binaria ajustado basado en las variables de entrada contenidas en la matriz y la salida.XY El árbol binario devuelto divide los nodos de bifurcación en función de los valores de una columna de .X

ejemplo

tree = fitctree(___,Name,Value) se ajusta a un árbol con opciones adicionales especificadas por uno o varios argumentos de par nombre-valor, utilizando cualquiera de las sintaxis anteriores. Por ejemplo, puede especificar el algoritmo utilizado para encontrar la mejor división en un predictor categórico, hacer crecer un árbol validado entre cruces o retener una fracción de los datos de entrada para la validación.

Ejemplos

contraer todo

Haga crecer un árbol de clasificación utilizando el conjunto de datos.ionosphere

load ionosphere tc = fitctree(X,Y)
tc =    ClassificationTree              ResponseName: 'Y'     CategoricalPredictors: []                ClassNames: {'b'  'g'}            ScoreTransform: 'none'           NumObservations: 351     Properties, Methods  

Puede controlar la profundidad de los árboles utilizando los parámetros de par , , o nombre-valor. árboles de decisión profundos por defecto.MaxNumSplitsMinLeafSizeMinParentSizefitctree Puede cultivar árboles menos profundos para reducir la complejidad del modelo o el tiempo de cálculo.

Cargue el conjunto de datos.ionosphere

load ionosphere

Los valores predeterminados de los controladores de profundidad de árbol para el cultivo de árboles de clasificación son:

  • Para. es el tamaño de la muestra de entrenamiento.n - 1MaxNumSplitsn

  • Para.1MinLeafSize

  • Para.10MinParentSize

Estos valores predeterminados tienden a crecer árboles profundos para grandes tamaños de muestra de entrenamiento.

Entrene un árbol de clasificación utilizando los valores predeterminados para el control de profundidad de árbol. Valide el modelo de forma cruzada mediante la validación cruzada de 10 veces.

rng(1); % For reproducibility MdlDefault = fitctree(X,Y,'CrossVal','on');

Dibuje un histograma del número de divisiones impuestas en los árboles. Además, ver uno de los árboles.

numBranches = @(x)sum(x.IsBranch); mdlDefaultNumSplits = cellfun(numBranches, MdlDefault.Trained);  figure; histogram(mdlDefaultNumSplits)

 view(MdlDefault.Trained{1},'Mode','graph')

El número medio de divisiones es de alrededor de 15.

Supongamos que desea un árbol de clasificación que no sea tan complejo (profundo) como los entrenados utilizando el número predeterminado de divisiones. Entrene otro árbol de clasificación, pero establezca el número máximo de divisiones en 7, que es aproximadamente la mitad del número medio de divisiones del árbol de clasificación predeterminado. Valide el modelo de forma cruzada mediante la validación cruzada de 10 veces.

Mdl7 = fitctree(X,Y,'MaxNumSplits',7,'CrossVal','on'); view(Mdl7.Trained{1},'Mode','graph')

Compare los errores de clasificación de validación cruzada de los modelos.

classErrorDefault = kfoldLoss(MdlDefault)
classErrorDefault = 0.1140 
classError7 = kfoldLoss(Mdl7)
classError7 = 0.1254 

es mucho menos complejo y funciona sólo un poco peor que .Mdl7MdlDefault

En este ejemplo se muestra cómo optimizar los hiperparámetros automáticamente mediante .fitctree El ejemplo utiliza los datos de iris de Fisher.

Cargue los datos del iris de Fisher.

load fisheriris

Optimice la pérdida de validación cruzada del clasificador, utilizando los datos para predecir la respuesta en .measspecies

X = meas; Y = species; Mdl = fitctree(X,Y,'OptimizeHyperparameters','auto')
|======================================================================================| | Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   |  MinLeafSize | |      | result |             | runtime     | (observed)  | (estim.)    |              | |======================================================================================| |    1 | Best   |    0.066667 |     0.41203 |    0.066667 |    0.066667 |           31 | 
|    2 | Accept |    0.066667 |     0.21244 |    0.066667 |    0.066667 |           12 | 
|    3 | Best   |        0.04 |     0.12629 |        0.04 |    0.040003 |            2 | 
|    4 | Accept |     0.66667 |     0.11524 |        0.04 |     0.15796 |           73 | 
|    5 | Accept |        0.04 |     0.14637 |        0.04 |    0.040009 |            2 | 
|    6 | Accept |     0.66667 |    0.095605 |        0.04 |    0.040012 |           74 | 
|    7 | Accept |    0.066667 |    0.096874 |        0.04 |    0.040012 |           20 | 
|    8 | Accept |        0.04 |     0.18812 |        0.04 |    0.040008 |            4 | 
|    9 | Best   |    0.033333 |     0.12957 |    0.033333 |     0.03335 |            1 | 
|   10 | Accept |    0.066667 |     0.09726 |    0.033333 |     0.03335 |            7 | 
|   11 | Accept |        0.04 |     0.11791 |    0.033333 |    0.033348 |            3 | 
|   12 | Accept |    0.066667 |    0.089488 |    0.033333 |    0.033348 |           26 | 
|   13 | Accept |    0.046667 |    0.092183 |    0.033333 |    0.033347 |            5 | 
|   14 | Accept |    0.033333 |     0.21057 |    0.033333 |     0.03334 |            1 | 
|   15 | Accept |    0.066667 |     0.29291 |    0.033333 |    0.033339 |           15 | 
|   16 | Accept |    0.033333 |     0.12572 |    0.033333 |    0.033337 |            1 | 
|   17 | Accept |    0.033333 |    0.096893 |    0.033333 |    0.033336 |            1 | 
|   18 | Accept |     0.33333 |     0.20776 |    0.033333 |    0.033336 |           43 | 
|   19 | Accept |    0.066667 |     0.14112 |    0.033333 |    0.033336 |            9 | 
|   20 | Accept |    0.066667 |     0.12432 |    0.033333 |    0.033336 |            6 | 
|======================================================================================| | Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   |  MinLeafSize | |      | result |             | runtime     | (observed)  | (estim.)    |              | |======================================================================================| |   21 | Accept |    0.066667 |    0.092634 |    0.033333 |    0.033336 |           17 | 
|   22 | Accept |    0.066667 |     0.11478 |    0.033333 |    0.033336 |           10 | 
|   23 | Accept |    0.066667 |     0.17463 |    0.033333 |    0.033336 |           36 | 
|   24 | Accept |     0.33333 |      0.1678 |    0.033333 |    0.034075 |           54 | 
|   25 | Accept |        0.04 |      0.2909 |    0.033333 |    0.034054 |            2 | 
|   26 | Accept |        0.04 |     0.22555 |    0.033333 |    0.034022 |            3 | 
|   27 | Accept |        0.04 |     0.13497 |    0.033333 |    0.033997 |            4 | 
|   28 | Accept |    0.066667 |    0.095755 |    0.033333 |    0.033973 |           23 | 
|   29 | Accept |    0.066667 |     0.13294 |    0.033333 |    0.033946 |            8 | 
|   30 | Accept |    0.066667 |     0.18313 |    0.033333 |    0.033922 |           13 | 

__________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 52.8994 seconds. Total objective function evaluation time: 4.7317  Best observed feasible point:     MinLeafSize     ___________           1       Observed objective function value = 0.033333 Estimated objective function value = 0.033922 Function evaluation time = 0.12957  Best estimated feasible point (according to models):     MinLeafSize     ___________           1       Estimated objective function value = 0.033922 Estimated function evaluation time = 0.14505 
Mdl =    ClassificationTree                          ResponseName: 'Y'                 CategoricalPredictors: []                            ClassNames: {'setosa'  'versicolor'  'virginica'}                        ScoreTransform: 'none'                       NumObservations: 150     HyperparameterOptimizationResults: [1x1 BayesianOptimization]     Properties, Methods  

Cargue el conjunto de datos.census1994 Considere un modelo que predice la categoría salarial de una persona dada su edad, clase trabajadora, nivel de educación, estado marcial, raza, sexo, ganancia y pérdida de capital, y número de horas de trabajo por semana.

load census1994 X = adultdata(:,{'age','workClass','education_num','marital_status','race',...     'sex','capital_gain','capital_loss','hours_per_week','salary'});

Mostrar el número de categorías representadas en las variables categóricas utilizando .summary

summary(X)
Variables:      age: 32561x1 double          Values:              Min        17               Median     37               Max        90        workClass: 32561x1 categorical          Values:              Federal-gov              960                Local-gov               2093                Never-worked               7                Private                22696                Self-emp-inc            1116                Self-emp-not-inc        2541                State-gov               1298                Without-pay               14                NumMissing              1836         education_num: 32561x1 double          Values:              Min              1                    Median          10                    Max             16             marital_status: 32561x1 categorical          Values:              Divorced                       4443                   Married-AF-spouse                23                   Married-civ-spouse            14976                   Married-spouse-absent           418                   Never-married                 10683                   Separated                      1025                   Widowed                         993            race: 32561x1 categorical          Values:              Amer-Indian-Eskimo      311              Asian-Pac-Islander     1039              Black                  3124              Other                   271              White                 27816       sex: 32561x1 categorical          Values:              Female    10771             Male      21790      capital_gain: 32561x1 double          Values:              Min               0                  Median            0                  Max           99999           capital_loss: 32561x1 double          Values:              Min               0                  Median            0                  Max            4356           hours_per_week: 32561x1 double          Values:              Min               1                    Median           40                    Max              99             salary: 32561x1 categorical          Values:              <=50K     24720               >50K       7841   

Debido a que hay pocas categorías representadas en las variables categóricas en comparación con los niveles de las variables continuas, el algoritmo CART estándar, de división predictora prefiere dividir un predictor continuo sobre las variables categóricas.

Entrene un árbol de clasificación utilizando todo el conjunto de datos. Para cultivar árboles imparciales, especifique el uso de la prueba de curvatura para dividir predictores. Dado que faltan observaciones en los datos, especifique el uso de divisiones suplentes.

Mdl = fitctree(X,'salary','PredictorSelection','curvature',...     'Surrogate','on');

Estimar los valores de importancia del predictor sumando los cambios en el riesgo debido a las divisiones en cada predictor y dividir la suma por el número de nodos de bifurcación. Compare las estimaciones utilizando un gráfico de barras.

imp = predictorImportance(Mdl);  figure; bar(imp); title('Predictor Importance Estimates'); ylabel('Estimates'); xlabel('Predictors'); h = gca; h.XTickLabel = Mdl.PredictorNames; h.XTickLabelRotation = 45; h.TickLabelInterpreter = 'none';

En este caso, es el predictor más importante, seguido de .capital_gaineducation_num

En este ejemplo se muestra cómo optimizar automáticamente los hiperparámetros de un árbol de clasificación mediante una matriz alta. El conjunto de datos de ejemplo es un conjunto de datos grande que contiene un archivo tabular de datos de vuelos de aerolíneas.airlinesmall.csv En este ejemplo se crea una tabla alta que contiene los datos y se utiliza para ejecutar el procedimiento de optimización.

Al realizar cálculos en matrices altas, MATLAB® utiliza un grupo paralelo (predeterminado si tiene Parallel Computing Toolbox™) o la sesión local de MATLAB. Si desea ejecutar el ejemplo utilizando la sesión local de MATLAB cuando tiene Parallel Computing Toolbox, puede cambiar el entorno de ejecución global mediante la función.mapreducer

Cree un almacén de datos que haga referencia a la ubicación de la carpeta con los datos. Seleccione un subconjunto de las variables con las que trabajar y trate los valores como datos que faltan para reemplazarlos por valores.'NA'datastoreNaN Cree una tabla alta que contenga los datos del almacén de datos.

ds = datastore('airlinesmall.csv'); ds.SelectedVariableNames = {'Month','DayofMonth','DayOfWeek',...                             'DepTime','ArrDelay','Distance','DepDelay'}; ds.TreatAsMissing = 'NA'; tt  = tall(ds) % Tall table
Starting parallel pool (parpool) using the 'local' profile ... Connected to the parallel pool (number of workers: 6).  tt =    M×7 tall table      Month    DayofMonth    DayOfWeek    DepTime    ArrDelay    Distance    DepDelay     _____    __________    _________    _______    ________    ________    ________       10          21            3          642          8         308          12         10          26            1         1021          8         296           1         10          23            5         2055         21         480          20         10          23            5         1332         13         296          12         10          22            4          629          4         373          -1         10          28            3         1446         59         308          63         10           8            4          928          3         447          -2         10          10            6          859         11         954          -1          :          :             :           :          :           :           :       :          :             :           :          :           :           : 

Determine los vuelos que llegan tarde en 10 minutos o más definiendo una variable lógica que es verdadera para un vuelo tardío. Esta variable contiene las etiquetas de clase. Una vista previa de esta variable incluye las primeras filas.

Y = tt.DepDelay > 10 % Class labels
Y =    M×1 tall logical array     1    0    1    1    0    1    0    0    :    : 

Cree una matriz alta para los datos del predictor.

X = tt{:,1:end-1} % Predictor data
X =    M×6 tall double matrix    Columns 1 through 5            10          21           3         642           8           10          26           1        1021           8           10          23           5        2055          21           10          23           5        1332          13           10          22           4         629           4           10          28           3        1446          59           10           8           4         928           3           10          10           6         859          11           :           :            :          :           :           :           :            :          :           :    Column 6           308          296          480          296          373          308          447          954           :           : 

Quite las filas y que contienen los datos que faltan.XY

R = rmmissing([X Y]); % Data with missing entries removed X = R(:,1:end-1);  Y = R(:,end); 

Estandarizar las variables predictoras.

Z = zscore(X);

Optimice los hiperparámetros automáticamente mediante el argumento de par nombre-valor.'OptimizeHyperparameters' Encuentre el valor óptimo que minimiza la pérdida de validación cruzada de la retención.'MinLeafSize' (Especificar utiliza .)'auto''MinLeafSize' Para reproducibilidad, utilice la función de adquisición y configure las semillas de los generadores de números aleatorios que utilizan y .'expected-improvement-plus'rngtallrng Los resultados pueden variar en función del número de trabajadores y del entorno de ejecución de las matrices altas. Para obtener más información, consulte .Controle dónde se ejecuta el código (MATLAB)

rng('default')  tallrng('default') [Mdl,FitInfo,HyperparameterOptimizationResults] = fitctree(Z,Y,...     'OptimizeHyperparameters','auto',...     'HyperparameterOptimizationOptions',struct('Holdout',0.3,...     'AcquisitionFunctionName','expected-improvement-plus'))
Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 3: Completed in 8.2 sec - Pass 2 of 3: Completed in 9.7 sec - Pass 3 of 3: Completed in 6.2 sec Evaluation completed in 24 sec 

Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.7 sec Evaluation completed in 1.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 2.3 sec Evaluation completed in 2.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.9 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 2.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 10 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 8.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 6.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 6.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 7.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 6.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2.1 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2.4 sec Evaluation completed in 8.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 2 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 2.7 sec Evaluation completed in 8.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.8 sec - Pass 2 of 4: Completed in 2 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 3.1 sec Evaluation completed in 9.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.9 sec - Pass 2 of 4: Completed in 2.9 sec - Pass 3 of 4: Completed in 1.2 sec - Pass 4 of 4: Completed in 3.1 sec Evaluation completed in 10 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.9 sec - Pass 2 of 4: Completed in 2.3 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 3.1 sec Evaluation completed in 9.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 3.1 sec Evaluation completed in 9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2 sec - Pass 2 of 4: Completed in 2.3 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 3.1 sec Evaluation completed in 9.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2.1 sec - Pass 2 of 4: Completed in 2.3 sec - Pass 3 of 4: Completed in 1.2 sec - Pass 4 of 4: Completed in 2.9 sec Evaluation completed in 9.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2.1 sec - Pass 2 of 4: Completed in 2.5 sec - Pass 3 of 4: Completed in 1.3 sec - Pass 4 of 4: Completed in 3 sec Evaluation completed in 9.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 2.4 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 8.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2.2 sec - Pass 2 of 4: Completed in 2.5 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 2.6 sec Evaluation completed in 9.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 2.4 sec - Pass 3 of 4: Completed in 1.3 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 2.5 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 2.5 sec Evaluation completed in 8.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2.2 sec - Pass 2 of 4: Completed in 2.4 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 8.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2.2 sec - Pass 2 of 4: Completed in 2.5 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 2.4 sec Evaluation completed in 9.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2.1 sec - Pass 2 of 4: Completed in 2.4 sec - Pass 3 of 4: Completed in 1.2 sec - Pass 4 of 4: Completed in 2.4 sec Evaluation completed in 8.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 3.6 sec Evaluation completed in 3.6 sec |======================================================================================| | Iter | Eval   | Objective   | Objective   | BestSoFar   | BestSoFar   |  MinLeafSize | |      | result |             | runtime     | (observed)  | (estim.)    |              | |======================================================================================| |    1 | Best   |      0.1163 |       277.4 |      0.1163 |      0.1163 |           10 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.74 sec Evaluation completed in 0.79 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.9 sec Evaluation completed in 1.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.9 sec Evaluation completed in 2 sec |    2 | Accept |     0.19635 |       17.06 |      0.1163 |     0.12063 |        48298 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.9 sec Evaluation completed in 1.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 2 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 6.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.8 sec Evaluation completed in 1.9 sec |    3 | Best   |      0.1048 |      87.792 |      0.1048 |     0.11151 |         3166 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.67 sec Evaluation completed in 0.73 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.8 sec Evaluation completed in 1.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 6.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 2 sec - Pass 3 of 4: Completed in 1.9 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 7.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.6 sec Evaluation completed in 6.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 7.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.5 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 0.98 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 2 sec Evaluation completed in 2 sec |    4 | Best   |       0.101 |      153.47 |       0.101 |      0.1056 |          180 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 1.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 2 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 6.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 7.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 6.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.2 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 7.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 6.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 6.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 2.1 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 8.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 2 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.2 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.4 sec Evaluation completed in 1.5 sec |    5 | Best   |     0.10058 |      156.17 |     0.10058 |      0.1006 |          145 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.73 sec Evaluation completed in 0.79 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.8 sec Evaluation completed in 1.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 7.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 6.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.4 sec Evaluation completed in 1.4 sec |    6 | Accept |     0.10155 |      113.72 |     0.10058 |     0.10059 |         1058 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.69 sec Evaluation completed in 0.75 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 2 sec Evaluation completed in 2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.3 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.99 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.97 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 7.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 6.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.5 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 2.6 sec Evaluation completed in 7.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.5 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2.3 sec Evaluation completed in 7.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.4 sec - Pass 2 of 4: Completed in 2.1 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 2.5 sec Evaluation completed in 8.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 2.2 sec - Pass 3 of 4: Completed in 1.2 sec - Pass 4 of 4: Completed in 2.6 sec Evaluation completed in 8.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2.1 sec - Pass 2 of 4: Completed in 2.3 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 3.3 sec Evaluation completed in 10 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 2.4 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 2.8 sec Evaluation completed in 9.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.8 sec - Pass 2 of 4: Completed in 2.5 sec - Pass 3 of 4: Completed in 1.2 sec - Pass 4 of 4: Completed in 2.7 sec Evaluation completed in 9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2.3 sec - Pass 2 of 4: Completed in 2.6 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 3.2 sec Evaluation completed in 11 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.9 sec - Pass 2 of 4: Completed in 2.6 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 3.1 sec Evaluation completed in 10 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2.5 sec - Pass 2 of 4: Completed in 2.7 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 3 sec Evaluation completed in 11 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2 sec - Pass 2 of 4: Completed in 2.2 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 2.4 sec Evaluation completed in 9.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.9 sec - Pass 2 of 4: Completed in 2.7 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 2.4 sec Evaluation completed in 9.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2 sec - Pass 2 of 4: Completed in 2.8 sec - Pass 3 of 4: Completed in 1.2 sec - Pass 4 of 4: Completed in 2.8 sec Evaluation completed in 9.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2.6 sec - Pass 2 of 4: Completed in 2.8 sec - Pass 3 of 4: Completed in 1.3 sec - Pass 4 of 4: Completed in 2.8 sec Evaluation completed in 10 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2 sec - Pass 2 of 4: Completed in 2.7 sec - Pass 3 of 4: Completed in 1.3 sec - Pass 4 of 4: Completed in 2.8 sec Evaluation completed in 9.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2.1 sec - Pass 2 of 4: Completed in 2.3 sec - Pass 3 of 4: Completed in 1.3 sec - Pass 4 of 4: Completed in 2.8 sec Evaluation completed in 9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2.5 sec - Pass 2 of 4: Completed in 2.3 sec - Pass 3 of 4: Completed in 1.2 sec - Pass 4 of 4: Completed in 2.8 sec Evaluation completed in 9.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2.1 sec - Pass 2 of 4: Completed in 2.3 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 2.8 sec Evaluation completed in 9.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2.7 sec - Pass 2 of 4: Completed in 2.8 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 10 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.9 sec Evaluation completed in 2 sec |    7 | Accept |     0.13479 |       312.1 |     0.10058 |     0.10059 |            1 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.62 sec Evaluation completed in 0.67 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 6.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 5.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 6.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 7.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 2.3 sec Evaluation completed in 7.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 2 sec - Pass 2 of 4: Completed in 2.5 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 7.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 2.2 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.5 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 2 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 8.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 2 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 7.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 1.5 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 1.6 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 2 sec - Pass 3 of 4: Completed in 1.7 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.8 sec - Pass 2 of 4: Completed in 1.6 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.9 sec Evaluation completed in 1.9 sec |    8 | Accept |     0.10249 |      190.23 |     0.10058 |     0.10063 |           58 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.67 sec Evaluation completed in 0.73 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 1.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 5.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 5.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 5.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.6 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 2 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.4 sec Evaluation completed in 1.5 sec |    9 | Best   |     0.10033 |      164.41 |     0.10033 |      0.1004 |          112 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.8 sec Evaluation completed in 1.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 6.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 2.1 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.98 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.98 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 6.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 5.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.98 sec - Pass 4 of 4: Completed in 1.7 sec Evaluation completed in 6.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.99 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.7 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.8 sec Evaluation completed in 1.9 sec |   10 | Accept |     0.10145 |      102.12 |     0.10033 |     0.10042 |         1682 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 1.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.5 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 7.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.2 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 7.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.99 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 5.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 7.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.6 sec Evaluation completed in 6.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 6.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 6.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.8 sec - Pass 2 of 4: Completed in 2 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.6 sec Evaluation completed in 6.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.4 sec Evaluation completed in 1.4 sec |   11 | Accept |     0.10047 |      164.08 |     0.10033 |     0.10044 |          114 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.2 sec Evaluation completed in 1.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.8 sec Evaluation completed in 1.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 6.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.8 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.8 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 7.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 2.1 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.6 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.7 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 5.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.8 sec Evaluation completed in 1.8 sec |   12 | Accept |     0.10105 |      171.09 |     0.10033 |     0.10061 |          116 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.63 sec Evaluation completed in 0.68 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 1.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 7.2 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.2 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2 sec Evaluation completed in 7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 5.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 6.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2.1 sec Evaluation completed in 6.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 6.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.5 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.9 sec Evaluation completed in 7.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.9 sec Evaluation completed in 1.9 sec |   13 | Accept |     0.10105 |      155.32 |     0.10033 |     0.10069 |          122 | Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 0.63 sec Evaluation completed in 0.69 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 1: Completed in 1.3 sec Evaluation completed in 1.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 0.99 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 5.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 0.99 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.4 sec Evaluation completed in 6.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.1 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.3 sec Evaluation completed in 6.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.3 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.5 sec Evaluation completed in 5.9 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.6 sec - Pass 2 of 4: Completed in 1.4 sec - Pass 3 of 4: Completed in 1.5 sec - Pass 4 of 4: Completed in 1.6 sec Evaluation completed in 6.6 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 1.7 sec Evaluation completed in 7.3 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.1 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 1.8 sec Evaluation completed in 6.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.2 sec - Pass 2 of 4: Completed in 1.9 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 2.5 sec Evaluation completed in 8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.3 sec - Pass 2 of 4: Completed in 1.5 sec - Pass 3 of 4: Completed in 1 sec - Pass 4 of 4: Completed in 2.8 sec Evaluation completed in 7.4 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.8 sec - Pass 2 of 4: Completed in 2.1 sec - Pass 3 of 4: Completed in 1.1 sec - Pass 4 of 4: Completed in 3 sec Evaluation completed in 8.8 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.7 sec - Pass 3 of 4: Completed in 1.6 sec - Pass 4 of 4: Completed in 3.1 sec Evaluation completed in 8.7 sec Evaluating tall expression using the Parallel Pool 'local': - Pass 1 of 4: Completed in 1.5 sec - Pass 2 of 4: Completed in 1.8 sec - Pass 3 of 4: Completed in 1.2 sec - Pass 4 of 4: 0% complete Evalua... 
Mdl =    classreg.learning.classif.CompactClassificationTree              ResponseName: 'Y'     CategoricalPredictors: []                ClassNames: [0 1]            ScoreTransform: 'none'     Properties, Methods  
FitInfo = struct with no fields.
HyperparameterOptimizationResults =    BayesianOptimization with properties:                        ObjectiveFcn: @createObjFcn/tallObjFcn               VariableDescriptions: [4×1 optimizableVariable]                            Options: [1×1 struct]                       MinObjective: 0.1003                    XAtMinObjective: [1×1 table]              MinEstimatedObjective: 0.1007           XAtMinEstimatedObjective: [1×1 table]            NumObjectiveEvaluations: 30                   TotalElapsedTime: 4.7763e+03                          NextPoint: [1×1 table]                             XTrace: [30×1 table]                     ObjectiveTrace: [30×1 double]                   ConstraintsTrace: []                      UserDataTrace: {30×1 cell}       ObjectiveEvaluationTimeTrace: [30×1 double]                 IterationTimeTrace: [30×1 double]                         ErrorTrace: [30×1 double]                   FeasibilityTrace: [30×1 logical]        FeasibilityProbabilityTrace: [30×1 double]                IndexOfMinimumTrace: [30×1 double]              ObjectiveMinimumTrace: [30×1 double]     EstimatedObjectiveMinimumTrace: [30×1 double]  

Argumentos de entrada

contraer todo

Datos de ejemplo utilizados para entrenar el modelo, especificados como una tabla. Cada fila de corresponde a una observación y cada columna corresponde a una variable predictora.Tbl Opcionalmente, puede contener una columna adicional para la variable de respuesta.Tbl No se permiten variables de varias columnas y matrices de celdas distintas de las matrices de celdas de vectores de caracteres.

Si contiene la variable de respuesta y desea utilizar todas las variables restantes como predictores, especifique la variable de respuesta mediante .TblTblResponseVarName

Si contiene la variable de respuesta y desea utilizar solo un subconjunto de las variables restantes como predictores, especifique una fórmula mediante .TblTblFórmula

Si no contiene la variable de respuesta, especifique una variable de respuesta mediante .TblY La longitud de la variable de respuesta y el número de filas deben ser iguales.Tbl

Tipos de datos: table

Nombre de la variable de respuesta, especificado como el nombre de una variable en .Tbl

Debe especificar como vector de caracteres o escalar de cadena.ResponseVarName Por ejemplo, si la variable de respuesta se almacena como , especifice como .YTbl.Y'Y' De lo contrario, el software trata todas las columnas de , incluidos , como predictores al entrenar el modelo.TblY

La variable de respuesta debe ser una matriz categórica, de carácter 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 de la variable de respuesta debe corresponder a una fila de la matriz.Y

Se recomienda especificar el orden de las clases mediante el argumento de par nombre-valor.ClassNames

Tipos de datos: char | string

Modelo explicativo de la variable de respuesta y un subconjunto de las variables predictoras, especificadas como vector de caracteres o escalar de cadena en el formulario.'Y~X1+X2+X3' En este formulario, representa la variable de respuesta y , , y representa las variables predictoras.YX1X2X3

Para especificar un subconjunto de variables como predictores para entrenar el modelo, utilice una fórmula.Tbl Si especifica una fórmula, el software no utiliza ninguna variable que no aparezca en .TblFórmula

Los nombres de variable de la fórmula deben ser ambos nombres de variable en ( ) como identificadores válidos.TblTbl.Properties.VariableNamesMATLAB®

Puede verificar los nombres de las variables mediante la función.Tblisvarname El código siguiente devuelve logical ( ) para cada variable que tiene un nombre de variable válido.1true Si los nombres de variable en no son válidos, a continuación, convertirlos mediante la función.

cellfun(@isvarname,Tbl.Properties.VariableNames)
Tblmatlab.lang.makeValidName
Tbl.Properties.VariableNames = matlab.lang.makeValidName(Tbl.Properties.VariableNames);

Tipos de datos: char | string

Etiquetas de clase, especificadas como vector numérico, vector categórico, vector lógico, matriz de caracteres, matriz de cadenas o matriz de celdas de vectores de caracteres. Cada fila de representa la clasificación de la fila correspondiente de .YX

Al ajustar el árbol, considera que faltan valores , (vector de caracteres vacíos), (cadena vacía) y valores. no utiliza observaciones con valores que faltan para en el ajuste.fitctreeNaN''""<missing><undefined>YfitctreeY

Para numéricos , considere la posibilidad de ajustar un árbol de regresión utilizando en su lugar.Yfitrtree

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

Datos del predictor, especificados como una matriz numérica. Cada fila de corresponde a una observación y cada columna corresponde a una variable predictora.X

considera los valores como valores que faltan. no utiliza observaciones con todos los valores que faltan en el ajuste. utiliza observaciones con algunos valores que faltan para encontrar divisiones en variables para las que estas observaciones tienen valores válidos.fitctreeNaNXfitctreeXfitctreeX

Tipos de datos: single | double

Argumentos de par nombre-valor

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

Ejemplo: especifica un árbol de clasificación validado cruzadamente con un mínimo de 40 observaciones por hoja.'CrossVal','on','MinLeafSize',40

Nota

No puede utilizar ningún argumento de par nombre-valor de validación cruzada junto con el argumento de par nombre-valor.'OptimizeHyperparameters' Puede modificar la validación cruzada solo mediante el argumento de par nombre-valor.'OptimizeHyperparameters''HyperparameterOptimizationOptions'

Parámetros del modelo

contraer todo

Algoritmo para encontrar la mejor división en un predictor categórico con categorías para los datos y las clases 3, especificadas como el par separado por comas que consta de y uno de los siguientes valores.CK'AlgorithmForCategorical'

ValorDescripción
'Exact'Considere los 2C–1 – 1 combinaciones.
'PullLeft'Comience con todas las categorías en la rama derecha.C Considere la posibilidad de mover cada categoría a la rama izquierda a medida que alcanza la impureza mínima para las clases entre las categorías restantes.K De esta secuencia, elija la división que tenga la impureza más baja.
'PCA'Calcular una puntuación para cada categoría utilizando el producto interno entre el primer componente principal de una matriz de covarianza ponderada (de la matriz de probabilidad de clase centrada) y el vector de probabilidades de clase para esa categoría. Ordene las puntuaciones en orden ascendente y considere todas las divisiones – 1.C
'OVAbyClass'Comience con todas las categorías en la rama derecha.C Para cada clase, ordene las categorías en función de su probabilidad para esa clase. Para la primera clase, considere la posibilidad de mover cada categoría a la rama izquierda en orden, registrando el criterio de impureza en cada movimiento. Repita el proceso para las clases restantes. De esta secuencia, elija la división que tiene la impureza mínima.

selecciona automáticamente el subconjunto óptimo de algoritmos para cada división utilizando el número conocido de clases y niveles de un predictor categórico.fitctree Para las clases de 2, siempre realiza la búsqueda exacta.Kfitctree Para especificar un algoritmo determinado, utilice el argumento de par nombre-valor.'AlgorithmForCategorical'

Para obtener más información, consulte .Splitting Categorical Predictors in Classification Trees

Ejemplo: 'AlgorithmForCategorical','PCA'

Lista de predictores categóricos, especificada como el par separado por comas que consta de y uno de los valores de esta tabla.'CategoricalPredictors'

ValorDescripción
Vector de enteros positivosCada entrada del vector es un valor de índice correspondiente a la columna de los datos predictores ( o ) que contiene una variable categórica.XTbl
Vector lógicoUna entrada significa que la columna correspondiente de datos predictores ( o ) es una variable categórica.trueXTbl
Matriz de caracteresCada fila de la matriz es el nombre de una variable predictora. Los nombres deben coincidir con las entradas de .PredictorNames Rellena los nombres con espacios en blanco adicionales para que cada fila de la matriz de caracteres tenga la misma longitud.
Matriz de cadenas o matriz de celdas de vectores de caracteresCada elemento de la matriz es el nombre de una variable predictora. Los nombres deben coincidir con las entradas de .PredictorNames
'todos'Todos los predictores son categóricos.

De forma predeterminada, si los datos del predictor están en una tabla ( ),Tbl fitctree supone que una variable es categórica si es un vector lógico, un vector categórico desordenado, una matriz de caracteres, una matriz de cadenas o una matriz de celdas de vectores de caracteres. Si los datos del predictor son una matriz ( ),X fitctree asume que todos los predictores son continuos. Para identificar cualquier otro predictor como predictores categóricos, escépéscalos mediante el argumento de par nombre-valor.'CategoricalPredictors'

Ejemplo: 'CategoricalPredictors','all'

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

Nombres de clases que se usan para el entrenamiento, especificados como el par separado por comas que consta de y una matriz categórica, de carácter o de cadena, un vector lógico o numérico, o una matriz de celdas de vectores de caracteres. debe tener el mismo tipo de datos que .'ClassNames'ClassNamesY

Si es una matriz de caracteres, cada elemento debe corresponder a uno de la matriz.ClassNamesFila

Utilícelo para:ClassNames

  • Ordene las clases durante el entrenamiento.

  • Especifique el orden de cualquier dimensión de argumento de entrada o salida que corresponda al orden de clases. Por ejemplo, se utiliza para especificar el orden de las dimensiones o el orden de columna de las puntuaciones de clasificación devueltas por .ClassNamesCostpredict

  • Seleccione un subconjunto de clases para el entrenamiento. Por ejemplo, supongamos que el conjunto de todos los nombres de clase distintos en es .Y{'a','b','c'} Para entrenar el modelo mediante observaciones de clases y solo, especifique .'a''c''ClassNames',{'a','c'}

El valor predeterminado para es el conjunto de todos los nombres de clase distintos en .ClassNamesY

Ejemplo: 'ClassNames',{'b','g'}

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

Coste de la clasificación incorrecta de un punto, especificado como el par separado por comas que consta de y uno de los siguientes:'Cost'

  • Matriz cuadrada, donde está el costo de clasificar un punto en clase si su clase verdadera es (es decir, las filas corresponden a la clase verdadera y las columnas corresponden a la clase predicha).Cost(i,j)ji Para especificar el orden de clases para las filas y columnas correspondientes de , especifique también el argumento de par nombre-valor.CostClassNames

  • Estructura que tiene dos campos: que contiene los nombres de grupo como una variable del mismo tipo de datos que , y que contiene la matriz de coste.SS.ClassNamesYS.ClassificationCosts

El valor predeterminado es if , y if .Cost(i,j)=1i~=jCost(i,j)=0i=j

Tipos de datos: single | double | struct

Profundidad máxima del árbol, especificada como el par separado por comas que consta de un entero positivo.'MaxDepth' Especifique un valor para este argumento para devolver un árbol que tenga menos niveles y requiera menos pasadas a través de la matriz alta para calcular. Generalmente, el algoritmo de toma un paso a través de los datos y un pase adicional para cada nivel de árbol.fitctree La función no establece una profundidad de árbol máxima, de forma predeterminada.

Nota

Esta opción solo se aplica cuando se utiliza en matrices altas.fitctree Consulte para obtener más información.Matrices altas

Niveles de categoría máximos, especificados como el par separado por comas que consta de un valor escalar no negativo. divide un predictor categórico utilizando el algoritmo de búsqueda exacto si el predictor tiene en la mayoría de los niveles en el nodo dividido.'MaxNumCategories'fitctreeMaxNumCategories De lo contrario, encuentra la mejor división categórica utilizando uno de los algoritmos inexactos.fitctree

Pasar un valor pequeño puede provocar la pérdida de precisión y pasar un valor grande puede aumentar el tiempo de cálculo y la sobrecarga de memoria.

Ejemplo: 'MaxNumCategories',8

Número máximo de divisiones de decisión (o nodos de bifurcación), especificado como el par separado por comas que consta de un entero positivo y un entero positivo.'MaxNumSplits' fitctree divisiones o menos nodos de bifurcación.MaxNumSplits Para obtener más información sobre el comportamiento de división, consulte .Algoritmos

Ejemplo: 'MaxNumSplits',5

Tipos de datos: single | double

Marca de combinación de hojas, especificada como el par separado por comas que consta de y o .'MergeLeaves''on''off'

Si es , entoncesMergeLeaves'on' fitctree:

  • Combina hojas que se originan en el mismo nodo primario y que produce una suma de valores de riesgo mayor o igual al riesgo asociado con el nodo primario

  • Estima la secuencia óptima de subárboles podados, pero no poda el árbol de clasificación

Lo contrario fitctree no fusiona hojas.

Ejemplo: 'MergeLeaves','off'

Número mínimo de observaciones de nodo hoja, especificado como el par separado por comas que consta de y un valor entero positivo.'MinLeafSize' Cada hoja tiene al menos observaciones por hoja de árbol.MinLeafSize Si suministra ambos y , utiliza el ajuste que da hojas más grandes: .MinParentSizeMinLeafSizefitctreeMinParentSize = max(MinParentSize,2*MinLeafSize)

Ejemplo: 'MinLeafSize',3

Tipos de datos: single | double

Número mínimo de observaciones de nodo de bifurcación, especificado como el par separado por comas que consta de y un valor entero positivo.'MinParentSize' Cada nodo de rama del árbol tiene al menos observaciones.MinParentSize Si suministra ambos y , utiliza el ajuste que da hojas más grandes: .MinParentSizeMinLeafSizefitctreeMinParentSize = max(MinParentSize,2*MinLeafSize)

Ejemplo: 'MinParentSize',8

Tipos de datos: single | double

Número de ubicaciones para predictores numéricos, especificado como el par separado por comas que consta de un escalar entero positivo.'NumBins'

  • Si el valor está vacío (predeterminado), el software no bin ningún predictor.'NumBins'

  • Si especifica el valor como un escalar entero positivo, el software coloca cada predictor numérico en un número especificado de bins equiprobables y, a continuación, crece árboles en los índices de ubicación en lugar de los datos originales.'NumBins'

    • Si el valor supera el número ( ) de valores únicos para un predictor,'NumBins'u fitctree bins el predictor en contenedores.u

    • fitctree no bin predictores categóricos.

Cuando se utiliza un conjunto de datos de entrenamiento grande, esta opción de binning acelera el entrenamiento, pero provoca una posible disminución de la precisión. Puede probar primero y, a continuación, cambiar el valor en función de la precisión y la velocidad de entrenamiento.'NumBins',50'NumBins'

Un modelo entrenado almacena los bordes de la ubicación en la propiedad.BinEdges

Ejemplo: 'NumBins',50

Tipos de datos: single | double

Número de predictores que se deben seleccionar aleatoriamente para cada división, especificado como el par separado por comas que consta de y un valor entero positivo.'NumVariablesToSample' Como alternativa, puede especificar el uso de todos los predictores disponibles.'all'

Si los datos de entrenamiento incluyen muchos predictores y desea analizar la importancia del predictor, especifique como .'NumVariablesToSample''all' De lo contrario, es posible que el software no seleccione algunos predictores, subestimando su importancia.

Para reproducir las selecciones aleatorias, debe establecer la semilla del generador de números aleatorios utilizando y especificando .rng'Reproducible',true

Ejemplo: 'NumVariablesToSample',3

Tipos de datos: char | string | single | double

Nombres de variables predictoras, especificados como el par separado por comas que consta de y una matriz de cadenas de nombres únicos o matriz de celdas de vectores de caracteres únicos.'PredictorNames' La funcionalidad de depende de la forma en que proporcione los datos de entrenamiento.'PredictorNames'

  • Si proporciona y , entonces puede utilizar para dar las variables predictoras en los nombres.XY'PredictorNames'X

    • El orden de los nombres en debe corresponder al orden de columna de .PredictorNamesX Es decir, es el nombre de , es el nombre de , y así sucesivamente.PredictorNames{1}X(:,1)PredictorNames{2}X(:,2) Además, y debe ser igual.size(X,2)numel(PredictorNames)

    • De forma predeterminada, es .PredictorNames{'x1','x2',...}

  • Si proporciona , entonces puede utilizar para elegir qué variables predictoras utilizar en el entrenamiento.Tbl'PredictorNames' Es decir fitctree utiliza sólo las variables predictoras en y la variable de respuesta en el entrenamiento.PredictorNames

    • debe ser un subconjunto de y no puede incluir el nombre de la variable de respuesta.PredictorNamesTbl.Properties.VariableNames

    • De forma predeterminada, contiene los nombres de todas las variables predictoras.PredictorNames

    • Es una buena práctica especificar los predictores para el entrenamiento usando uno o solo.'PredictorNames'Fórmula

Ejemplo: 'PredictorNames',{'SepalLength','SepalWidth','PetalLength','PetalWidth'}

Tipos de datos: string | cell

Algoritmo utilizado para seleccionar el mejor predictor dividido en cada nodo, especificado como el par separado por comas que consta de y un valor en esta tabla.'PredictorSelection'

ValorDescripción
'allsplits'

CART estándar — Selecciona el predictor dividido que maximiza la ganancia de criterio de división en todas las divisiones posibles de todos los predictores.[1]

'curvature': selecciona el predictor dividido que minimiza el valor -valor de las pruebas de independencia de chi-cuadrado entre cada predictor y la respuesta.Prueba de curvaturap[4] La velocidad de entrenamiento es similar a la de CART estándar.
'interaction-curvature'— Elige el predictor dividido que minimiza el valor -valor de las pruebas de independencia de chi-cuadrado entre cada predictor y la respuesta, y que minimiza el valor -valor de una prueba de independencia chi-cuadrada entre cada par de predictores y respuesta.Prueba de interacciónpp[3] La velocidad de entrenamiento puede ser más lenta que la CART estándar.

Para y , si todas las pruebas producen -valores mayores que 0.05, a continuación,'curvature''interaction-curvature'p fitctree deja de dividir nodos.

Sugerencia

  • El CART estándar tiende a seleccionar predictores divididos que contienen muchos valores distintos, por ejemplo, variables continuas, sobre aquellos que contienen pocos valores distintos, por ejemplo, variables categóricas.[4] Considere la posibilidad de especificar la curvatura o la prueba de interacción si se cumple alguna de las siguientes condiciones:

    • Si hay predictores que tienen relativamente menos valores distintos que otros predictores, por ejemplo, si el conjunto de datos predictor es heterogéneo.

    • Si tu objetivo es un análisis de la importancia del predictor. Para obtener más información sobre la estimación de la importancia del predictor, véase predictorImportance Y.Introduction to Feature Selection

  • Los árboles cultivados con CART estándar no son sensibles a las interacciones variables predictoras. Además, estos árboles son menos propensos a identificar variables importantes en presencia de muchos predictores irrelevantes que la aplicación de la prueba de interacción. Por lo tanto, para tener en cuenta las interacciones predictoras e identificar variables de importancia en presencia de muchas variables irrelevantes, especifique la prueba de interacción.[3]

  • La velocidad de predicción no se ve afectada por el valor de .'PredictorSelection'

Para obtener más información sobre cómo fitctree selecciona los predictores divididos, ver y .Reglas de división de nodoChoose Split Predictor Selection Technique

Ejemplo: 'PredictorSelection','curvature'

Probabilidades anteriores para cada clase, especificadas como el par separado por comas que consta de y uno de los siguientes:'Prior'

  • Vector de caracteres o escalar de cadena.

    • determina las probabilidades de clase a partir de frecuencias de clase en la variable de respuesta en o .'empirical'YTbl Si pasas pesos de observación, fitctree utiliza las ponderaciones para calcular las probabilidades de clase.

    • establece todas las probabilidades de clase para que sean iguales.'uniform'

  • Vector (un valor escalar para cada clase). Para especificar el orden de clases para los elementos correspondientes de , especifique también el argumento de par nombre-valor.'Prior'ClassNames

  • Estructura con dos campos.S

    • contiene los nombres de clase como una variable del mismo tipo que la variable de respuesta en o .S.ClassNamesYTbl

    • contiene un vector de las probabilidades correspondientes.S.ClassProbs

Si establece valores para ambos y ,'Weights''Prior' fitctree normaliza los pesos de cada clase para sumar el valor de la probabilidad anterior de la clase respectiva.

Ejemplo: 'Prior','uniform'

Tipos de datos: char | string | single | double | struct

Marcador para estimar la secuencia óptima de subárboles podados, especificado según el par separado por comas que consta de y o .'Prune''on''off'

Si es , entoncesPrune'on' fitctree cultiva el árbol de clasificación sin podarlo, pero estima la secuencia óptima de subárboles podados. Lo contrario fitctree cultiva el árbol de clasificación sin estimar la secuencia óptima de subárboles podados.

Para podar un modelo entrenado, páselo aClassificationTree prune.

Ejemplo: 'Prune','off'

Criterio de poda, especificado como el par separado por comas que consta de y o .'PruneCriterion''error''impurity'

Si especifica , entonces'impurity' fitctree utiliza la medida de impureza especificada por el argumento de par nombre-valor.'SplitCriterion'

Para obtener más información, consulte .Impureza y Error de nodo

Ejemplo: 'PruneCriterion','impurity'

Marcar para aplicar la reproducibilidad sobre ejecuciones repetidas de entrenamiento de un modelo, especificado como el par separado por comas que consta de y o .'Reproducible'falsetrue

Si no es así, el software selecciona los predictores al azar para cada división.'NumVariablesToSample''all' Para reproducir las selecciones aleatorias, debe especificar y establecer la semilla del generador de números aleatorios utilizando .'Reproducible',truerng Tenga en cuenta que la configuración de puede ralentizar el entrenamiento.'Reproducible'true

Ejemplo: 'Reproducible',true

Tipos de datos: logical

Nombre de la variable de respuesta, especificado como el par separado por comas que consta de un vector de caracteres o un escalar de cadena que representa el nombre de la variable de respuesta.'ResponseName'

Este par nombre-valor no es válido cuando se utilizan los argumentos o input.ResponseVarNameFórmula

Ejemplo: 'ResponseName','IrisType'

Tipos de datos: char | string

Transformación de puntuación, especificada como el par separado por comas que consta de un vector de caracteres, un escalar de cadena o un identificador de función.'ScoreTransform'

En esta tabla se resumen los vectores de caracteres disponibles y los escalares de cadena.

ValorDescripción
'doublelogit'1/(1 +e–2x)
'invlogit'log( / (1 – ))xx
'ismax'Establece la puntuación de la clase con la puntuación más alta en , y establece las puntuaciones de todas las demás clases en10
'logit'1/(1 +ex)
O'none''identity'(sin transformación)x
'sign'–1 para <0 0 para 0 0 para 0 1 para > 0x
x
x
'symmetric'2 – 1x
'symmetricismax'Establece la puntuación de la clase con la puntuación más alta en , y establece las puntuaciones de todas las demás clases en1–1
'symmetriclogit'2/(1 +ex) – 1

Para una función o una función que defina, utilice su identificador de función para la transformación de puntuación.MATLAB El identificador de función debe aceptar una matriz (las puntuaciones originales) y devolver una matriz del mismo tamaño (las puntuaciones transformadas).

Ejemplo: 'ScoreTransform','logit'

Tipos de datos: char | string | function_handle

Criterio de división, especificado como el par separado por comas que consta de y (índice de diversidad de Gini), para la regla de dos, o para la reducción de desviación máxima (también conocida como entropía cruzada).'SplitCriterion''gdi''twoing''deviance'

Para obtener más información, consulte .Impureza y Error de nodo

Ejemplo: 'SplitCriterion','deviance'

marcador, especificado como el par separado por comas que consta de y , , , o un valor entero positivo.Se divide la decisión subrogada'Surrogate''on''off''all'

  • Cuando se establece en , encuentra como máximo 10 divisiones suplentes en cada nodo de sucursal.'on'fitctree

  • Cuando se establece en , busca todas las divisiones suplentes en cada nodo de bifurcación.'all'fitctree La configuración puede utilizar un tiempo y una memoria considerables.'all'

  • Cuando se establece en un valor entero positivo, busca como máximo el número especificado de divisiones suplentes en cada nodo de rama.fitctree

Utilice divisiones suplentes para mejorar la precisión de las predicciones de datos con valores que faltan. La configuración también le permite calcular medidas de asociación predictiva entre predictores. Para obtener más información, consulte .Reglas de división de nodo

Ejemplo: 'Surrogate','on'

Tipos de datos: single | double | char | string

Pesos de observación, especificados como el par separado por comas que consta de y un vector de valores escalares o el nombre de una variable en .'Weights'Tbl El software pondera las observaciones en cada fila de o con el valor correspondiente en .XTblWeights El tamaño de debe ser igual al número de filas en o .WeightsXTbl

Si especifica los datos de entrada como una tabla , puede ser el nombre de una variable que contenga un vector numérico.TblWeightsTbl En este caso, debe especificar como vector de caracteres o escalar de cadena.Weights Por ejemplo, si el vector de ponderaciones se almacena como , especifice como .WTbl.W'W' De lo contrario, el software trata todas las columnas de , incluidos , como predictores al entrenar el modelo.TblW

fitctree normaliza los pesos de cada clase para sumar el valor de la probabilidad anterior de la clase respectiva.

Tipos de datos: single | double | char | string

Opciones de validación cruzada

contraer todo

Marcar para hacer crecer un árbol de decisión validado entre referencias cruzadas, especificado como el par separado por comas que consta de y o .'CrossVal''on''off'

Si , crece un árbol de decisión validado cruzadamente con 10 pliegues.'on'fitctree Puede invalidar esta configuración de validación cruzada mediante uno de los argumentos de par , , o nombre-valor.'KFold''Holdout''Leaveout''CVPartition' Solo puede usar uno de estos cuatro argumentos a la vez al crear un árbol validado entre sí.

Alternativamente, cotejar más adelante utilizando eltree crossval Método.

Ejemplo: 'CrossVal','on'

Partición que se utilizará en un árbol validado por cruces, especificado como el par separado por comas que consta de y un objeto creado mediante .'CVPartition'cvpartition

Si utiliza , no puede utilizar ninguno de los argumentos de par , , o nombre-valor.'CVPartition''KFold''Holdout''Leaveout'

Fracción de los datos utilizados para la validación de retención, especificada como el par separado por comas que consta de y un valor escalar en el intervalo .'Holdout'[0,1] La validación de retención prueba la fracción especificada de los datos y usa el resto de los datos para el entrenamiento.

Si utiliza , no puede utilizar ninguno de los argumentos de par , , o nombre-valor.'Holdout''CVPartition''KFold''Leaveout'

Ejemplo: 'Holdout',0.1

Tipos de datos: single | double

Número de pliegues que se van a utilizar en un clasificador validado entre referencias cruzadas, especificado como el par separado por comas que consta de un valor entero positivo mayor que 1.'KFold' Si especifica, por ejemplo, 'KFold',k, a continuación, el software:

  1. Particiona aleatoriamente los datos en conjuntosk

  2. Para cada conjunto, reserva el conjunto como datos de validación y entrena el modelo utilizando el otro k – 1 Establece

  3. Almacena el k modelos compactos y entrenados en las células de un k-by-1 vector de celda en la propiedad del modelo validado cruzadamente.Trained

Para crear un modelo validado entre referencias cruzadas, puede utilizar una de estas cuatro opciones solo: , , , o .CVPartitionHoldoutKFoldLeaveout

Ejemplo: 'KFold',8

Tipos de datos: single | double

Deje el indicador de validación cruzada uno-out, especificado como el par separado por comas que consta de y o .'Leaveout''on''off' Especifique para usar la validación cruzada de dejar uno hacia fuera.'on'

Si utiliza , no puede utilizar ninguno de los argumentos de par , , o nombre-valor.'Leaveout''CVPartition''Holdout''KFold'

Ejemplo: 'Leaveout','on'

Opciones de optimización de hiperparámetros

contraer todo

Parámetros para optimizar, especificados como el par separado por comas que consta de y uno de los siguientes:'OptimizeHyperparameters'

  • — No optimizar.'none'

  • — Uso'auto'{'MinLeafSize'}

  • — Optimizar todos los parámetros elegibles.'all'

  • Matriz de cadenas o matriz de celdas de nombres de parámetros elegibles

  • Vector de objetos, normalmente la salida deoptimizableVariablehyperparameters

La optimización intenta minimizar la pérdida de validación cruzada (error) para variar los parámetros.fitctree Para obtener información sobre la pérdida de validación cruzada (aunque en un contexto diferente), consulte .Classification Loss Para controlar el tipo de validación cruzada y otros aspectos de la optimización, utilice el par nombre-valor.HyperparameterOptimizationOptions

Nota

los valores reemplazan los valores que establezca utilizando otros argumentos de par nombre-valor.'OptimizeHyperparameters' Por ejemplo, establecer para hacer que se apliquen los valores.'OptimizeHyperparameters''auto''auto'

Los parámetros elegibles para son:fitctree

  • — búsquedas entre enteros, por defecto escalado de registros en el rango .MaxNumSplitsfitctree[1,max(2,NumObservations-1)]

  • — búsquedas entre enteros, por defecto escalado de registros en el rango .MinLeafSizefitctree[1,max(2,floor(NumObservations/2))]

  • — Para dos clases, busca entre y .SplitCriterionfitctree'gdi''deviance' Para tres o más clases, también busca entre .fitctree'twoing'

  • — no optimiza sobre este hiperparámetro.NumVariablesToSamplefitctree Si pasa como un nombre de parámetro, simplemente utiliza el número completo de predictores.NumVariablesToSamplefitctree Sin embargo, optimiza sobre este hiperparámetro.fitcensemble

Establezca parámetros no predeterminados pasando un vector de objetos que tengan valores no predeterminados.optimizableVariable Por ejemplo,

load fisheriris params = hyperparameters('fitctree',meas,species); params(1).Range = [1,30];

Pase como el valor de .paramsOptimizeHyperparameters

De forma predeterminada, la visualización iterativa aparece en la línea de comandoy los trazados aparecen según el número de hiperparámetros de la optimización. Para la optimización y las gráficas, la función objetivo es log(1 + cross-validation loss) para la regresión y la tasa de clasificación errónea para la clasificación. Para controlar la visualización iterativa, establezca el campo del argumento de par nombre-valor.Verbose'HyperparameterOptimizationOptions' Para controlar los trazados, establezca el campo del argumento de par nombre-valor.ShowPlots'HyperparameterOptimizationOptions'

Para obtener un ejemplo, consulte .Optimizar árbol de clasificación

Ejemplo: 'auto'

Opciones para la optimización, especificadas como el par separado por comas que consta de y una estructura.'HyperparameterOptimizationOptions' Este argumento modifica el efecto del argumento de par nombre-valor.OptimizeHyperparameters Todos los campos de la estructura son opcionales.

Nombre del campoValoresPredeterminado
Optimizer
  • — Utilice la optimización bayesiana.'bayesopt' Internamente, esta configuración llama a .bayesopt

  • — Utilice la búsqueda de cuadrícula con valores por dimensión.'gridsearch'NumGridDivisions

  • — Buscar al azar entre puntos.'randomsearch'MaxObjectiveEvaluations

búsquedas en un orden aleatorio, utilizando muestreo uniforme sin reemplazo de la cuadrícula.'gridsearch' Después de la optimización, puede obtener una tabla en orden de cuadrícula mediante el comando .sortrows(Mdl.HyperparameterOptimizationResults)

'bayesopt'
AcquisitionFunctionName

  • 'expected-improvement-per-second-plus'

  • 'expected-improvement'

  • 'expected-improvement-plus'

  • 'expected-improvement-per-second'

  • 'lower-confidence-bound'

  • 'probability-of-improvement'

Las funciones de adquisición cuyos nombres incluyen no producen resultados reproducibles porque la optimización depende del tiempo de ejecución de la función objetivo.per-second Las funciones de adquisición cuyos nombres incluyen modifican su comportamiento cuando están sobreexplotando un área.plus Para obtener más información, consulte .Acquisition Function Types

'expected-improvement-per-second-plus'
MaxObjectiveEvaluationsNúmero máximo de evaluaciones de funciones objetivas.para o , y toda la cuadrícula para30'bayesopt''randomsearch''gridsearch'
MaxTime

Límite de tiempo, especificado como un real positivo. El límite de tiempo es en segundos, medido por y .tictoc El tiempo de ejecución puede superar porque no interrumpe las evaluaciones de funciones.MaxTimeMaxTime

Inf
NumGridDivisionsPara , el número de valores en cada dimensión.'gridsearch' El valor puede ser un vector de enteros positivos que dan el número de valores para cada dimensión o un escalar que se aplica a todas las dimensiones. Este campo se omite para las variables categóricas.10
ShowPlotsValor lógico que indica si se deben mostrar trazados. Si , este campo traza el mejor valor de función objetivo con respecto al número de iteración.true Si hay uno o dos parámetros de optimización, y si es , también se traza un modelo de la función objetivo con los parámetros.Optimizer'bayesopt'ShowPlotstrue
SaveIntermediateResultsValor lógico que indica si se deben guardar los resultados cuando es .Optimizer'bayesopt' Si , este campo sobrescribe una variable de área de trabajo denominada en cada iteración.true'BayesoptResults' La variable es un objeto.BayesianOptimizationfalse
Verbose

Visualice en la línea de comandos.

  • — Sin visualización iterativa0

  • — Visualización iterativa1

  • — Pantalla iterativa con información adicional2

Para obtener más información, consulte el argumento de par nombre-valor.bayesoptVerbose

1
UseParallelValor lógico que indica si se debe ejecutar la optimización bayesiana en paralelo, lo que requiere .Parallel Computing Toolbox™ Debido a la no reproducibilidad de la sincronización paralela, la optimización bayesiana paralela no produce necesariamente resultados reproducibles. Para obtener más información, consulte .Parallel Bayesian Optimizationfalse
Repartition

Valor lógico que indica si se debe volver a particionar la validación cruzada en cada iteración. Si , el optimizador utiliza una sola partición para la optimización.false

por lo general da los resultados más robustos porque esta configuración tiene en cuenta el ruido de partición.true Sin embargo, para obtener buenos resultados, se requiere al menos el doble de evaluaciones de funciones.true

false
No utilice más de uno de los tres nombres de campo siguientes.
CVPartitionUn objeto, tal como lo creó .cvpartitioncvpartitionsi no especifica ningún campo de validación cruzada'Kfold',5
HoldoutUn escalar en el rango que representa la fracción de retención.(0,1)
KfoldUn entero mayor que 1.

Ejemplo: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)

Tipos de datos: struct

Argumentos de salida

contraer todo

árbol de clasificación, devuelto como un objeto de árbol de clasificación.

El uso de las opciones , , , , u o en un árbol de clase .'CrossVal''KFold''Holdout''Leaveout''CVPartition'ClassificationPartitionedModel No puede utilizar un árbol particionado para la predicción, por lo que este tipo de árbol no tiene un método.predict En su lugar, se utiliza para predecir las respuestas para las observaciones que no se utilizan para el entrenamiento.kfoldPredict

De lo contrario, es de clase, y puede usar eltreeClassificationTree predict método para hacer predicciones.

Más acerca de

contraer todo

Prueba de curvatura

Es una prueba estadística que evalúa la hipótesis nula de que dos variables no están asociadas.prueba de curvatura

La prueba de curvatura entre la variable predictora y se lleva a cabo utilizando este proceso.xy

  1. Si es continuo, entonces particionarlo en sus cuartiles.x Cree una variable nominal que bins observations según la sección de la partición que ocupen. Si faltan valores, cree una ubicación adicional para ellos.

  2. Para cada nivel en el predictor particionado 1... y la clase en la respuesta 1,..., , calcular la proporción ponderada de observaciones en la clasejJkKk

    π^jk=i=1nI{yi=k}wi.

    Wi es el peso de la observación,i wi=1, es la función del indicador y es el tamaño de la muestra.In Si todas las observaciones tienen el mismo peso, entonces π^jk=njknDónde Njk es el número de observaciones en el nivel del predictor que están en clase.jk

  3. Calcular la estadística de prueba

    t=nk=1Kj=1J(π^jkπ^j+π^+k)2π^j+π^+k

    π^j+=kπ^jk, es decir, la probabilidad marginal de observar el predictor a nivel .j π^+k=jπ^jk, esa es la probabilidad marginal de observar la clase .k Si es lo suficientemente grande, entonces se distribuye como unntχ2 con ( – 1)( – 1) grados de libertad.KJ

  4. Si el valor -para la prueba es menor que 0,05, rechace la hipótesis nula de que no hay asociación entre y .pxy

Al determinar el mejor predictor dividido en cada nodo, el algoritmo CART estándar prefiere seleccionar predictores continuos que tengan muchos niveles. A veces, una selección de este tipo puede ser falsa y también puede enmascarar predictores más importantes que tienen menos niveles, como los predictores categóricos.

La prueba de curvatura se puede aplicar en lugar de CART estándar para determinar el mejor predictor dividido en cada nodo. En ese caso, la mejor variable predictora de división es la que minimiza los valores significativos (aquellos menores que 0,05) de las pruebas de curvatura entre cada predictor y la variable de respuesta.p Tal selección es robusta para el número de niveles en los predictores individuales.

Nota

Si los niveles de un predictor son puros para una clase en particular, entonces fitctree fusiona esos niveles. Por lo tanto, en el paso 3 del algoritmo, puede ser menor que el número real de niveles en el predictor.J Por ejemplo, si tiene 4 niveles y todas las observaciones de los contenedores 1 y 2 pertenecen a la clase 1, esos niveles son puros para la clase 1.x Por consiguiente fitctree fusiona las observaciones en los contenedores 1 y 2, y se reduce a 3.J

Para obtener más información sobre cómo se aplica la prueba de curvatura al crecimiento de árboles de clasificación, consulte y .Reglas de división de nodo[4]

Impureza y Error de nodo

divide los nodos en función de uno o .ClassificationTreeImpurezaError de nodo

Impureza significa una de varias cosas, dependiendo de su elección del argumento de par nombre-valor:SplitCriterion

  • El índice de diversidad de Gini ( ) — El índice Gini de un nodo esgdi

    1ip2(i),

    donde la suma está sobre las clases en el nodo, y ( ) es la fracción observada de clases con clase que alcanzan el nodo.ipii Un nodo con una sola clase (un nodo) tiene índice Gini; de lo contrario, el índice Gini es positivo.Puro0 Así que el índice Gini es una medida de impureza de los nórtelos.

  • Desviación ( ) — Con ( ) definido igual que para el índice Gini, la desviación de un nodo es'deviance'pi

    ip(i)log2p(i).

    Un nodo puro tiene desviación; de lo contrario, la desviación es positiva.0

  • Regla de dos isos ( ) — Twoing no es una medida de pureza de un nodo, sino que es una medida diferente para decidir cómo dividir un nodo.'twoing' Let ( ) denotan la fracción de los miembros de la clase en el nodo secundario izquierdo después de una división y ( ) denotan la fracción de los miembros de la clase en el nodo secundario derecho después de una división.LiiRii Elija el criterio de división para maximizar

    P(L)P(R)(i|L(i)R(i)|)2,

    donde ( ) y ( ) son las fracciones de observaciones que se dividen a la izquierda y a la derecha respectivamente.PLPR Si la expresión es grande, la división hizo que cada nodo secundario fuera más puro. De forma similar, si la expresión es pequeña, la división hizo que cada nodo secundario fuera similar entre sí y, por lo tanto, similar al nodo primario. La división no aumentó la pureza del nodo.

  • Error de nodo — El error de nodo es la fracción de clases mal clasificadas en un nodo. Si es la clase con el mayor número de muestras de entrenamiento en un nodo, el error de nodo esj

    1 – ( ).pj

Prueba de interacción

Es una prueba estadística que evalúa la hipótesis nula de que no hay interacción entre un par de variables predictoras y la variable de respuesta.prueba de interacción

La prueba de interacción que evalúa la asociación entre las variables predictorasx1 Yx2 con respecto a se lleva a cabo utilizando este proceso.y

  1. Six1 Ox2 es continuo, luego particionar esa variable en sus cuartiles. Cree una variable nominal que bins observations según la sección de la partición que ocupen. Si faltan valores, cree una ubicación adicional para ellos.

  2. Crear la variable nominal con el valor de la variable de la unidad de valor de la unidad de valorzJJ1J2 que asigna un índice a la observación según los niveles deix1 Yx2 pertenece. Elimine los niveles que no correspondan a ninguna observación.z

  3. Llevar a cabo un entre y .prueba de curvaturazy

Al cultivar árboles de decisión, si hay interacciones importantes entre pares de predictores, pero también hay muchos otros predictores menos importantes en los datos, entonces CART estándar tiende a perder las interacciones importantes. Sin embargo, realizar pruebas de curvatura e interacción para la selección de predictores en su lugar puede mejorar la detección de interacciones importantes, lo que puede producir árboles de decisión más precisos.

Para obtener más información sobre cómo se aplica la prueba de interacción al crecimiento de árboles de decisión, consulte y .Prueba de curvaturaReglas de división de nodo[3]

Medida predictiva de la asociación

Es un valor que indica la similitud entre las reglas de decisión que dividen las observaciones.medida predictiva de la asociación Entre todas las posibles divisiones de decisión que se comparan con la división óptima (que se encuentra al cultivar el árbol), el mejor produce la máxima medida predictiva de la asociación.división de decisión sustituta La segunda mejor división sustituta tiene la segunda mayor medida predictiva de asociación.

Supongo Xj Y Xk son variables predictoras y , respectivamente, y .jkjk En el nodo , la medida predictiva de la asociación entre la división óptimat Xj ) y una división suplenteu Xk < esv

λjk=min(PL,PR)(1PLjLkPRjRk)min(PL,PR).

  • PL es la proporción de observaciones en el nodo, de tal manera quet Xj < .u El subíndice representa el elemento secundario izquierdo del nodo .Lt

  • PR es la proporción de observaciones en el nodo, de tal manera quet Xj ≥.u El subíndice representa el elemento secundario correcto del nodo .Rt

  • PLjLk es la proporción de observaciones en el nodo, de tal forma quet Xj < yu Xk < .v

  • PRjRk es la proporción de observaciones en el nodo, de tal forma quet Xj Yu Xk ≥.v

  • Observaciones con valores faltantes para Xj O Xk no contribuyen a los cálculos de la proporción.

Λjk es un valor en (–,1]. Si λjk > 0Entonces Xk , es una división sustituta que vale la pena parav Xj < .u

División de la decisión suplente

A es una alternativa a la división de decisión óptima en un nodo determinado en un árbol de decisión.división de decisión sustituta La división óptima se encuentra mediante el crecimiento del árbol; la división suplente utiliza una variable predictora y un criterio de división similares o correlacionados.

Cuando falta el valor del predictor de división óptimo para una observación, la observación se envía al nodo secundario izquierdo o derecho utilizando el mejor predictor suplente. Cuando también falta el valor del mejor predictor de división suplente para la observación, la observación se envía al nodo secundario izquierdo o derecho utilizando el segundo mejor predictor suplente, y así sucesivamente. Las divisiones de candidatos se ordenan en orden descendente por su archivo .medida predictiva de la asociación

Sugerencias

  • De forma predeterminada, es .Prune'on' Sin embargo, esta especificación no poda el árbol de clasificación. Para podar un árbol de clasificación entrenado, pase el árbol de clasificación a prune.

  • Después de entrenar un modelo, puede generar código C/C++ que predice las etiquetas para los nuevos datos. La generación de código C/C++ requiere MATLAB Coder™. Para obtener más información, consulte .Introduction to Code Generation

Algoritmos

contraer todo

Reglas de división de nodo

fitctree utiliza estos procesos para determinar cómo dividir el nodo.t

  • Para CART estándar (es decir, si es ) y para todos los predictoresPredictorSelection'allpairs' Xi, 1,..., :ip

    1. fitctree calcula la impureza ponderada del nodo,t t. Para las medidas de impureza sensato admitidas, véase .SplitCriterion

    2. fitctree estima la probabilidad de que una observación esté en el nodo utilizandot

      P(T)=jTwj.

      Wj es el peso de la observación, y es el conjunto de todos los índices de observación en el nodo.jTt Si no especifica o , entoncesPriorWeights Wj 1/ , dónde está el tamaño de la muestra.nn

    3. fitctree Tipo Xi en orden ascendente. Cada elemento del predictor ordenado es un candidato de división o punto de corte. fitctree almacena los índices correspondientes a los valores que faltan en el conjunto TU, que es el conjunto sin dividir.

    4. fitctree determina la mejor manera de dividir el nodo utilizandot Xi maximizando la ganancia de impurezas (o ) en todos los candidatos divididos.I Es decir, para todos los candidatos divididos en Xi:

      1. fitctree divide las observaciones en nodos secundarios izquierdo y derecho (tTL Y TR, respectivamente).

      2. fitctree calcula el valor de . Supongamos que para un candidato de división en particular,I TL Y TR contener índices de observación en los conjuntos TL Y TRRespectivamente.

        • Si Xi no contiene ningún valor que falte, entonces la ganancia de impureza para el candidato de división actual es

          ΔI=P(T)itP(TL)itLP(TR)itR.

        • Si Xi contiene los valores que faltan entonces, suponiendo que las observaciones faltan al azar, la ganancia de impureza es

          ΔIU=P(TTU)itP(TL)itLP(TR)itR.

          TTU es el conjunto de todos los índices de observación en el nodo que no faltan.t

        • Si utiliza , entonces:división de la decisión sustituta

          1. fitctree calcula la división de decisión entre la división de decisiónmedidas predictivas de asociación Xj y todas las posibles divisiones de decisiónu Xk < , .vjk

          2. fitctree ordena las posibles divisiones de decisión alternativas en orden descendente por su medida predictiva de asociación con la división óptima. La división suplente es la división de decisión que produce la mayor medida.

          3. fitctree decide las asignaciones de nodo secundario para observaciones con un valor faltante para Xi usando la división suplente. Si el predictor suplente también contiene un valor faltante, entonces fitctree utiliza la división de decisión con la segunda medida más grande, y así sucesivamente, hasta que no haya otros sustitutos. Es posible que fitctree para dividir dos observaciones diferentes en el nodo utilizando dos divisiones suplentes diferentes.t Por ejemplo, supongamos que los predictoresx1 Yx2 son los mejores y segundos mejores sustitutos, respectivamente, para el predictor Xi, 1,2o, en el nodo .it Si la observación del predictorm Xi falta (es decir, Xmi falta), peroxm1 no falta, entoncesx1 es el predictor sustituto para la observación Xmi. Si las observacionesx(m + 1),i y ( + 1), faltan, peroxm1x(m + 1),2 no falta, entoncesx2 es el predictor suplente para la observación + 1.m

          4. fitctree utiliza la fórmula de ganancia de impureza apropiada. Es decir, si fitctree no puede asignar todas las observaciones que faltan en el nodo a los nodos secundarios mediante divisiones sustitutas, entonces la ganancia de impureza es detU. Lo contrario fitctree para la ganancia de impurezas.I

      3. fitctree elige el candidato que produce la mayor ganancia de impurezas.

    fitctree divide la variable predictora en el punto de corte que maximiza la ganancia de impureza.

  • Para la prueba de curvatura (es decir, si es ):PredictorSelection'curvature'

    1. fitctree entre cada predictor y la respuesta para las observaciones en el nodo.pruebas de curvaturat

      • Si todos los valores son al menos 0,05, entoncesp fitctree no divide el nodo .t

      • Si hay un valor mínimo, entoncesp fitctree elige el predictor correspondiente para dividir el nodo .t

      • Si más de un valor es cero debido al subdesbordamiento, entoncesp fitctree aplica CART estándar a los predictores correspondientes para elegir el predictor dividido.

    2. Si fitctree elige un predictor dividido y, a continuación, utiliza CART estándar para elegir el punto de corte (consulte el paso 4 en el proceso CART estándar).

  • Para la prueba de interacción (es decir, si es ):PredictorSelection'interaction-curvature'

    1. Para observaciones en el nodo ,t fitctree entre cada predictor y la respuesta y entre cada par de predictores y la respuesta.pruebas de curvaturapruebas de interacción

      • Si todos los valores son al menos 0,05, entoncesp fitctree no divide el nodo .t

      • Si hay un valor mínimo y es el resultado de una prueba de curvatura, entoncesp fitctree elige el predictor correspondiente para dividir el nodo .t

      • Si hay un valor mínimo y es el resultado de una prueba de interacción, entoncesp fitctree elige el predictor dividido utilizando CART estándar en el par correspondiente de predictores.

      • Si más de un valor es cero debido al subdesbordamiento, entoncesp fitctree aplica CART estándar a los predictores correspondientes para elegir el predictor dividido.

    2. Si fitctree elige un predictor dividido y, a continuación, utiliza CART estándar para elegir el punto de corte (consulte el paso 4 en el proceso CART estándar).

Control de profundidad del árbol

  • Si es y es (que son los valores predeterminados para estos argumentos de par nombre-valor), el software aplica la poda sólo a las hojas y mediante el error de clasificación.MergeLeaves'on'PruneCriterion'error' Esta especificación equivale a la fusión de hojas que comparten la clase más popular por hoja.

  • Para acomodar ,MaxNumSplits fitctree divide todos los nodos del archivo actual y, a continuación, cuenta el número de nodos de bifurcación.Capa Una capa es el conjunto de nodos que son equidistantes del nodo raíz. Si el número de nodos de bifurcación supera ,MaxNumSplits fitctree sigue este procedimiento:

    1. Determine cuántos nodos de bifurcación de la capa actual deben desdividirse para que haya como máximo nodos de bifurcación.MaxNumSplits

    2. Ordene los nodos de rama por sus ganancias de impureza.

    3. Desdivide el número de ramas menos exitosas.

    4. Devuelva el árbol de decisión cultivado hasta ahora.

    Este procedimiento produce árboles equilibrados al máximo.

  • El software divide los nodos de rama capa por capa hasta que se produce al menos uno de estos eventos:

    • Hay nodos de bifurcación.MaxNumSplits

    • Una división propuesta hace que el número de observaciones en al menos un nodo de rama sea menor que .MinParentSize

    • Una división propuesta hace que el número de observaciones en al menos un nodo hoja sea menor que .MinLeafSize

    • El algoritmo no puede encontrar una buena división dentro de una capa (es decir, el criterio de poda (ver ), no mejora para todas las divisiones propuestas en una capa).PruneCriterion Un caso especial es cuando todos los nodos son puros (es decir, todas las observaciones en el nodo tienen la misma clase).

    • Para valores o de , todas las pruebas producen valores superiores a 0,05.'curvature''interaction-curvature'PredictorSelectionp

    y no afectan a la división en sus valores predeterminados.MaxNumSplitsMinLeafSize Por lo tanto, si establece , la división podría detenerse debido al valor de , antes de que se produzcan las divisiones.'MaxNumSplits'MinParentSizeMaxNumSplits

Paralelización

Para sistemas de doble núcleo y superiores, fitctree paraleliza los árboles de decisión de entrenamiento mediante bloques de creación de roscado (TBB).Intel® Para obtener más información sobre TBB, consulte .Intelhttps://software.intel.com/en-us/intel-tbb

Referencias

[1] Breiman, L., J. Friedman, R. Olshen, and C. Stone. Classification and Regression Trees. Boca Raton, FL: CRC Press, 1984.

[2] Coppersmith, D., S. J. Hong, and J. R. M. Hosking. “Partitioning Nominal Attributes in Decision Trees.” Data Mining and Knowledge Discovery, Vol. 3, 1999, pp. 197–217.

[3] Loh, W.Y. “Regression Trees with Unbiased Variable Selection and Interaction Detection.” Statistica Sinica, Vol. 12, 2002, pp. 361–386.

[4] Loh, W.Y. and Y.S. Shih. “Split Selection Methods for Classification Trees.” Statistica Sinica, Vol. 7, 1997, pp. 815–840.

Capacidades ampliadas

Introducido en R2014a