LDAでデータセットを縮小しようとしています。私は、データセットを減らすと精度が落ちると思います。しかし、ランダムなシードに応じて、私はときどき縮小版が私により高い精度を与えてくれます。LDA精度は元のデータセットよりもデータセットの方が高い
X, y = make_classification(1000, 50, n_informative=10, n_classes=20)
X1, X2, y1, y2 = train_test_split(X, y)
lda = LDA()
lda.fit(X1, y1)
predicted = lda.predict(X2)
full_accuracy = accuracy_score(y2, predicted)
reduction = LDA(n_components=5)
X1red = reduction.fit_transform(X1, y1)
X2red = reduction.transform(X2)
lda.fit(X1red, y1)
predicted = lda.predict(X2red)
reduced_accuracy = accuracy_score(predicted, y2)
print full_accuracy, reduced_accuracy, reduced_accuracy/full_accuracy
# prints 0.132 0.16 1.21212121212
次元削減後の精度が高い理由が分かりますか?