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.

Tune RobustBoost

El algoritmo puede hacer buenas predicciones de clasificación incluso cuando los datos de entrenamiento tienen ruido.RobustBoost Sin embargo, los parámetros predeterminados pueden producir un conjunto que no predice bien.RobustBoost Este ejemplo muestra una forma de ajustar los parámetros para una mejor precisión predictiva.

Genere datos con ruido de etiqueta. Este ejemplo tiene veinte números aleatorios uniformes por observación, y clasifica la observación como si la suma de los primeros cinco números excede 2,5 (por lo que es más grande que la media), y de lo contrario:10

rng(0,'twister') % for reproducibility Xtrain = rand(2000,20); Ytrain = sum(Xtrain(:,1:5),2) > 2.5;

Para añadir ruido, cambie aleatoriamente el 10% de las clasificaciones:

idx = randsample(2000,200); Ytrain(idx) = ~Ytrain(idx);

Crear un conjunto con fines de comparación:AdaBoostM1

ada = fitcensemble(Xtrain,Ytrain,'Method','AdaBoostM1', ...     'NumLearningCycles',300,'Learners','Tree','LearnRate',0.1);

Crea un conjunto con.RobustBoost Debido a que los datos tienen un 10% de clasificación incorrecta, tal vez un objetivo de error del 15% es razonable.

rb1 = fitcensemble(Xtrain,Ytrain,'Method','RobustBoost', ...     'NumLearningCycles',300,'Learners','Tree','RobustErrorGoal',0.15, ...     'RobustMaxMargin',1);

Tenga en cuenta que si establece el objetivo de error en un valor lo suficientemente alto, el software devuelve un error.

Crea un conjunto con un objetivo de error muy optimista:0.01

rb2 = fitcensemble(Xtrain,Ytrain,'Method','RobustBoost', ...     'NumLearningCycles',300,'Learners','Tree','RobustErrorGoal',0.01);

Compare el error de reenvío de los tres conjuntos:

figure plot(resubLoss(rb1,'Mode','Cumulative')); hold on plot(resubLoss(rb2,'Mode','Cumulative'),'r--'); plot(resubLoss(ada,'Mode','Cumulative'),'g.'); hold off; xlabel('Number of trees'); ylabel('Resubstitution error'); legend('ErrorGoal=0.15','ErrorGoal=0.01',...     'AdaBoostM1','Location','NE');

Todas las curvas muestran un error de reenvío inferior al de la curva.RobustBoostAdaBoostM1 El objetivo de error de la curva muestra el error de reenvío más bajo en la mayor parte del intervalo.0.01

Xtest = rand(2000,20); Ytest = sum(Xtest(:,1:5),2) > 2.5; idx = randsample(2000,200); Ytest(idx) = ~Ytest(idx); figure; plot(loss(rb1,Xtest,Ytest,'Mode','Cumulative')); hold on plot(loss(rb2,Xtest,Ytest,'Mode','Cumulative'),'r--'); plot(loss(ada,Xtest,Ytest,'Mode','Cumulative'),'g.'); hold off; xlabel('Number of trees'); ylabel('Test error'); legend('ErrorGoal=0.15','ErrorGoal=0.01',...     'AdaBoostM1','Location','NE');

La curva de error para el objetivo de error 0,15 es la más baja (mejor) en el rango trazado. tiene un error mayor que la curva para el objetivo de error 0,15.AdaBoostM1 La curva para el objetivo de error demasiado optimista 0,01 sigue siendo sustancialmente mayor (peor) que los otros algoritmos para la mayor parte del rango trazado.

Consulte también

| |

Temas relacionados