Я провожу эксперимент CNN и оцениваю построенный классификатор, используя метрики точности, отзыва, точности и f-меры.
Полученные значения представляют собой только две десятичные дроби (т. Е. 0,95). Как я могу иметь по крайней мере 4 цифры дроби (то есть 0,9532)
Далее, как я могу округлить полученные значения, чтобы иметь пол или потолок округленного числа?
from keras.models import Sequential
from keras.layers import Conv2D,Activation,MaxPooling2D,Dense,Flatten,Dropout
import numpy as np
from keras.preprocessing.image import ImageDataGenerator
from IPython.display import display
import matplotlib.pyplot as plt
from PIL import Image
from sklearn.metrics import classification_report, confusion_matrix
import keras
from keras.layers import BatchNormalization
from keras.optimizers import Adam
import pickle
from keras.models import load_model
classifier = load_model('32_With_Dropout_rl_001_1_layer_2.h5')
classifier1 = load_model('32_With_Dropout_rl_001_2_layers_2.h5')
classifier2 = load_model('32_With_Dropout_rl_001_3_layers_2.h5')
test_datagen = ImageDataGenerator(rescale = 1./255)
batchsize=10
test_set = test_datagen.flow_from_directory('/home/osboxes/Downloads/Downloads/Journal_Paper/Benign_Malicious/Spectrogram/Test/',
target_size = (200,200),
batch_size = batchsize,
shuffle=False,
class_mode ='categorical')
Y_pred = classifier.predict_generator(test_set, steps= 1023 // batchsize+1)
y_pred = np.argmax(Y_pred, axis=1)
print('Confusion Matrix 1 layer')
print(confusion_matrix(test_set.classes, y_pred))
print('Classification Report')
target_names = test_set.classes
class_labels = list(test_set.class_indices.keys())
target_names = ['Bening', 'Malicious']
report = classification_report(test_set.classes, y_pred, target_names=class_labels)
print(report)
Y_pred = classifier1.predict_generator(test_set, steps= 1023 // batchsize+1)
y_pred = np.argmax(Y_pred, axis=1)
print('Confusion Matrix 2 layers')
print(confusion_matrix(test_set.classes, y_pred))
print('Classification Report')
target_names = test_set.classes
class_labels = list(test_set.class_indices.keys())
target_names = ['Bening', 'Malicious']
report = classification_report(test_set.classes, y_pred, target_names=class_labels)
print(report)
Y_pred = classifier2.predict_generator(test_set, steps= 1023 // batchsize+1)
y_pred = np.argmax(Y_pred, axis=1)
print('Confusion Matrix 3 layers')
print(confusion_matrix(test_set.classes, y_pred))
print('Classification Report')
target_names = test_set.classes
class_labels = list(test_set.class_indices.keys())
target_names = ['Bening', 'Malicious']
report = classification_report(test_set.classes, y_pred, target_names=class_labels)
print(report)
#f = open('32_With_Dropout_rl_001_1_layer', 'rb')
#history = pickle.load(f)
#f = open('32_With_Dropout_rl_001_2_layers', 'rb')
#history1 = pickle.load(f)
#f = open('32_With_Dropout_rl_001_3_layers', 'rb')
#history2 = pickle.load(f)