【问题标题】:PCA reduced the performance of Logistic Regression? [duplicate]PCA 降低了 Logistic 回归的性能? [复制]
【发布时间】:2016-08-09 19:11:38
【问题描述】:

我将这段代码放在那里,我已经完成了逻辑回归和 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

【问题讨论】:

  • 请不要发布同一问题的多个版本。如果您当前的问题没有引起注意,请为清晰起见进行编辑或耐心等待。 stackoverflow.com/questions/36668768/…
  • 我就是那个发帖的人,但是那里的人建议我用代码提出问题。所以我把它分开了。错了吗?
  • 正如@arcticless 所说,你得到的结果标签很可能是倒置的。
  • @PrashantSharma - 您可以随时编辑之前的问题,添加您认为可能有助于人们回答您的问题的任何代码或额外信息。

标签: python machine-learning statistics pca logistic-regression


【解决方案1】:

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

【讨论】:

  • 只是为了添加一个快速链接:StandardScaler
  • 在使用 sklearn_preprocessing 缩放数据后,我再次获得了相同的准确度值:警告(来自警告模块):文件“C:\Python34\lib\site-packages\sklearn\utils\validation.py” ,第 420 行 DataConversionWarning:输入 dtype 为 int64 的数据已由 scale 函数转换为 float64。 (accu_pca+logist, accu_logis_regr)=( 0.0463036043147 ,959045865123 ),( 0.954485661668 , 0.959572042445)
猜你喜欢
  • 2016-08-08
  • 2020-04-24
  • 2013-07-21
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
  • 1970-01-01
  • 2010-11-15
相关资源
最近更新 更多