Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

269
Visualizações
Pre entrenar un modelo (clasificador) en scikit learn

Me gustaría entrenar previamente un modelo y luego entrenarlo con otro modelo.

Tengo el modelo Decision Tree Classifer y luego me gustaría entrenarlo más con el modelo LGBM Classifier . ¿Existe la posibilidad de hacer esto en scikit learn? Ya he leído esta publicación al respecto https://datascience.stackexchange.com/questions/28512/train-new-data-to-pre-trained-model. . En la publicación dice

Según la documentación oficial, llamar a fit() más de una vez sobrescribirá lo aprendido por cualquier fit() anterior

 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1) # Train Decision Tree Classifer clf = DecisionTreeClassifier() clf = clf.fit(X_train,y_train) lgbm = lgb.LGBMClassifier() lgbm = lgbm.fit(X_train,y_train) #Predict the response for test dataset y_pred = lgbm.predict(X_test)
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Quizás esté buscando clasificadores apilados.

En este enfoque, las predicciones de modelos anteriores están disponibles como características para modelos posteriores.

Mire en StackingClassifiers .

Adaptado de la documentación:

 from sklearn.ensemble import StackingClassifier estimators = [ ('dtc_model', DecisionTreeClassifier()), ] clf = StackingClassifier( estimators=estimators, final_estimator=LGBMClassifier() )
over 4 years ago · Santiago Trujillo Relatório

0

Desafortunadamente, esto no es posible en la actualidad. De acuerdo con el documento en https://lightgbm.readthedocs.io/en/latest/pythonapi/lightgbm.LGBMClassifier.html?highlight=init_model , puede continuar entrenando el modelo si el modelo es de lightgbm.

Intenté esta configuración con:

 # dtc dtc_model = DecisionTreeClassifier() dtc_model = dtc_model.fit(X_train, y_train) # save dtc_fn = 'dtc.pickle.db' pickle.dump(dtc_model, open(dtc_fn, 'wb')) # lgbm lgbm_model = LGBMClassifier() lgbm_model.fit(X_train_2, y_train_2, init_model=dtc_fn)

Y obtengo:

 LightGBMError: Unknown model format or submodel type in model file dtc.pickle.db
over 4 years ago · Santiago Trujillo Relatório

0

Como explicó @Ferdy en su publicación, no existe una forma sencilla de realizar esta operación y es comprensible.

Scikit-learn DecisionTreeClassifier solo toma características numéricas y no puede manejar valores nan mientras que LGBMClassifier puede manejarlos.

Al observar la función de decisión de scikit-learn , puede ver que todo lo que puede realizar son divisiones basadas en feature <= threshold .

Por el contrario LGBM puede realizar lo siguiente:

  • feature is na
  • feature <= threshold
  • feature in categories

Las divisiones en el árbol de decisión se seleccionan en cada paso, ya que dividen mejor el conjunto de elementos. Intentan minimizar la impureza (giny) o entropía del nodo.

El riesgo de capacitar más a un DecisionTreeClassifier es que no está seguro de que las divisiones realizadas en el árbol original sean las mejores, ya que tiene nuevas capacidades de división con LGBM que podrían/deberían conducir a un mejor rendimiento.

Le recomendaría volver a entrenar el modelo con LGBMClassifier solo, ya que es posible que las divisiones sean diferentes del árbol original scikit-learn .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda