Нет ответа, который скажет вам с вероятностью 1, каково правильное количество компонентов.Это зависит от приложения.
Однако есть следующая эвристика, которую вы можете использовать.Вы строите график объясненного отношения отклонений и выбираете количество компонентов, которые «захватывают» не менее 95% отклонений.В следующем примере число компонентов, которые улавливают около 95% дисперсии, составляет около 30-35.
pca = PCA().fit(digits.data)
plt.plot(np.cumsum(pca.explained_variance_ratio_))
plt.xlabel('number of components')
plt.ylabel('cumulative explained variance')
![enter image description here](https://i.stack.imgur.com/TQif4.png)