如何为多类多标签分类计算 f1_score

问题描述

我的 import matplotlib import numpy as np import matplotlib.pyplot as plt def h(X): return (10*(np.cos(((120*(np.pi))*x)+((np.pi/6))))) def g(x): return (5*(np.cos(((120*(np.pi))*x)-((np.pi/6))))) x = np.linspace(0,0.05,1000) plt.ylabel("Voltaje (V)") plt.xlabel("Tiempo (s)") plt.grid(True) def annot_max(x,y,ax=None): xmax = x[np.argmax(y)] ymax = y.max() text= "x={:.3f},y={:.3f}".format(xmax,ymax) if not ax: ax=plt.gca() bBox_props = dict(Boxstyle="square,pad=0.3",fc="w",ec="k",lw=0.72) arrowprops=dict(arrowstyle="->",connectionstyle="angle,angleA=0,angleB=60") kw = dict(xycoords='data',textcoords="data",arrowprops=arrowprops,bBox=bBox_props,ha="left",va="top") ax.annotate(text,xy=(xmax,ymax),xytext=(xmax+.5,ymax+5),**kw) #plt.annotate("maximo de grafica 1",xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor="black",shrink=0.05),) #i also tried this,and didn't work too. plt.plot(x,h(x),label="grafica 1") plt.plot(x,g(x),label="grafica 2") plt.legend(loc=1) annot_max(x,h(x)) annot_max(x,(g(x)) plt.show() 使用了一个热编码器。 测试数据 functional classification model 的预测概率给了我:

yprob = model.predict(testX)

我想从中计算准确度、精确度、召回率、F1 分数和混淆矩阵。
顺序 API 提供了一个 yprob = array([[0.18120882,0.5803128,0.22847839],[0.0101245,0.12861261,0.9612609 ],[0.16332535,0.4925239,0.35415074],...,[0.9931931,0.09328955,0.01351734],[0.48841736,0.25034943,0.16123319],[0.3807928,0.42698202,0.27493873]],dtype=float32) 函数来执行此操作。
predict_classes 并使用 sklearn 的 f1_score 函数我们可以计算所有这些值。
如何应用它来预测多类多标签分类测试数据的概率?
我的第二个问题是要知道 yclasses = model.predict_classes(testX) 的每个数组的最大值是否对应于预测的类?例如,yprob = model.predict(testX) 是数组中的第一个元素。最高值为 [0.18120882,0.22847839]。这是否意味着它对应于一个热编码器 0.5803128 因为它是数组中的第二个元素?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)