python - PCA降低了Logistic回归的性能?

标签 python machine-learning statistics pca logistic-regression

我将这段代码放在我完成逻辑回归和 PCA + 逻辑回归的地方。使用逻辑,我得到了 95% 的准确率,而使用 PCA + 逻辑,我得到了奇怪的结果。我对 50000 X 370 维度数据的二元分类问题执行了逻辑回归。我的准确率约为 90%。但是当我对数据进行PCA+logistic时,我的准确率降低到了5%,看到这个结果我感到非常震惊。谁能解释一下可能出了什么问题吗?任何人都可以看到什么是错误或者我错误地应用了 PCA。我真的很困惑,请提出一些建议来纠正它。

X_train1, X_test1, y_train1, y_test1 = train_test_split(X_test,y_test, test_size=0.50)

pca=PCA(n_components=0.98).fit(X_train1)

X_train1pca=pca.transform(X_train1)

X_test1pca=pca.transform(X_test1)

lr=LogisticRegression()

y_pred1=lr.fit(X_train1,y_train1).predict(X_test1)

y_pred2=lr.fit(X_train1pca,y_train1).predict(X_test1pca)

acc_pca=(y_pred2==y_test1).sum()/len(y_test1)

acc=(y_pred1==y_test1).sum()/len(y_test1)

print(acc_pca,acc)

print(acc_pca+acc)

我得到的结果如上所述:

0.954836446549 0.959221257564

1.91405770411
>>> 
========= RESTART: C:\Users\prashant\Desktop\santandar\santander.py =========


0.0430588441638 0.962992195036

1.0060510392
>>> 
========= RESTART: C:\Users\prashant\Desktop\santandar\santander.py =========

0.0463913005349 0.960098219767

1.0064895203

最佳答案

对我来说,这可能只是 te pca(X_train1pca 和 X_test1pca)创建的集群的反转。这就是为什么你看到 0.0463913005349,这意味着你的第二个解决方案精度是 1-0.0463913005349 = 0.953...要解决这个问题,你应该在应用 pca 之前将数据归零,因为 pca 基于由中心数据形成的协方差矩阵。

关于python - PCA降低了Logistic回归的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36687351/

相关文章:

python - 在函数中引用全局变量的问题

machine-learning - 如何增加 BigQuery ML 中的最小迭代次数

math - 正确报告搜索值样本的误差幅度

Git diff,哪些开发者贡献最大

javascript - 将正态分布转换为线性分布

python - 重新定义现有函数

Python OpenCV 转换平面 YUV 4 :2:0 image to RGB -- YUV array format

python - Python中的列表联合算法

python - Scikit 学习线性回归预测标签

python - 对 scikit 学习决策树中的 random_state 感到困惑