MATLAB(Linux版)绘制test和train loss曲线

本文介绍了如何在Linux版MATLAB中绘制test和train loss曲线,包括单纵坐标和双纵坐标的实现方法,通过程序代码展示了具体步骤,并给出了相应的结果图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. test&train loss 绘在同一张图上(单纵坐标)

  • 程序代码
%在linux下运行
clear;
clc;
close all;
% 这个参数用来指定 Caffe 运行 log 文件
train_log_file = 'log-2018-07-27-10-37-42.log';
% 这个参数相当于 solver.prototxt 中的 display 值
train_interval = 20;
% 这个参数相当于 solver.prototxt 中的test_interval 值
test_interval = 200;
[~, string_output] = dos(['cat ', train_log_file, ' | grep ''Train net output #0'' | awk ''{print $11}''']);
% 第11个空格后面的提出取出
train_loss = str2num(string_output);
n = 1:length(train_loss);
idx_train = (n - 1) * train_interval;

[~, string_output] = dos(['cat ', train_log_file, ' | grep ''Test net output #2'' | awk ''{print $11}''']);
% 第11个空格后面的提出取出
test_loss = str2num(string_output);
m = 1:length(test_loss);
idx_test = (m - 1) * test_interval;
figure;
%%plot(idx_train, train_loss,'r-*',idx_test, test_loss,'b-x');
plot(idx_train, train_loss,'r-*','LineWidth',0.5);
hold on;
plot(idx_test, test_loss,'b-x');

grid on;
legend('Train Loss', 'Test Loss');
xlabel('itera
MATLAB中,使用支持向量机(SVM)进行二分类并计算性能指标通常涉及以下几个步骤: 1. **数据预处理**:首先,你需要准备训练集测试集的数据,可以使用`loaddata`函数或其他数据加载工具。 ```matlab data = load('your_dataset.mat'); X_train = data.X_train; y_train = data.y_train; X_test = data.X_test; y_test = data.y_test; ``` 2. **模型训练**:使用`fitcsvm`函数训练SVM模型,并保存分类结果。 ```matlab svmModel = fitcsvm(X_train, y_train); y_pred = predict(svmModel, X_test); ``` 3. **混淆矩阵**:通过`confusionmat`创建混淆矩阵。 ```matlab C = confusionmat(y_test, y_pred); ``` 4. **性能指标计算**: - **准确率(Accuracy)**: `accuracy = sum(diag(C)) / sum(C(:));` - **精确率(Precision)**: `precision = C(2,2) / (C(2,2) + C(1,2));` - **召回率(Recall)**: `recall = C(2,2) / (C(2,2) + C(2,1));` - **F1值(F1 Score)**: `f1 = 2 * precision * recall / (precision + recall);` 5. **Loss曲线AUC/ROC曲线**: - **Loss曲线**:SVM没有内置的损失曲线绘制函数,你可以手动绘制交叉验证得分或网格搜索的结果。 - **AUC(Area Under Curve)ROC曲线**:`[rocCurve, auc] = perfcurve(y_test, y_pred, 'Sorted', 'rows');` 这将返回一个ROC曲线,AUC值是其下的面积。`plot(rocCurve(:,1), rocCurve(:,2));` 注意:以上代码假设你已经安装了Matlab且有相应的数据集。在实际操作中,可能需要调整以适应你的数据任务需求。如果你只对特定部分有兴趣,可以直接从上述代码中挑选。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值