问题描述
我正在做一个旨在对10种不同化合物进行分类的神经网络,数据集类似于:
array([[400.,23.,52.38,...,1.,0.,0. ],[400.,21.63,61.61,21.49,61.95,21.69,41.98,22.48,65.2,22.02,58.91,1. ]])
最后10个数字是我要识别的化合物的一个热门编码。这是我正在使用的代码:
dataset=numpy.asfarray(dataset[1:,0:],float)
x = dataset[0:,0:30]
y = dataset[0:,30:40]
x_train,x_test,y_train,y_test = train_test_split(
x,y,test_size=0.20,random_state=1) #siempre ha sido 42
standard=preprocessing.StandardScaler().fit(x_train)
x_train=standard.transform(x_train)
x_test=standard.transform(x_test)
dump(standard,'std_modelo_400.bin',compress=True)
model = Sequential()
model.add(Dense(50,input_dim = x_test.shape[1],activation = 'relu',kernel_regularizer=keras.regularizers.l1(0.01)))
model.add(Dense(30,activation = 'relu',kernel_regularizer=keras.regularizers.l1(0.01)))
model.add(Dense(15,kernel_regularizer=keras.regularizers.l1(0.01)))
model.add(Dense(10,activation='softmax',kernel_initializer='normal',bias_initializer=keras.initializers.Constant(value=0)))
model.summary()
model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy']
)
history=model.fit(x_train,validation_data=(x_test,y_test),verbose=2,epochs=epochs,batch_size=batch_size)#callbacks=[monitor],verbose=2
我尝试使用命令multilabel_confusion_matrix(y_test,pred)
来获得混淆矩阵,并且得到以下形式:
array([[[929681,158],[ 308,102180]],[[930346,407],[ 6677,94897]],[[930740,38],[ 477,101072]],[[929287,1522],[ 69,101449]],[[929703,8843],[ 12217,81564]],[[902624,474],[ 1565,127664]],[[931152,2236],[ 12140,86799]],[[929085,10],[ 0,103232]],[[911158,22378],[ 5362,93429]],[[930412,689],[ 617,100609]]],dtype=int64)
使用multilabel_confusion_matrix(y_test,pred,labels=["Comp1","Comp2","Comp3","Comp4","Comp5","Comp6","Comp7","Comp8","Comp9","Comp10",])
时出现错误:
elementwise comparison Failed; returning scalar instead,but in the future will perform elementwise comparison
mask &= (ar1 != a)
Traceback (most recent call last):
File "<ipython-input-18-00af06ffcbef>",line 1,in <module>
multilabel_confusion_matrix(y_test,])
File "C:\Users\fmarin\Anaconda3\lib\site-packages\sklearn\metrics\_classification.py",line 485,in multilabel_confusion_matrix
if np.max(labels) > np.max(present_labels):
我不知道如何解决它。我还想获得混淆矩阵的图形版本,我正在使用scikit-learn工具箱。
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)