La reducción de dimensión no es algo específico de redes neuronales, por lo que no está recogido en Pytorch. Para ello usaremos el paquete scikit-learn Instálalo si no lo tienes.
Para cargar los datos, como estan en formato MATLAB, tendrás que utilizar scipy.io.loadmat, o, con el paquete del curso, lectura.leemat. Las etiquetas de las matrices son datos y salida1 para el conjunto de ajuste y prueba y salida2 para el conjunto de prueba
En cada paso, lo que hacemos es probar un algoritmo de reducción de dimensión y pasar a una red y ver qué tal funciona. En lo que se refiere a las redes simplemente recoge lo que has visto en prácticas previas.
Probaremos los siguientes métodos:
nuevos = sklearn.random_projection.SparseRandomProjection().fit_transform(orig)nuevos =sklearn.decomposition.PCA(n_components=..., copy=False, whiten=True).fit_transform(orig) Para n_components puedes probar valores inferiores a la cantidad de filas de la matriz orig; también puedes usar el valor de columnas que haya salido del punto anterior, siempre que no pase de la cantidad de columnas. Prueba también a quitar el parámetro whitennuevos = sklearn.cluster.FeatureAgglomeration(connectivity=mat,n_clusters=n).fit_transform(orig) Para n puedes tantear o usar una de las dimensionalidades encontradas por los algoritmos anteriores. Y mat será una matriz scipy sparse con unas pocas diagonales de unos agrupadas en torno a la principal. Esto lo ponemos porque las variables siguen un orden y pensamos que las próximas van a ser vecinas en la matriz de datos; si no fuese así, no pondrías este argumento. Por lo tanto el número de diagonales ocupadas por unos dedbería ser mayor o igual que n