Как я могу предсказать с оранжевого API в Python? - PullRequest
0 голосов
/ 18 мая 2019

Я новичок в использовании оранжевого API, и я плохо понимаю, что требуется коду Python для достижения предсказания модели нейронной сети

    import pickle
    import Orange

    #Load model
    with open("modelNN.pkcls", "rb") as f:
      model = pickle.load(f)

    data = Orange.data.Table('test.xlsx')
    model.predict(data[0])



Expected 2D array, got 1D array instead:
array=[6.0000000e+00 2.0000000e+00 3.0000000e+00 3.0000000e+00 1.0000000e+00
 2.0000000e+00 1.7283000e+02 1.7179000e+02 6.1008990e+05 1.9051511e+06
 1.1090000e+04 3.5300000e+03].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

1 Ответ

0 голосов
/ 13 июня 2019

Ошибка говорит, что model.predict() принимает двумерный массив, и он получил одномерный массив.Если вы напечатаете data[0], вы увидите, что это действительно 1D.

Документация на предмет предсказаний плохая, но вот как это работает:

  • model.predict() принимаетДвумерный массив NumPy
  • model.predict_storage() принимает Orange.data.Table

Функция __call__ модели пытается интеллектуально обработать ввод, что означает, что вы можете сделать model(data[0]) с даннымилибо типа numpy.array, либо Orange.data.Table.

Тем не менее Orange фактически не предназначен для использования в качестве библиотеки.Я бы предложил использовать его через графический интерфейс или, скорее, использовать другие библиотеки Python, такие как sklearn, на которых все равно основан Orange.

...