Estoy entrenando un clasificador LDA multiclase con 8 clases de datos.
Mientras realizo el entrenamiento, recibo una advertencia de: " Las variables son colineales "
Estoy obteniendo una precisión de entrenamiento de más del 90% .
Estoy usando la biblioteca scikits-learn en Python do train y pruebo los datos de Multi-class.
También obtengo una precisión de prueba decente (aproximadamente 85% -95% ).
No entiendo lo que significa el error / advertencia. Por favor, ayúdame.
Como creo que gui11aume le ha dado una gran respuesta, quiero dar un ejemplo desde un ángulo ligeramente diferente que podría ser esclarecedor. Considere que una covariable en su función discriminante tiene el siguiente aspecto:
Supongamos que el mejor LDA tiene el siguiente límite lineal:
o
Entonces, el coeficiente es bastante diferente, pero las dos ecuaciones dan el mismo límite y una regla de predicción idéntica. Si una forma es buena, la otra también lo es. Pero ahora puede ver por qué gui11ame dice que los coeficientes son ininterpretables.
fuente
Si bien la respuesta que se marcó aquí es correcta, creo que estaba buscando una explicación diferente para averiguar qué sucedió en su código. Tuve exactamente el mismo problema al ejecutar un modelo.
Esto es lo que está sucediendo: está entrenando su modelo con la variable predicha como parte de su conjunto de datos. Aquí hay un ejemplo de lo que me estaba ocurriendo sin siquiera notarlo:
En este código, quiero predecir el valor de 'COL3' ... pero, si observa train_X, le digo que recupere todas las columnas excepto la última, por lo que ingresa COL1 COL2 y COL3, no COL4, e intentando predecir COL3, que es parte de train_X.
Lo corregí simplemente moviendo las columnas, moví manualmente COL3 en Excel para ser la última columna en mi conjunto de datos (ahora tiene lugar COL4), y luego:
Si no desea moverlo en Excel, y solo quiere hacerlo por código, entonces:
Observe ahora cómo he declarado train_X, para incluir todas las columnas excepto COL3, que es parte de train_Y.
Espero que eso ayude.
fuente