Сравните значения в массиве NumPy и Padas. - PullRequest
0 голосов
/ 27 июня 2019

У меня есть массив типа numpy.ndarray и pandas DataFrame, и мне нужен способ сравнить каждое значение друг с другом.

Ниже приведен один из способов, которыми я пытался это сделать. Я также использовал pd.get(labels), чтобы извлечь значения и был возвращен None. y_test представляет собой панду DataFrame, а preds представляет собой бесчисленное множество предсказаний.

Попытка преобразования их обоих в списки, а также в числовые массивы для сравнения:

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='binary_crossentropy',
              optimizer='adam',metrics=['accuracy'])

model.fit(x_train, y_train, epochs=5, batch_size=2000)

preds = model.predict(x_test)
preds[preds>=0.5] = 1
preds[preds<0.5] = 0
print(type(preds))
print(y_test.get('labels'))
total = 0
for i in range(len(preds)):
    if int(preds[i]) == y_test[i]:
        total = total + 1

Это то, что я получаю - TypeError: объект 'NoneType' не вызывается - KeyError: 0

Ответы [ 2 ]

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

Полагаю, вы хотели найти производительность своей модели, поэтому просто используйте метод .evaluate(), я предполагаю, что вы используете модель keras здесь.

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='binary_crossentropy',
              optimizer='adam',metrics=['accuracy'])

model.fit(x_train, y_train, epochs=5, batch_size=2000)

score= model.evaluate(x_test,y_test)

Надеюсь, это поможет!

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

Так что, если y_test является фреймом данных, то вы можете просто запросить значения, подобные этим, чтобы получить массив numpy:

y_test_array = y_test["labels"].values

Затем распечатайте это, чтобы узнать, сколько предметов равно:

sum(y_test_array == preds)# number of items with same value
sum(y_test_array == preds)/len(preds)# %

Надеюсь, это то, что вы спросили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...