datasets - sklearn python install
¿Cuál es la diferencia entre ''transformar'' y ''ajustar_transformar'' en sklearn (3)
Aquí la diferencia puede usar pca.transform solo si ya ha calculado PCA en una matriz
In [12]: pc2 = RandomizedPCA(n_components=3)
In [13]: pc2.transform(X) # can''t transform because it does not know how to do it.
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-13-e3b6b8ea2aff> in <module>()
----> 1 pc2.transform(X)
/usr/local/lib/python3.4/dist-packages/sklearn/decomposition/pca.py in transform(self, X, y)
714 # XXX remove scipy.sparse support here in 0.16
715 X = atleast2d_or_csr(X)
--> 716 if self.mean_ is not None:
717 X = X - self.mean_
718
AttributeError: ''RandomizedPCA'' object has no attribute ''mean_''
In [14]: pc2.ftransform(X)
pc2.fit pc2.fit_transform
In [14]: pc2.fit_transform(X)
Out[14]:
array([[-1.38340578, -0.2935787 ],
[-2.22189802, 0.25133484],
[-3.6053038 , -0.04224385],
[ 1.38340578, 0.2935787 ],
[ 2.22189802, -0.25133484],
[ 3.6053038 , 0.04224385]])
si quieres usar .transform
necesitas enseñar la regla de transformación a tu pca
In [20]: pca = RandomizedPCA(n_components=3)
In [21]: pca.fit(X)
Out[21]:
RandomizedPCA(copy=True, iterated_power=3, n_components=3, random_state=None,
whiten=False)
In [22]: pca.transform(z)
Out[22]:
array([[ 2.76681156, 0.58715739],
[ 1.92831932, 1.13207093],
[ 0.54491354, 0.83849224],
[ 5.53362311, 1.17431479],
[ 6.37211535, 0.62940125],
[ 7.75552113, 0.92297994]])
In [23]:
En particular, la transformada PCA aplica el cambio de base obtenido con la descomposición de PCA de la matriz X a la matriz Z.
En la caja de herramientas de sklearn-python, hay dos funciones transform
y fit_transform
sobre sklearn.decomposition.RandomizedPCA
. La descripción de dos funciones es la siguiente
Pero, ¿cuál es la diferencia entre ellos?
En scikit-learn estimator api ,
fit()
: se utiliza para generar parámetros del modelo de aprendizaje a partir de datos de entrenamiento
transform()
: parámetros generados a partir del método fit()
, aplicado al modelo para generar el conjunto de datos transformados.
fit_transform()
: combinación de fit()
y transform()
api en el mismo conjunto de datos
Consulte el capítulo 4 de este book y la respuesta de stackexchange para obtener más claridad
Estos métodos se usan para centrar / escalar los datos dados. Básicamente ayuda a normalizar los datos dentro de un rango particular
Para esto, usamos el método Z-score.
Hacemos esto en el conjunto de datos de entrenamiento.
1. Fit (): Method calcula los parámetros μ y σ y los guarda como objetos internos.
2. Transform (): el método que usa estos parámetros calculados aplica la transformación a un conjunto de datos particular.
3. Fit_transform (): une el método fit () y transform () para la transformación del conjunto de datos.
Fragmento de código para Escalado de funciones / Normalización (después de train_test_split).
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
sc.fit_tranform(X_train)
sc.tranform(X_test)
Aplicamos el mismo (conjunto de entrenamiento de los mismos dos parámetros μ y σ (valores)) transformación de parámetros en nuestro conjunto de pruebas.