Al hacer la regresión de clasificación o, lo que es el correcto (o mejor) manera de preprocesar los datos?

  1. Normalizar los datos -> PCA -> formación
  2. PCA -> normalizar PCA de salida -> formación
  3. Normalizar los datos -> PCA -> normalizar PCA de salida -> formación

Que lo de arriba es lo más correcto, o es el «estandarizados» para preprocesar los datos? Por «normalizar» me refiero a cualquiera de normalización, la escala lineal o algunas otras técnicas.

OriginalEl autor AlanS | 2012-04-12

2 Comentarios

  1. 25

    Debe normalizar los datos antes de hacer la PCA. Por ejemplo, considere la siguiente situación. Puedo crear un conjunto de datos X con un conocido matriz de correlación C:

    >> C = [1 0.5; 0.5 1];
    >> A = chol(rho);
    >> X = randn(100,2) * A;
    

    Si ahora realizo la PCA, me encuentren correctamente que el de componentes principales (las filas de los pesos del vector) están orientadas en un ángulo con los ejes de coordenadas:

    >> wts=pca(X)
    wts =
        0.6659    0.7461
       -0.7461    0.6659
    

    Si yo ahora escala de la primera función de los datos establecidos por 100, intuitivamente pensamos que el de componentes principales no se debe cambiar:

    >> Y = X;
    >> Y(:,1) = 100 * Y(:,1);
    

    Sin embargo, ahora nos encontramos con que los principales componentes están alineados con los ejes de coordenadas:

    >> wts=pca(Y)
    wts =
        1.0000    0.0056
       -0.0056    1.0000
    

    Para resolver este problema, existen dos opciones. En primer lugar, puedo cambiar la escala de los datos:

    >> Ynorm = bsxfun(@rdivide,Y,std(Y))
    

    (El extraño bsxfun notación se utiliza para hacer vectores de la matriz de la aritmética en Matlab – todo lo que estoy haciendo es restando la media y dividiendo por la desviación estándar de cada característica).

    Ahora obtener resultados razonables de PCA:

    >> wts = pca(Ynorm)
    wts =
       -0.7125   -0.7016
        0.7016   -0.7125
    

    Son ligeramente diferentes a los de la PCA en los datos originales, como ahora hemos garantizado que nuestras características de la unidad de desviación estándar, lo cual no era el caso originalmente.

    La otra opción es realizar PCA utilizando la matriz de correlación de los datos, en lugar de la parte externa del producto:

    >> wts = pca(Y,'corr')
    wts =
        0.7071    0.7071
       -0.7071    0.7071
    

    De hecho, este es completamente equivalente a la estandarización de los datos restando la media y dividiendo por la desviación estándar. Es más conveniente. En mi opinión deberías siempre hacer esto a menos que tenga una buena razón para no hacerlo (por ejemplo, si usted quiere para recoger las diferencias en la variación de cada característica).

    OriginalEl autor Chris Taylor

  2. 6

    Usted necesita para normalizar los datos de la primera siempre. De lo contrario, PCA o de otras técnicas que se utilizan para reducir las dimensiones se dan resultados diferentes.

    OriginalEl autor Atilla Ozgur

Dejar respuesta

Please enter your comment!
Please enter your name here