--- title: "Algoritmos de Clasificación" url: https://docs.catalyst.zoho.com/es/quickml/help/ml-algorithms/classification-algorithms/ description: "QuickML is a fully no-code ML pipeline builder service in the Catalyst development platform for creating machine-learning pipelines with end-to-end solutions." last_updated: 2026-03-24T12:08:39Z service: QuickML type: general --- # Algoritmos de ML en QuickML QuickML se centra principalmente en potenciar los Pipelines de ML con Operaciones de Machine Learning de manera sencilla para proporcionar un entorno de ejecución de pipeline fluido. Por lo tanto, se ha integrado con una amplia gama de algoritmos y características de ML para proporcionar los mejores resultados analíticos a partir de los datos. Los algoritmos de ML son programas que pueden aprender de los datos y mejorar con la experiencia, sin ninguna intervención externa. Los siguientes algoritmos y operaciones están todos disponibles en **QuickML como etapas** que pueden configurarse en una o más ejecuciones de pipeline. Los algoritmos más ampliamente utilizados en el dominio de la ciencia de datos son: 1. **Algoritmos de clasificación** 2. **Algoritmos de regresión** # Algoritmos de Clasificación La clasificación es la tarea de predecir una etiqueta de clase discreta. QuickML cuenta con los siguientes algoritmos de clasificación 1. ### AdaBoost Classification AdaBoost es un algoritmo de aprendizaje automático que construye una serie de árboles de decisión pequeños, de un solo paso (un nivel), adaptando cada árbol para predecir casos difíciles omitidos por los árboles anteriores y combinando todos los árboles en un solo modelo. Esta clasificación comienza ajustando un clasificador en el conjunto de datos original, seguido de copias adicionales del clasificador en el mismo conjunto de datos. Los pesos de estas instancias se ajustan según el error de la predicción actual. De modo que los clasificadores subsiguientes se centran más en los casos difíciles. #### Hiperparámetros:
Parámetro Descripción Tipo de Dato Valores Posibles Valores Predeterminados
`base_estimator` El estimador base a partir del cual se construye el conjunto potenciado. Si es none, entonces el estimador base es `DecisionTreeClassifier` inicializado con **max_depth=1**. object Cualquier modelo de clasificación excepto el modelo KNN Classification None
`n_estimators` (number of estimators) El número máximo de estimadores en los que se termina el boosting. En caso de ajuste perfecto, el procedimiento de aprendizaje se detiene anticipadamente. int [1, 500] 50
`learning_rate` Peso aplicado a cada clasificador en cada iteración de boosting. Una tasa de aprendizaje más alta aumenta la contribución de cada clasificador. float (0.0, +Inf) 1.0
`algorithm` Si es 'SAMME.R' entonces usa el algoritmo de boosting real SAMME.R. base_estimator debe soportar el cálculo de probabilidades de clase. Si es 'SAMME' entonces usa el algoritmo de boosting discreto SAMME. El algoritmo SAMME.R típicamente converge más rápido que SAMME, logrando un menor error de prueba con menos iteraciones de boosting. string {'SAMME', 'SAMME.R'} 'SAMME.R'
2. ### CatBoost Classification CatBoost se basa en árboles de decisión con gradient boosting. Durante el entrenamiento, se construye un conjunto de árboles de decisión consecutivamente. Cada árbol sucesivo se construye con una pérdida reducida en comparación con los árboles anteriores. El número de árboles se controla mediante los parámetros iniciales. Esta clasificación tiene un **tiempo de predicción mucho menor** en comparación con otros. #### Hiperparámetros:
Parámetro Descripción Tipo de Dato Valores Posibles Valores Predeterminados
`learning_rate` Se utiliza para reducir el paso del gradiente. float (0,1] 0.03
`l2_leaf_reg` (l2_leaf_regularization) Coeficiente del término de regularización L2 de la función de costo. float [0,+inf) 3.0
`rsm` (random subspace method) El porcentaje de características a usar en cada selección de división, cuando las características se seleccionan nuevamente de forma aleatoria float (0,1] None
`loss_function` La métrica a usar en el entrenamiento. El valor especificado también determina el problema de aprendizaje automático a resolver. Algunas métricas soportan parámetros opcionales. string {'Logloss', 'CrossEntropy', 'MultiClass', 'MultiClassOneVsAll'} 'MultiClass'
`nan_mode` El método para procesar valores faltantes en el conjunto de datos de entrada. string {'Forbidden', 'Min', 'Max'} Min
`leaf_estimation_method` El método utilizado para calcular los valores en las hojas. string {"Newton", "Gradient"} None
`score_function` El tipo de puntuación utilizado para seleccionar la siguiente división durante la construcción del árbol. string {L2, Cosine} Cosine
`max_depth` Profundidad máxima del árbol. int [1,+Inf) None
`n_estimators` (number of estimators) El número máximo de árboles que se pueden construir al resolver problemas de aprendizaje automático. Al usar otros parámetros que limitan el número de iteraciones, el número final de árboles puede ser menor que el número especificado en este parámetro int [1, 500] None
3. ### Decision-Tree Classification El árbol de decisión construye modelos de clasificación o regresión en forma de estructura de árbol. Descompone un conjunto de datos en subconjuntos cada vez más pequeños, mientras que al mismo tiempo se desarrolla incrementalmente un árbol de decisión asociado. Los árboles de decisión pueden manejar **tanto datos categóricos como numéricos**. Al predecir el valor de salida de un conjunto de características, predecirá la salida basándose en el subconjunto en el que cae el conjunto de características. #### Hiperparámetros
Parámetro Descripción Tipo de Dato Valores Posibles Valores Predeterminados
`criterion` La función para medir la calidad de una división. string {"gini", "entropy"} "gini"
`splitter` La estrategia utilizada para elegir la división en cada nodo. string {"best", "random"} "best"
`max_depth` La profundidad máxima del árbol. Si es None, entonces los nodos se expanden hasta que todas las hojas sean puras o hasta que todas las hojas contengan menos de min_samples_split muestras. int (0, +Inf) None
`min_samples_split` El número mínimo de muestras requeridas para dividir un nodo interno. int or float [2, +Inf) or (0, 1.0] 2
`min_samples_leaf` El número mínimo de muestras requeridas para estar en un nodo hoja. Un punto de división en cualquier profundidad solo se considerará si deja al menos min_samples_leaf muestras de entrenamiento en cada una de las ramas izquierda y derecha. int or float [1, +Inf) or (0, 0.5] 1
`min_weight_fraction_leaf` La fracción ponderada mínima de la suma total de pesos (de todas las muestras de entrada) requerida para estar en un nodo hoja. float [0, 0.5] 0
`max_features` El número de características a considerar cuando se busca la mejor división int, float or string (0, n_features] or { "sqrt", "log2"} None
`max_leaf_nodes` Hacer crecer un árbol con max_leaf_nodes de la mejor manera posible. Los mejores nodos se definen como la reducción relativa en impureza. Si es None, entonces número ilimitado de nodos hoja. int (1, +Inf) None
`min_impurity_decrease` Un nodo se dividirá si esta división induce una disminución de la impureza mayor o igual a este valor. float [0, +Inf) 0.0
4. ### GB Classification La clasificación por gradient-boosting calcula la diferencia entre la predicción actual y el valor objetivo correcto conocido. Esta diferencia se llama residuo. Después de encontrar este valor, el clasificador gradient-boosting entrena un modelo débil (Árbol de Decisión) que mapea características a ese residuo. Este residuo predicho por un modelo débil se añade a la entrada del modelo existente y así este proceso empuja al modelo hacia el objetivo correcto. Repetir este paso múltiples veces mejora la predicción general del modelo. #### Hiperparámetros:
Parámetro Descripción Tipo de Dato Valores Posibles Valores Predeterminados
`loss` La función de pérdida a optimizar. 'deviance' se refiere a la desviación (= regresión logística) para clasificación con salidas probabilísticas. string {'deviance', 'exponential'} 'deviance'
`learning_rate` La tasa de aprendizaje reduce la contribución de cada árbol por learning_rate. Existe un equilibrio entre learning_rate y n_estimators. float (0.0, +Inf) 0.1
`n_estimators` (number of estimators) El número de etapas de boosting a realizar. int [1, 500] 100
`criterion` La función para medir la calidad de una división. string {'friedman_mse', 'mse', 'mae'} 'friedman_mse'
`subsample` La fracción de muestras a usar para ajustar los aprendices base individuales. float (0.0, 1.0] 1.0
`max_depth` La profundidad máxima de los estimadores de regresión individuales. int (0, +Inf) None
`min_samples_split` El número mínimo de muestras requeridas para dividir un nodo interno int or float [2, +Inf) or (0, 1.0] 2
`min_samples_leaf` El número mínimo de muestras requeridas para estar en un nodo hoja. int or float [1, +Inf) or (0, 0.5] 1
`min_weight_fraction_leaf` La fracción ponderada mínima de la suma total de pesos (de todas las muestras de entrada) requerida para estar en un nodo hoja. float [0, 0.5] 0
`max_features` El número de características a considerar cuando se busca la mejor división int, float or string (0, n_features] or { "sqrt", "log2"} None
`max_leaf_nodes` Hacer crecer árboles con max_leaf_nodes de la mejor manera posible. Los mejores nodos se definen como la reducción relativa en impureza. int (1, +Inf) None
`min_impurity_decrease` Un nodo se dividirá si esta división induce una disminución de la impureza mayor o igual a este valor. float [0, +Inf) 0.0
`init` Un objeto estimador que se utiliza para calcular las predicciones iniciales. object or string estimador (Cualquier modelo de clasificación excepto SVM classification y catboost) o 'zero' None
`warm_start` Cuando se establece en True, reutiliza la solución de la llamada anterior a fit y añade más estimadores al conjunto, de lo contrario, simplemente borra la solución anterior. bool True or False False
`tol` (tolerance) Tolerancia para la parada anticipada. Cuando la pérdida no mejora en al menos tol durante n_iter_no_change iteraciones (si se establece en un número), el entrenamiento se detiene. float [0.0, +Inf) 1e-4
5. ### KNN Classification KNN funciona encontrando las distancias entre una consulta (instancia de datos) y todos los ejemplos en los datos, seleccionando el número especificado de ejemplos (K) más cercanos a la consulta, y luego votando por la etiqueta más frecuente en el vecindario. #### Hiperparámetros:
Parámetro Descripción Tipo de Dato Valores Posibles Valores Predeterminados
`n_neighbors` (number of neighbours) Número de vecinos a usar por defecto para consultas kneighbors. int [1, n] n = Número total de registros en el conjunto de datos 5
`weights` Función de peso utilizada en la predicción. Valores posibles string {'uniform', 'distance'} 'uniform'
`algorithm` Algoritmo utilizado para calcular los vecinos más cercanos. string {'auto', 'ball_tree', 'kd_tree', 'brute'} 'auto'
`leaf_size` Tamaño de hoja pasado a BallTree o KDTree. Esto puede afectar la velocidad de la construcción y la consulta, así como la memoria requerida para almacenar el árbol. int (1, +Inf) 30
`p` Parámetro de potencia para la métrica de Minkowski. int [1,3] 2
`metric` Métrica a usar para el cálculo de distancia. El valor predeterminado es "minkowski", que resulta en la distancia euclidiana estándar cuando p = 2. string {'cityblock', 'cosine', 'euclidean', 'l1', 'l2', 'manhattan', 'nan_euclidean', 'minkowski'} 'minkowski'
6. ### LGBM Classification LGBM funciona comenzando con una estimación inicial que se actualiza usando la salida de cada árbol. El parámetro de aprendizaje controla la magnitud de este cambio en las estimaciones. Se puede usar en cualquier dato y proporciona un alto grado de precisión, ya que contiene muchos pasos de preprocesamiento integrados. El algoritmo LightGBM crece verticalmente, lo que significa que crece por hojas, mientras que otros algoritmos crecen por niveles. LightGBM elige la hoja con la mayor pérdida para crecer. Puede reducir más la pérdida que un algoritmo por niveles al hacer crecer la misma hoja. #### Hiperparámetros:
Parámetro Descripción Tipo de Dato Valores Posibles Valores Predeterminados
`boosting_type` Método de boosting. string {'gbdt', 'dart', 'goss' } 'gbdt'
`num_leaves` Hojas máximas del árbol para aprendices base. int (1, +Inf) 31
`max_depth` Profundidad máxima del árbol para aprendices base, <= 0 significa sin límite. int (-Inf, +Inf) -1
`learning_rate` Tasa de aprendizaje de boosting. Se puede usar el parámetro callbacks del método fit para reducir/adaptar la tasa de aprendizaje en el entrenamiento usando el callback reset_parameter. float (0.0, +Inf) 0.1
`n_estimators` (number of estimators) Número de árboles potenciados a ajustar. int [1, 500] 100
`subsample_for_bin` Número de muestras para construir bins. int (0, +Inf) 200000
`min_split_gain` Reducción mínima de pérdida requerida para hacer una partición adicional en un nodo hoja del árbol. float [0.0, +Inf) 0.0
`min_child_weight` Suma mínima del peso de la instancia (Hessiano) necesaria en un hijo (hoja). float [0.0, +Inf) 1e-3
`min_child_samples` Número mínimo de datos necesarios en un hijo (hoja). int [0, +Inf) 20
`subsample` Proporción de submuestreo de la instancia de entrenamiento. float (0.0, 1.0] 1.0
`subsample_freq` (subsample_frequency) Frecuencia de submuestreo, <= 0 significa no habilitado. int (-Inf, +Inf) 0
`colsample_bytree` (column sample by tree) Proporción de submuestreo de columnas al construir cada árbol. float (0.0, 1.0] 1.0
`reg_alpha` (alpha) Término de regularización L1 en los pesos. float (0.0, +Inf) 0.0
`reg_lambda` (lambda) Término de regularización L2 en los pesos. float (0.0, +Inf) 0.0
`importance_type` El tipo de importancia de característica a llenar en featureimportances. Si es 'split', el resultado contiene el número de veces que la característica se usa en un modelo. Si es 'gain', el resultado contiene las ganancias totales de las divisiones que usan la característica. string { 'gain', 'split'} 'split'
7. ### Logistic Regression Cuando el objetivo es un **valor binario**, podemos usar la clasificación logística. Mapea el valor entre 0 y 1. #### Hiperparámetros:
Parámetro Descripción Tipo de Dato Valores Posibles Valores Predeterminados
`penalty` Especifica la norma de la penalización:
  • 'none': no se añade penalización;
  • 'l2': añade un término de penalización L2 y es la opción predeterminada;
  • 'l1': añade un término de penalización L1;
  • 'elasticnet': se añaden tanto términos de penalización L1 como L2.
