【问题标题】:check_arrays() limiting array dimensions in scikit-learn?check_arrays() 限制 scikit-learn 中的数组维度?
【发布时间】:2014-07-10 12:04:32
【问题描述】:

我想使用 scikit-learn X0.15 中提供的 sklearn.learning_curves.py。在我克隆了这个版本之后,有几个函数不再起作用,因为 check_arrays() 将数组的维度限制为 2。

>>> from sklearn import metrics 
>>> from sklearn.cross_validation import train_test_split 
>>> import numpy as np
>>> X = np.random.random((10,2,2,2))
>>> y = np.random.random((10,2,2,2))
>>> X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=3)
>>> error "Found array with dim 4d. Expected <= 2"

使用相同的 X 和 y 我得到相同的错误。

>>> mse = metrics.mean_squared_error
>>> mse(X,y)
>>> error "Found array with dim 4d. Expected <= 2"

如果我转到 sklearn.utils.validation.py 并注释掉第 272、273 和 274 行,如下所示,一切正常。

# if array.ndim >= 3:
#     raise ValueError("Found array with dim %d. Expected <= 2" %
#                      array.ndim)

为什么数组的维度限制为 2?

【问题讨论】:

    标签: python-2.7 scikit-learn


    【解决方案1】:

    因为 scikit-learn 对所有特征数据使用二维约定 (n_samples × n_features)。如果任何函数或方法允许更高维数的数组通过,那通常只是疏忽,您不能真正依赖它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-24
      • 2018-09-30
      • 2016-12-18
      • 2015-07-09
      • 2016-02-25
      • 1970-01-01
      • 2015-04-09
      • 2016-03-19
      相关资源
      最近更新 更多