Fusión del modelo Task5 de control de riesgos financieros

1. Introducción

La fusión de modelos es un medio importante para puntuar en las últimas etapas del juego. Especialmente en los juegos de aprendizaje en equipo de varios jugadores, la fusión de los modelos de diferentes compañeros de equipo puede producir resultados inesperados. A menudo, cuanto mayor sea la diferencia entre los modelos, mejor será el rendimiento. de los modelos.Bajo la premisa, los resultados de la fusión de modelos mejorarán en gran medida.La siguiente es la forma de fusión de modelos.

  1. Promedio:
    a. Método de promedio simple
    b. Método de promedio ponderado
  2. Votación:
    a. Método de votación simple
    b. Método de votación ponderada
  3. Síntesis:
    a. fusión de clasificación
    b. fusión de registro
  4. apilamiento:
    a. Cree un modelo de múltiples capas y use los resultados de la predicción para reajustar las predicciones. 5. Combinación:
    a.Seleccione parte de los datos para el entrenamiento de predicción para obtener resultados de predicción como nuevas características y llévelos a los datos restantes para la predicción. La mezcla tiene solo una capa, mientras que el apilamiento tiene varias capas
  5. Impulso/empaquetado (ya mencionado en Task4, por lo que no entraré en detalles)

2 Explicación detallada de apilamiento\mezcla

  1. El apilamiento
    utiliza los resultados de predicción obtenidos por varios alumnos base y utiliza los resultados de predicción como un nuevo conjunto de entrenamiento para entrenar a un alumno. Como se muestra en la figura a continuación, se supone que hay cinco alumnos básicos, y los datos se llevan a los cinco alumnos básicos para obtener los resultados de la predicción, y luego se llevan al modelo seis para entrenamiento y prueba. Sin embargo, dado que los resultados obtenidos de los cinco alumnos básicos se incorporan directamente al modelo seis, es fácil que se produzca un sobreajuste. Por lo tanto, al usar el modelo de cinco y para la predicción, puede considerar usar la verificación K-fold para evitar el sobreajuste.
    inserte la descripción de la imagen aquí
  2. La combinación
    es diferente del apilamiento. La combinación combina el valor predicho como una nueva característica con la característica original para formar un nuevo valor de característica para la predicción. Para evitar el sobreajuste, los datos se dividen en dos partes, d1 y d2, y los datos de d1 se usan como conjunto de entrenamiento y los datos de d2 se usan como conjunto de prueba. Los datos pronosticados se usan como una nueva función y los datos de d2 se usan como un conjunto de entrenamiento para combinar nuevas funciones para predecir el resultado del conjunto de prueba.
    inserte la descripción de la imagen aquí
  3. La diferencia entre combinación y apilamiento
    A. apilamiento
    En el apilamiento, debido a que los datos utilizados por las dos capas son diferentes, se puede evitar el problema de la fuga de información. Durante la competición por equipos, no hay necesidad de compartir tus semillas aleatorias con tus compañeros de equipo.
    B. Fusión
    La fusión es más simple que el apilamiento y no necesita construir un modelo de varias capas. Dado que el par combinado divide los datos en dos partes, parte de la información de los datos se ignorará en la predicción final. Al mismo tiempo, cuando se usa la segunda capa de datos, puede ocurrir un sobreajuste porque la segunda capa de datos es menor.

3 código de ejemplo

3.1 Promedio

  1. Promedio ponderado simple, los resultados se fusionan directamente
    para encontrar el promedio de múltiples resultados de pronóstico. pre1-pren son los resultados predichos por n grupos de modelos, y se ponderan y fusionan
pre = (pre1 + pre2 + pre3 +...+pren )/n
  1. El método de promedio ponderado
    generalmente realiza una fusión ponderada en función de la precisión de los modelos de predicción anteriores y asigna pesos más altos a los modelos con alta precisión.
pre = 0.3pre1 + 0.3pre2 + 0.4pre3

3.2 Votación

  1. voto simple
from xgboost import XGBClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier, VotingClassifier
clf1 = LogisticRegression(random_state=1)
clf2 = RandomForestClassifier(random_state=1)
clf3 = XGBClassifier(learning_rate=0.1, n_estimators=150,max_depth=4,min_child_weight=2,subsample=0.7,objective='binary:logistic')
vclf = VotingClassifier(estimators=[('lr', clf1), ('rf', clf2), ('xgb',clf3)])
vclf = vclf .fit(x_train,y_train)
print(vclf .predict(x_test))
  1. voto ponderado
from xgboost import XGBClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier, VotingClassifier
clf1 = LogisticRegression(random_state=1)
clf2 = RandomForestClassifier(random_state=1)
clf3 = XGBClassifier(learning_rate=0.1, n_estimators=150, max_depth=4, min_child_weight=2,subsample=0.7,objective='binary:logistic')
vclf = VotingClassifier(estimators=[('lr', clf1), ('rf', clf2), ('xgb', clf3)],voting='soft', weights=[2, 1, 1])
vclf = vclf .fit(x_train,y_train)
print(vclf .predict(x_test))

3.3 Apilamiento

3.4 mezcla

Supongo que te gusta

Origin blog.csdn.net/BigCabbageFy/article/details/108832912
Recomendado
Clasificación