Как я могу отослать свои функции к моим ярлыкам? Наивный байесовский классификатор - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь приспособить модель машинного обучения NB, и у меня все довольно чисто, но я могу отнести свои функции к моим ярлыкам, чтобы соответствовать модели:


labels = [[0,0,0,1,1,0],[0,0,1,0,1,1],...]]

features = [[[0.1,0.2,0.3,0.4,0.5],[0.11,0.21,0.31,0.41,0.51],[0.12,0.22,0.32,0.42,0.52],[0.12,0.22,0.32,0.42,0.52],[0.12,0.22,0.32,0.43,0.53]],[0.13,0.23,0.33,0.43,0.53]...]]]

В моей задаче [0.1, 0.2,0.3,0.4,0.5] должен ссылаться на первый 0 в метках, поэтому классификатор дает нет, [0.11,0.21,0.31,0.41,0.51] относится ко второму 0, также a no, [0.12,0.22, 0.32,0.42,0.52] относится к первому 1, так что для классификатора это да.

Как я могу подогнать классификатор NB или перегруппировать списки так, чтобы иметь возможность соответствовать модели?

Большое спасибо.

1 Ответ

1 голос
/ 09 июля 2019

Вы, вероятно, можете использовать замечательную библиотеку numpy, с помощью которой вы можете реорганизовать форму ваших входных данных несколькими различными способами. Одним из возможных решений может быть следующее:

import numpy as np

from sklearn.naive_bayes import GaussianNB

labels = [[0,0,0,1,1,0],
          [0,0,1,0,1,1]]

features = [[[0.1,0.2,0.3,0.4,0.5],
             [0.11,0.21,0.31,0.41,0.51],
             [0.12,0.22,0.32,0.42,0.52],
             [0.12,0.22,0.32,0.42,0.52],
             [0.12,0.22,0.32,0.43,0.53],
             [0.13,0.23,0.33,0.43,0.53]],
           [[0.1,0.2,0.3,0.4,0.5],
             [0.11,0.21,0.31,0.41,0.51],
             [0.12,0.22,0.32,0.42,0.52],
             [0.12,0.22,0.32,0.42,0.52],
             [0.12,0.22,0.32,0.43,0.53],
             [0.13,0.23,0.33,0.43,0.53]]]

labels = np.ravel(labels)
features = np.reshape(features, (-1, 5))

gnb = GaussianNB()
gnb.fit(features, labels) 
...