【问题标题】:Simple Logistic Regression Error in PythonPython中的简单逻辑回归错误
【发布时间】:2017-02-24 09:02:26
【问题描述】:

这是代码行。我知道问题是我只有一个一维数组,但我无法计算将其转换为内联二维数组的代码。

def classification_model(model, data, predictors, outcome):
    model.fit(data[predictors],data[outcome])

其中 data 是从 .csv 文件中读取的一维数组。

classification_model() 是这样调用的: classification_model(LogisticRegression(), data, 'HvA', 'FTR') 其中 FTR 和 HvA 是 .csv 中的列名,因此是我的数据数组 (Pandas) 中的数组位置

跟踪是: Traceback(最近一次调用最后一次):

File "Predict.py", line 112, in <module>
    classification_model(LogisticRegression(), reader, 'HvA', 'FTR')
  File "Predict.py", line 15, in classification_model
    model.fit(data[predictors],data[outcome])
  File "/usr/local/lib/python2.7/dist-packages/sklearn/linear_model/logistic.py", line 1174, in fit
    order="C")
  File "/usr/local/lib/python2.7/dist-packages/sklearn/utils/validation.py", line 531, in check_X_y
    check_consistent_length(X, y)
  File "/usr/local/lib/python2.7/dist-packages/sklearn/utils/validation.py", line 181, in check_consistent_length
    " samples: %r" % [int(l) for l in lengths])
ValueError: Found input variables with inconsistent numbers of samples: [1, 370]

.csv 文件的标题行和第一行数据

FTHG    FTAG    FTR HTHG    HTAG    HTR HS  AS  HST AST HF  AF  HC  AC  HY  AY  HR  AR  VCH VCD VCA Bb1X2   BbMxH   BbAvH   BbMxD   BbAvD   BbMxA   BbAvA   BbOU    BbMx>2.5    BbAv>2.5    BbMx<2.5    BbAv<2.5    BbAH    BbAHh   BbMxAHH BbAvAHH BbMxAHA BbAvAHA PSCH    PSCD    PSCA    HvA

0   0   1   0   0   1   25  10  5   2   19  11  7   2   3   3   0   1   3.4 3.5 2.25    39  3.5 3.26    3.6 3.42    2.3 2.2 37  1.95    1.86    2.02    1.92    24  0.25    2.02    1.95    1.94    1.9 3.22    3.5 2.36    0

谢谢

【问题讨论】:

  • data[col_name].values.reshape(len(data), 1) 工作吗?
  • 太棒了!这确实有效,尽管问题并没有真正停止在那​​里我现在在下面的行中收到一个错误,这是由于相同的问题:
  • kf = KFold(data.shape[0], n_folds=5) error = [] for train, test in kf: # 过滤训练数据 train_predictors = (data[predictors].iloc[train, :])
  • 给出:跟踪:回溯(最近一次调用最后一次):文件“Predict.py”,第 31 行,在分类模型 train_predictors = (data[predictors].iloc[train,idx]) 中返回自我。 _getitem_tuple(key) 文件“/usr/lib/python2.7/dist-packages/pandas/core/indexing.py”,第 1449 行,在 _getitem_tuple self._has_valid_tuple(tup) 文件“/usr/lib/python2.7/ dist-packages/pandas/core/indexing.py",第 126 行,在 _has_valid_tuple 中引发 IndexingError('Too many indexers') pandas.core.indexing.IndexingError: Too many indexers
  • 我认为 pandas 中的 .iloc 只需要一个索引器。它应该只是 .iloc[train],而不是 .iloc[train,:]

标签: python arrays pandas scikit-learn


【解决方案1】:
data[col_name].values.reshape(len(data), 1)

正如上面 Michael K 所给出的

【讨论】:

    猜你喜欢
    • 2018-04-10
    • 1970-01-01
    • 2019-11-07
    • 2018-08-17
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    相关资源
    最近更新 更多