¿Puedo duplicar los mismos datos para una tarea de clasificación en términos de aumento de datos?

Lamentablemente, no creo que simplemente sea útil duplicar los datos. El aumento de datos está diseñado con el objetivo de hacer que el modelo sea más robusto a las transformaciones que, en teoría, no deberían alterar la etiqueta correspondiente. Esto se logra al proporcionar al modelo muestras de entrenamiento que se han modificado ligeramente bajo una o más de estas transformaciones (sin modificar la etiqueta). En mi opinión, simplemente expandir el tamaño del conjunto de capacitación clonando los datos perdidos ya disponibles en este punto.

Aquí hay una prueba rápida de los datos de Iris:

importar numpy como np
de sklearn importar conjuntos de datos
de sklearn.model_selection import train_test_split
desde xgboost importa XGBClassifier como xgb

iris = datasets.load_iris ()
X_train, X_test, y_train, y_test = \
train_test_split (iris.data, iris.target)

clf = xgb (
max_depth = 3,
tasa de aprendizaje = 0.3,
n_estimadores = 50,
objetivo = ‘multi: softmax’,
)
clf.fit (
X_train, y_train,
eval_set = [(X_test, y_test)],
eval_metric = “mlogloss”,
early_stopping_rounds = 1,
)

[0] validation_0-mlogloss: 0.75372
Entrenaremos hasta que validation_0-mlogloss no haya mejorado en 1 rondas.
[1] validation_0-mlogloss: 0.553502
[2] validation_0-mlogloss: 0.427017
[3] validation_0-mlogloss: 0.347563
[4] validation_0-mlogloss: 0.288629
[5] validation_0-mlogloss: 0.249606
[6] validation_0-mlogloss: 0.226499
[7] validation_0-mlogloss: 0.208628
[8] validation_0-mlogloss: 0.195841
[9] validation_0-mlogloss: 0.185393
[10] validation_0-mlogloss: 0.182968
[11] validation_0-mlogloss: 0.179824
[12] validation_0-mlogloss: 0.176674
[13] validation_0-mlogloss: 0.17374
[14] validation_0-mlogloss: 0.173524
[15] validation_0-mlogloss: 0.173626
Parandome, deteniendome. Mejor iteración:
[14] validation_0-mlogloss: 0.173524

clf2 = xgb (
max_depth = 3,
tasa de aprendizaje = 0.3,
n_estimadores = 50,
objetivo = ‘multi: softmax’,
)
clf2.fit (
np.concatenate ((X_train, X_train)), np.concatenate ((y_train, y_train)),
eval_set = [(X_test, y_test)],
eval_metric = “mlogloss”,
early_stopping_rounds = 1,
)

[0] validation_0-mlogloss: 0.744153
Entrenaremos hasta que validation_0-mlogloss no haya mejorado en 1 rondas.
[1] validation_0-mlogloss: 0.542953
[2] validation_0-mlogloss: 0.417104
[3] validation_0-mlogloss: 0.333421
[4] validation_0-mlogloss: 0.278498
[5] validation_0-mlogloss: 0.241749
[6] validation_0-mlogloss: 0.219007
[7] validation_0-mlogloss: 0.204032
[8] validation_0-mlogloss: 0.193352
[9] validation_0-mlogloss: 0.186731
[10] validation_0-mlogloss: 0.18579
[11] validation_0-mlogloss: 0.178291
[12] validation_0-mlogloss: 0.178525
Parandome, deteniendome. Mejor iteración:
[11] validation_0-mlogloss: 0.178291