Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

233
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!