sklearn scikit make learn iris importar español datasets create como python model scikit-learn

scikit - método de ajuste en python sklearn



sklearn datasets make (2)

Cuando llamas a fit en TruncatedSVD . Reemplazará los componentes con aquellos construidos a partir de la nueva matriz. Algunos estimadores y transformadores en scikit-learn como IncrementalPCA tienen un partial_fit que construirá incrementalmente un modelo agregando datos adicionales.

Me estoy haciendo varias preguntas sobre el método de ajuste en sklearn.

Pregunta 1: cuando lo haga:

from sklearn.decomposition import TruncatedSVD model = TruncatedSVD() svd_1 = model.fit(X1) svd_2 = model.fit(X2)

¿El contenido del modelo de variable cambia en absoluto durante el proceso?

Pregunta 2: cuando lo haga:

from sklearn.decomposition import TruncatedSVD model = TruncatedSVD() svd_1 = model.fit(X1) svd_2 = svd_1.fit(X2)

¿Qué está pasando con svd_1? En otras palabras, svd_1 ya se ha ajustado y lo coloco de nuevo, entonces, ¿qué ocurre con su componente?


Pregunta 1: ¿El contenido del modelo de variable cambia en absoluto durante el proceso?

Sí. El método de fit modifica el objeto. Y devuelve una referencia al objeto. Por lo tanto, ¡ten cuidado! En el primer ejemplo, las tres variables model , svd_1 y svd_2 realidad se refieren al mismo objeto.

from sklearn.decomposition import TruncatedSVD model = TruncatedSVD() svd_1 = model.fit(X1) svd_2 = model.fit(X2) print(model is svd_1 is svd_2) # prints True

Pregunta 2: ¿Qué está pasando con svd_1?

model y svd_1 refieren al mismo objeto, por lo que no hay absolutamente ninguna diferencia entre el primer y el segundo ejemplo.

Observación final: Lo que sucede en ambos ejemplos es que el resultado del fit(X1) se sobreescribe por fit(X2) , como se señala en la respuesta de David Maust . Si desea tener dos modelos diferentes ajustados a dos conjuntos de datos diferentes, debe hacer algo como esto:

svd_1 = TruncatedSVD().fit(X1) svd_2 = TruncatedSVD().fit(X2)