Aviso:

Para brindarle información de soporte completa de manera más rápida, el contenido de esta página ha sido traducido al español mediante traducción automática. Para consultar la información de soporte más precisa, consulte la versión en inglés de este contenido.

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

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}

Última actualización 2026-03-24 17:38:39 +0530 IST