Длина переданных значений равна 1, индекс подразумевает 260 - PullRequest
0 голосов
/ 28 февраля 2020

вывод предсказанных_классов

array([ 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  3,  3,  3,  3,
        3,  3,  3,  3,  3,  3,  4,  4,  2,  4,  4,  4,  4,  5,  4,  4,  5,
        5,  5,  5,  5,  5,  5,  5,  5,  5,  6,  6,  6,  6,  6,  6,  6,  6,
        6,  6,  7,  7,  7,  7,  7,  7,  7, 13,  7,  7,  8, 11,  8,  8,  8,
        11,  8, 11, 11,  8, 11,  9,  9,  9,  9,  9,  9,  9,  9,  8, 10, 10,
        10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11,  8, 11, 11, 11,
        11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13,  3, 13,  3,
        3, 13, 13, 13, 14, 14, 14, 14, 14, 14,  2, 14, 14, 14, 15, 15, 15,
        15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 20, 16, 16,
        17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18,
        18, 18, 18, 19, 19, 19, 19,  8, 19, 19, 19, 19, 19, 20, 20, 20, 20,
        20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22,
        22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23,
        23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25,
        25, 25, 25, 25, 25])

вывод y_true

    0       0
    1       0
    2       0
    3       0
    4       0
           ..
    255    25
    256    25
    257    25
    258    25
    259    25
    Name: label, Length: 260, dtype: int64

Я хочу получить индексы с этим кодом и получить это значение ошибки.

predicted_classes = model.predict_classes(X_test)
y_true = data_test.iloc[:, 0]
correct = np.nonzero(predicted_classes==y_true)[0]
incorrect = np.nonzero(predicted_classes!=y_true)[0]

след ошибки

 ValueError                                Traceback (most recent call last)
     in 
          4 #get the indices to be plotted
          5 y_true = data_test.iloc[:, 0]
    ----> 6 correct = np.nonzero(predicted_classes!=y_true)[0]
          7 incorrect = np.nonzero(predicted_classes==y_true)[0]

     in nonzero(*args, **kwargs)

    //anaconda3/lib/python3.7/site-packages/numpy/core/fromnumeric.py in nonzero(a)
       1894 
       1895     """
    -> 1896     return _wrapfunc(a, 'nonzero')
       1897 
       1898 

    //anaconda3/lib/python3.7/site-packages/numpy/core/fromnumeric.py in _wrapfunc(obj, method, *args, **kwds)
         56     bound = getattr(obj, method, None)
         57     if bound is None:
    ---> 58         return _wrapit(obj, method, *args, **kwds)
         59 
         60     try:

    //anaconda3/lib/python3.7/site-packages/numpy/core/fromnumeric.py in _wrapit(obj, method, *args, **kwds)
         49         if not isinstance(result, mu.ndarray):
         50             result = asarray(result)
    ---> 51         result = wrap(result)
         52     return result
         53 

    //anaconda3/lib/python3.7/site-packages/pandas/core/generic.py in __array_wrap__(self, result, context)
       1916             return result
       1917         d = self._construct_axes_dict(self._AXIS_ORDERS, copy=False)
    -> 1918         return self._constructor(result, **d).__finalize__(self)
       1919 
       1920     # ideally we would define this to avoid the getattr checks, but

    //anaconda3/lib/python3.7/site-packages/pandas/core/series.py in __init__(self, data, index, dtype, name, copy, fastpath)
        290                     if len(index) != len(data):
        291                         raise ValueError(
    --> 292                             f"Length of passed values is {len(data)}, "
        293                             f"index implies {len(index)}."
        294                         )

    ValueError: Length of passed values is 1, index implies 260.

Пожалуйста, дайте мне знать, где я иду не так.

1 Ответ

0 голосов
/ 05 апреля 2020

Быстрый поиск показывает, что старая версия документации рекомендует использовать .to_numpy().nonzero() вместо Series.nonzero().

.
...