string { 'l1', 'l2', 'elasticnet', 'none'} 'l2'
`dual` Formulación dual o primal. La formulación dual solo está implementada para la penalización l2 con el solver liblinear. bool True or False False
`tol` (tolerance) Tolerancia para los criterios de parada. float [0.0, +Inf) 1e-4
`C` Inverso de la fuerza de regularización; debe ser un float positivo. float [0.0, +Inf) 1.0
`solver` Algoritmo a usar en el problema de optimización. string { 'newton-cg', 'lbfgs', 'liblinear', 'sag', 'saga' } 'lbfgs'
`fit_intercept` Especifica si una constante (también conocida como sesgo o intercepto) debe añadirse a la función de decisión. bool True or False True
`l1_ratio` El parámetro de mezcla Elastic-Net, con 0 <= l1_ratio <= 1. Solo se usa si penalty='elasticnet'. float [0, 1] None
`multi_class` Si la opción elegida es 'ovr', entonces se ajusta un problema binario para cada etiqueta. Para 'multinomial' la pérdida minimizada es la pérdida multinomial ajustada a toda la distribución de probabilidad, incluso cuando los datos son binarios. string {'auto', 'ovr', 'multinomial'} 'auto'
`intercept_scaling` Útil solo cuando se usa el solver 'liblinear' y self.fit_intercept se establece en True. El intercepto se convierte en intercept_scaling * synthetic_feature_weight. float (0, +Inf) 1.0
> **Nota:** Los valores en el parámetro "solver" soportan solo algunos de los valores del parámetro "penalty". Las penalizaciones soportadas por el solver se mencionan a continuación: * newton-cg' - ['l2', 'none'] * 'lbfgs' - ['l2', 'none'] * 'liblinear' - ['l1', 'l2'] * 'sag' - ['l2', 'none'] * 'saga' - ['elasticnet', 'l1', 'l2', 'none'] 8. ### Naive Bayes Classification Naive Bayes es un clasificador que utiliza el **Teorema de Bayes**. Predice probabilidades de membresía para cada clase, como la probabilidad de que un registro o punto de datos dado pertenezca a una clase particular. La clase con la mayor probabilidad se considera como la clase más probable. 9. ### Random-Forest Classification El bosque aleatorio es un algoritmo de clasificación que consiste en muchos árboles de decisión. Utiliza bagging y aleatoriedad de características al construir árboles individuales para intentar crear un bosque no correlacionado de árboles cuya predicción por comité es más precisa que la de cualquier árbol individual. Bagging es un meta-estimador de conjunto que ajusta clasificadores/regresores base en subconjuntos aleatorios del conjunto de datos original, luego agrega sus predicciones individuales (ya sea por votación o por promediado) para formar una predicción final. #### Hiperparámetros:
Parámetro Descripción Tipo de Dato Valores Posibles Valores Predeterminados
`n_estimators` (number of estimators) El número de árboles en el bosque. int [1, 500] 100
`criterion` La función para medir la calidad de una división. string {"gini", "entropy"} "gini"
`max_depth` La profundidad máxima del árbol. Si es None, entonces los nodos se expanden hasta que todas las hojas sean puras o hasta que todas las hojas contengan menos de min_samples_split muestras. int (0, +Inf) None
`min_samples_split` El número mínimo de muestras requeridas para dividir un nodo interno int or float [2, +Inf) or (0, 1.0] 2
`min_samples_leaf` El número mínimo de muestras requeridas para estar en un nodo hoja. Un punto de división en cualquier profundidad solo se considerará si deja al menos min_samples_leaf muestras de entrenamiento en cada una de las ramas izquierda y derecha. int or float [1, +Inf) or (0, 0.5] 1
`min_weight_fraction_leaf` La fracción ponderada mínima de la suma total de pesos (de todas las muestras de entrada) requerida para estar en un nodo hoja. float [0, 0.5] 0.0
`max_features` El número de características a considerar cuando se busca la mejor división int, float or string (0, n_features] or { "sqrt"} None
`max_leaf_nodes` Hacer crecer árboles con max_leaf_nodes de la mejor manera posible. Los mejores nodos se definen como la reducción relativa en impureza. int (1, +Inf) None
`min_impurity_decrease` Un nodo se dividirá si esta división induce una disminución de la impureza mayor o igual a este valor. float [0, +Inf) 0.0
`bootstrap` Si se usan muestras bootstrap al construir árboles. Si es False, se usa el conjunto de datos completo para construir cada árbol. bool True or False True
`oob_score`(out of bag score) Si se usan muestras fuera de la bolsa para estimar la puntuación de generalización. Solo disponible si bootstrap=True. bool True or False False
`warm_start` Cuando se establece en True, reutiliza la solución de la llamada anterior a fit y añade más estimadores al conjunto, de lo contrario, simplemente ajusta un bosque completamente nuevo. bool True or False False
10. ### SVM Classification SVM, o Support Vector Machine, es un modelo lineal para problemas de clasificación y regresión. Puede resolver problemas lineales y no lineales y funciona bien para muchos problemas prácticos. La idea de SVM es simple: El algoritmo crea una línea o un hiperplano que separa los datos en clases. #### Hiperparámetros:
Parámetro Descripción Tipo de Dato Valores Posibles Valores Predeterminados
`C` Parámetro de regularización. La fuerza de la regularización es inversamente proporcional a C. float [0.0, +Inf) 1.0
`kernel` Especifica el tipo de kernel a utilizar en el algoritmo. Si no se proporciona ninguno, se usará 'rbf'. string {'linear', 'poly', 'rbf', 'sigmoid'} 'rbf'
`degree` Grado de la función kernel polinómica ('poly'). Ignorado por todos los demás kernels. int [0, +Inf) 3
`gamma` Coeficiente del kernel para 'rbf', 'poly' y 'sigmoid'. string or float {'scale', 'auto'} or (0.0, +Inf) 'scale'
`coef0` Término independiente en la función kernel. Solo es significativo en 'poly' y 'sigmoid'. float (-Inf, +Inf) 0.0
`shrinking` Si se debe usar la heurística de reducción. bool True or False True
`probability` Si se deben habilitar las estimaciones de probabilidad. bool True or False False
`tol` (tolerance) Tolerancia para el criterio de parada. float [0.0, +Inf) 1e-3
`decision_function_shape` Si se debe devolver una función de decisión uno-contra-todos ('ovr') de forma (n_samples, n_classes) como todos los demás clasificadores, o la función de decisión original uno-contra-uno ('ovo') de libsvm que tiene forma (n_samples, n_classes * (n_classes - 1) / 2). string {'ovo', 'ovr'} 'ovr'
`break_ties` Si es verdadero, decision_function_shape='ovr', y el número de clases > 2, predict romperá empates según los valores de confianza de decision_function; de lo contrario, se devuelve la primera clase entre las clases empatadas. bool True or False False
11. ### XGB Classification XGBoost es una biblioteca de gradient boosting distribuido optimizada diseñada para ser altamente eficiente, flexible y portable. Implementa algoritmos de aprendizaje automático bajo el framework de Gradient Boosting. Proporciona boosting paralelo de árboles para resolver muchos problemas de ciencia de datos de forma rápida y precisa. Utiliza regularización L1 y L2 para predecir puntos y es rápido en el entrenamiento. Cada modelo tiene Fit (para entrenar el modelo), predict (para predecir nuevos datos), get metrics (para obtener la precisión del modelo y otras métricas), y feature_importances (importancias de las características de entrada para la predicción). Los principios de funcionamiento básicos de Adaboost, CatBoost, Decision tree, Gradient boost(GB), LGBM, RandomForest, SVM y XGB son casi idénticos tanto para regresión como para clasificación. #### Hiperparámetros:
Parámetro Descripción Tipo de Dato Valores Posibles Valores Predeterminados
`booster` Decide qué booster usar. string {'gbtree', 'gblinear', 'dart' } 'gbtree'
`learning_rate` Reducción del tamaño del paso utilizada en la actualización para prevenir el sobreajuste. Después de cada paso de boosting, podemos obtener directamente los pesos de las nuevas características, y eta reduce los pesos de las características para hacer el proceso de boosting más conservador. float [0,1] 0.1
`n_estimators` (number of estimators) Número de árboles a ajustar. int [1, 500] 100
`objective` Regresión logística para clasificación binaria. string Mencionado debajo de la tabla. "binary:logistic"
`subsample` Controla la proporción de la muestra. int (0,1] 1
`max_depth` Profundidad máxima de un árbol. int (0, +Inf) 3
`max_delta_step` Si el valor se establece en 0, significa que no hay restricción. Si se establece en un valor positivo, puede ayudar a hacer que el paso de actualización sea más conservador. Generalmente este parámetro no es necesario, pero podría ayudar en la regresión logística cuando la clase está extremadamente desequilibrada. int or float [0, +Inf) 0
`colsample_bytree` (column sample by tree) Fracción de muestras aleatorias de columnas. float (0.0, 1.0] 1.0
`colsample_bylevel` (column sample by level) Es la proporción de submuestreo de columnas para cada nivel. El submuestreo ocurre una vez por cada nuevo nivel de profundidad alcanzado en un árbol. Las columnas se submuestrean del conjunto de columnas elegidas para el árbol actual. float (0.0, 1.0] 1.0
`min_child_weight` Suma mínima de pesos. int [0, +Inf) 1
`reg_alpha` (alpha) Término de regularización L1 en los pesos. float [0.0, +Inf) 0.0
`reg_lambda` (lambda) Término de regularización L2 en los pesos. float [0.0, +Inf) 0.0
`scale_pos_weight` (scale positive weight) Controla el equilibrio de pesos positivos y negativos, útil para clases desequilibradas. int [0, +Inf) 1
**VALORES POSIBLES PARA EL PARÁMETRO "OBJECTIVE":** {binary:logistic, binary:logitraw, binary:hinge, multi:softmax, multi:softprob}