我有一个numpy.ndarray
类型的数组和pandas DataFrame,需要一种将每个值相互比较的方法。
以下是我尝试执行的方法之一。我还使用了pd.get(labels)
来提取值,并返回了None
。 y_test
是熊猫的DataFrame,而preds
是预测的一堆数组。
试图将它们都转换为列表以及numpy数组以进行比较:
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
答案 0 :(得分:0)
因此,如果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)# %
希望是你的要求。
答案 1 :(得分:0)
我猜您想找到模型的性能,所以只使用.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)
希望这会有所帮助!