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

236
Visualizações
Cómo usar warm_start

Me gustaría usar el parámetro warm_start para agregar datos de entrenamiento a mi clasificador de bosque aleatorio. Esperaba que se usara así:

 clf = RandomForestClassifier(...) clf.fit(get_data()) clf.fit(get_more_data(), warm_start=True)

Pero el parámetro warm_start es un parámetro de constructor. Entonces, ¿hago algo como esto?

 clf = RandomForestClassifier() clf.fit(get_data()) clf = RandomForestClassifier (warm_start=True) clf.fit(get_more_data)

Eso no tiene sentido. ¿La nueva llamada al constructor no descartará los datos de entrenamiento anteriores? Creo que me estoy perdiendo algo.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

El patrón básico de (tomado de la respuesta de Miriam):

 clf = RandomForestClassifier(warm_start=True) clf.fit(get_data()) clf.fit(get_more_data())

sería el uso correcto de la API.

Pero hay un problema aquí.

Como dicen los documentos lo siguiente:

Cuando se establece en True, reutiliza la solución de la llamada anterior para ajustar y agregar más estimadores al conjunto; de lo contrario, solo ajusta un bosque completamente nuevo.

significa que lo único que puede hacer warm_start por usted es agregar nuevos árboles de decisión. ¡Todos los árboles anteriores parecen estar intactos!

Comprobemos esto con algunas fuentes :

 n_more_estimators = self.n_estimators - len(self.estimators_) if n_more_estimators < 0: raise ValueError('n_estimators=%d must be larger or equal to ' 'len(estimators_)=%d when warm_start==True' % (self.n_estimators, len(self.estimators_))) elif n_more_estimators == 0: warn("Warm-start fitting without increasing n_estimators does not " "fit new trees.")

¡Esto básicamente nos dice que necesitaría aumentar la cantidad de estimadores antes de acercarse a un nuevo ajuste!

No tengo idea de qué tipo de uso espera Sklearn aquí. No estoy seguro, si ajustar, aumentar las variables internas y ajustar nuevamente es el uso correcto, pero de alguna manera lo dudo (especialmente porque n_estimators no es una variable de clase pública).

¡Su enfoque básico (con respecto a esta biblioteca y este clasificador) probablemente no sea una buena idea para su aprendizaje fuera del núcleo aquí! No continuaría con esto.

over 4 years ago · Santiago Trujillo Relatório

0

Solo para agregar a la excelente respuesta de @sascha, este método hackie funciona:

 rf = RandomForestClassifier(n_estimators=1, warm_start=True) rf.fit(X_train, y_train) rf.n_estimators += 1 rf.fit(X_train, y_train)
over 4 years ago · Santiago Trujillo Relatório

0

from sklearn.datasets import load_iris boston = load_iris() X, y = boston.data, boston.target ### RandomForestClassifier from sklearn.ensemble import RandomForestClassifier rfc = RandomForestClassifier(n_estimators=10, warm_start=True) rfc.fit(X[:50], y[:50]) print(rfc.score(X, y)) rfc.n_estimators += 10 rfc.fit(X[51:100], y[51:100]) print(rfc.score(X, y)) rfc.n_estimators += 10 rfc.fit(X[101:150], y[101:150]) print(rfc.score(X, y))

A continuación se muestra la diferenciación entre warm_start y parcial_fit.

Al ajustar un estimador repetidamente en el mismo conjunto de datos, pero para valores de parámetros múltiples (como para encontrar el valor que maximiza el rendimiento como en la búsqueda de cuadrícula), es posible reutilizar aspectos del modelo aprendidos del valor de parámetro anterior, ahorrando tiempo. Cuando warm_start es verdadero, los atributos del modelo ajustado existente se utilizan para inicializar el nuevo modelo en una llamada posterior para ajustar. Tenga en cuenta que esto solo se aplica a algunos modelos y algunos parámetros, e incluso a algunos órdenes de valores de parámetros. Por ejemplo, warm_start se puede usar al construir bosques aleatorios para agregar más árboles al bosque (aumentando n_estimators) pero no para reducir su número.

parcial_fit también retiene el modelo entre llamadas, pero difiere: con warm_start los parámetros cambian y los datos son (más o menos) constantes entre llamadas para ajustarse; con parcial_fit, el mini lote de cambios de datos y los parámetros del modelo permanecen fijos.

Hay casos en los que desea utilizar warm_start para adaptarse a datos diferentes pero estrechamente relacionados. Por ejemplo, se puede ajustar inicialmente a un subconjunto de datos y luego ajustar la búsqueda de parámetros en el conjunto de datos completo. Para la clasificación, todos los datos en una secuencia de llamadas de ajuste de warm_start deben incluir muestras de cada clase.

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