Scikit-neural_network在输入数据方面遇到问题



我正在尝试使用sknn训练一些神经网络。我已经通过熊猫数据帧预处理了我的数据。当我在标准 sklearn 分类器上使用 fit(x_train,y_train) 时,预处理工作正常,但它抛出了属性错误

anaconda/envs/py3k/lib/python3.4/site-packages/pandas/core/generic.py", line 2360, in __getattr__
(type(self).__name__, name))
 AttributeError: 'DataFrame' object has no attribute 'todense'

或此错误:

/anaconda/envs/py3k/lib/python3.4/site-packages/pandas/core/indexing.py", line 1750, in maybe_convert_indices
raise IndexError("indices are out-of-bounds")
IndexError: indices are out-of-bounds

似乎是随机的(不同的运行,不改变任何东西)。

相关的代码段如下所示:

            x_train, x_test, y_train, y_test = cross_validation.train_test_split(X_data, Y_data, test_size=1/kfold)
            regr = linear_model.LinearRegression(copy_X=True,fit_intercept=True)
            abr = AdaBoostRegressor(base_estimator=tree.DecisionTreeRegressor(max_depth=max_depth_gridsearch_values[max_depth_counter]), n_estimators = n_estimators_gridsearch_values[n_estimators_counter])
            nn=nn_simple_regressor

            x_train_numeric = x_train.iloc[:,2:]
            x_test_numeric = x_test.iloc[:,2:]
            regr.fit(x_train_numeric, y_train)
            abr.fit(x_train_numeric, y_train)
            nn.fit(x_train_numeric,y_train)

回归器定义为

nn_simple_regressor = Regressor(
layers=[
    Layer("Rectifier", units=100),
    Layer("Linear")],
learning_rate=0.02,
n_iter=10)

我不明白为什么会发生这种情况,而且似乎对 sknn 的支持很小。我怀疑问题实际上出在预处理上,但我不明白为什么它适用于前两个分类器而不是我的 NN。 有什么想法吗?

截至 2016 年 2 月,Sknn 不支持 pandas。为了解决问题中所述的问题,最好的方法是将数据帧转换为 numpy 数组。在 pandas 中使用 .as_martix() 函数是最简单的方法。

相关内容

  • 没有找到相关文章

最新更新