【问题标题】:Deprecation warning in scikit-learn svmlight format loaderscikit-learn svmlight 格式加载器中的弃用警告
【发布时间】:2013-12-03 18:05:20
【问题描述】:

我在以前从未见过的 IPython 笔记本中收到了新的弃用警告。我看到的是以下内容:

X,y = load_svmlight_file('./GasSensorArray/batch2.dat')
/Users/cpd/.virtualenvs/py27-ipython+pandas/lib/python2.7/site-packages/sklearn/datasets/svmlight_format.py:137: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
return _load_svmlight_file(f, dtype, multilabel, zero_based, query_id)
/Users/cpd/.virtualenvs/py27-ipython+pandas/lib/python2.7/site-packages/sklearn/datasets/svmlight_format.py:137: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
return _load_svmlight_file(f, dtype, multilabel, zero_based, query_id)
...

对这里可能出现的问题有什么想法吗?我再次查看了我的数据文件,乍一看,我没有看到任何明显的问题。我不确定我在系统设置中所做的更改会导致这种情况。我已经安装了 scikit-learn v. 0.14.1。

【问题讨论】:

    标签: python scikit-learn


    【解决方案1】:

    升级 numpy 后,每当您尝试使用非整数索引数组时,它都会给您此弃用警告。在 sklearn 中有很多地方的数据类型是浮点数,即使在计算时索引都是整数值。

    所以每当你在 numpy 中索引一个数组时,你需要确保索引是整数类型的。但是在sklearn中很多地方并不是这样。修复有时很简单(例如,在使用除法计算索引时使用 // 而不是 /),有时不是,但现在不用担心,这只是一个警告。

    【讨论】:

      【解决方案2】:

      您可能升级了 numpy 版本,因为这是 numpy 1.8.0 弃用警告。在 this 拉取请求中进行了解释。继续this PR。

      简单浏览sklearnissue tracker,没发现相关问题。 如果找不到,您可能可以更好地搜索并提交错误报告。

      【讨论】:

      • 我的直觉是这是一个 numpy 升级导致的。我实际上尝试恢复到导致一些 API 错误的 numpy 1.7.1。
      • @Chris 恕我直言,因为这只是一个警告,即 numpy future 版本的错误承诺,您可以保持当前的 numpy 版本,直到 sklearn 被正确修补。
      • 仅供参考,它已在此 scikit-learn 拉取请求中得到修复(但不幸的是,截至 0.14.1 版本尚未发布):github.com/scikit-learn/scikit-learn/pull/2794
      猜你喜欢
      • 2019-06-04
      • 2014-02-21
      • 2017-02-05
      • 1970-01-01
      • 2018-01-18
      • 2015-12-13
      • 1970-01-01
      • 2018-06-14
      • 1970-01-01
      相关资源
      最近更新 更多