精确度、召回率、真阳性、假阳性

1)  精确度( precision ):TP / ( TP+FP ) = TP / P  

2)  召回率(recall):TP / (TP + FN ) = TP / T

3)  真阳性率(True positive rate):TPR = TP / ( TP+FN ) = TP / T  (敏感性 sensitivity)

4)  假阳性率(False positive rate):FPR = FP / ( FP + TN ) = FP / F  (特异性:specificity)

5)  准确率(Accuracy):Acc = ( TP + TN ) / ( P +N )

6)  F-measure:2*recall*precision / ( recall + precision )

7)  ROC曲线:FPR为横坐标,TPR为纵坐标

8)  PR曲线:recall为横坐标,precision 为纵坐标

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常感谢您的问题!下面是一个基于Python和TensorFlow的场景分类代码示例。代码设您已经有了一个图像数据集,其中包含多个类别的图像,每个类别有训练集、验证集和测试集。代码的主要步骤如下: 1. 加载图像数据集,并进行数据预处理,例如缩放、裁剪、归一化等。 2. 定义CNN模型结构,包括卷积层、池化层、全连接层和输出层。 3. 配置训练超参数,例如学习、批次大小、训练轮数等。 4. 使用训练集训练模型,并使用验证集调整超参数。 5. 在测试集上评估模型性能,计算准确精确度召回、F1分数和混淆矩阵。 ``` import tensorflow as tf import numpy as np import matplotlib.pyplot as plt from sklearn.metrics import confusion_matrix # 1. 加载和预处理数据集 train_data = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255) train_generator = train_data.flow_from_directory('train', target_size=(224, 224), batch_size=32, class_mode='categorical') valid_data = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255) valid_generator = valid_data.flow_from_directory('valid', target_size=(224, 224), batch_size=32, class_mode='categorical') test_data = tf.keras.preprocessing.image.ImageDataGenerator(rescale=1./255) test_generator = test_data.flow_from_directory('test', target_size=(224, 224), batch_size=32, class_mode='categorical') # 2. 定义CNN模型结构 model = tf.keras.models.Sequential([ tf.keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(224, 224, 3)), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Conv2D(64, (3, 3), activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Conv2D(128, (3, 3), activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Conv2D(256, (3, 3), activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(256, activation='relu'), tf.keras.layers.Dropout(0.5), tf.keras.layers.Dense(5, activation='softmax') ]) # 3. 配置训练超参数 model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # 4. 使用训练集训练模型,并使用验证集调整超参数 history = model.fit(train_generator, epochs=10, validation_data=valid_generator) # 5. 在测试集上评估模型性能 test_loss, test_acc = model.evaluate(test_generator) print('Test accuracy:', test_acc) # 计算混淆矩阵 test_predictions = model.predict(test_generator) test_labels = np.argmax(test_predictions, axis=1) confusion_mtx = confusion_matrix(test_generator.classes, test_labels) # 绘制混淆矩阵 plt.imshow(confusion_mtx, interpolation='nearest', cmap=plt.cm.Blues) plt.colorbar() tick_marks = np.arange(len(test_generator.class_indices)) plt.xticks(tick_marks, test_generator.class_indices, rotation=90) plt.yticks(tick_marks, test_generator.class_indices) plt.xlabel('Predicted label') plt.ylabel('True label') plt.show() ``` 在上面的代码中,我们使用了一个简单的CNN模型,包括4个卷积层和2个全连接层。我们使用ImageDataGenerator来加载和预处理图像数据集,并使用fit函数来训练模型。在测试集上评估模型性能时,我们计算了准确精确度召回、F1分数和混淆矩阵。您可以根据需要调整CNN模型的结构和超参数,以获得更好的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值