model.predict (sample), возвращающий TypeError: невозможно выполнить сокращение с гибким типом - PullRequest
0 голосов
/ 18 июня 2020
• 1000
    Traceback (most recent call last):
  File "C:\Users\Umair Khan\Dropbox\`Shift betweeen PCs\Work\EMG Hand Gesture\Codes\ML_on_CSV.py", line 39, in <module>
    predictions = knn.predict(f_test)
  File "C:\Users\Umair Khan\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sklearn\neighbors\_regression.py", line 185, in predict
    y_pred = np.mean(_y[neigh_ind], axis=1)
  File "<__array_function__ internals>", line 6, in mean
  File "C:\Users\Umair Khan\AppData\Local\Programs\Python\Python37-32\lib\site-packages\numpy\core\fromnumeric.py", line 3335, in mean
    out=out, **kwargs)
  File "C:\Users\Umair Khan\AppData\Local\Programs\Python\Python37-32\lib\site-packages\numpy\core\_methods.py", line 151, in _mean
    ret = umr_sum(arr, axis, dtype, out, keepdims)
TypeError: cannot perform reduce with flexible type

f_test - это список таких списков [[16, 30, 35, 250, -1, 0.5, 35, 0.03, 0.02], [16, 30, 35, 250, -1, 0.5, 35, 0.03, 0.02]]

Я также пытался передать массив в predict(sample), но проблема все еще остается.

predictions = knn.predict(np.array(f_test).astype(np.float))

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Решено: изменен dtype l_train с string на float , и ошибка исчезла. f_train и f_test уже относятся к типу float.

0 голосов
/ 18 июня 2020

Нам нужно увидеть больше ошибок трассировки. И информация о входных данных функции, в частности shape и dtype.

Я видел это сообщение об ошибке при работе с structured arrays. Но не очевидно, где они могут возникнуть в вашем коде.

In [15]: np.ones((2,), dtype='i,i')                                             
Out[15]: array([(1, 1), (1, 1)], dtype=[('f0', '<i4'), ('f1', '<i4')])
In [16]: np.sum(np.ones((2,), dtype='i,i'))                                     
....
---> 87     return ufunc.reduce(obj, axis, dtype, out, **passkwargs)
     88 
     89 

TypeError: cannot perform reduce with flexible type
...