Random Projection is an interesting Dimensionality Reduction technique. You may choose to create a random projection for 1,2,3,..,n dimensional projections. Now how to tell which one is best?
So you would need to calculate loss of data due to this reduction in data size.
# data has this shape: row, col = 4898, 11 random_projection = SparseRandomProjection(n_components=5) random_projection.fit(data) components = random_projection.components_.toarray() # shape=(5, 11) p_inverse = np.linalg.pinv(components.T) # shape=(5, 11) #now get the transformed data using the projection components reduced_data = random_projection.transform(data) #shape=(4898, 5) reconstructed= reduced_data.dot(p_inverse) #shape=(4898, 11) assert reduced_data.shape == reconstructed.shape error = mean_squared_error(data, reconstructed)