tensorflow对sklearn中PCA的影响

最近在写论文,需要重新做一下之前的实验以确定结果无误。

论文对比了基于传统的PCA+LDA+SVM的方法和基于CNN的方法。

重新实验的是传统方法,之前分类准确率在70%-80%左右,但是在这次复现时发现稳定10%,一看预测结果全是某一个类别,我用脚趾头猜也知道是出错了,期间查了两天。

第一天,考虑是不是PCA的随机性问题,所以写了个程序,跑了250000次,成功跑满了24小时,结果没什么差别,大概猜到不是随机性的问题了,因为大数定理告诉我,这不可能- - !(跑实验期间吃了一天的鸡,2333333333)

第二天,在想是不是哪个包更新了,捣鼓了conda、pycharm,发现没问题。然后绞尽脑汁地想现在的脚本和之前有什么不同,仔细一想,不同的地方太多了。。。。

没办法,一个个查,从输入文件,到数据处理,都没问题。

最后定位于PCA,就这家伙出问题了。因为之前用PCA+SVM结果大概有60%,现在只有20%-30%,而只用SVM的话,结果很稳定。

定位在PCA上,然后尝试了无数种PCA的组合,什么copy=True,什么核PCA,都没用,最后又回到大家来找茬的阶段。

仔细一想,之前做过CNN+统计特征的实验,用了tensorflow,所以有一句
import tensorflow as tf尝试性地把它给注释了,苍天!!!!!!!复现了!!!居然复现了!!!!

不过我现在还是不知道原因,不过这个事儿给了我几个教训。

  1. git是个好东西
  2. pycharm自带local history也是个好东西
  3. 查问题的时候还得静心,不要被吃鸡诱惑了。

此处记录一下各种环境、版本。

  1. scikit-learn: 0.19.1
  2. tensorflow: 1.3.0
  3. pycharm : 2017.3 unbuntu 版本 社区版
  4. python2.7

PS:有知道为什么的烦请评论留言,感激不尽。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值