主要内容

特征提取工作流程

这个例子展示了从图像数据中提取特征的完整工作流。

获取数据

此示例使用Mnist Image Data [1],由手写数字的图像组成。图像以灰度为28×28像素。每个图像具有0到9的相关标签,这是图像所代表的数字。

首先获取图像和标签数据

http://yann.lecun.com/exdb/mnist/

解压文件。为了在这个长示例中获得更好的性能,可以将测试数据用作训练数据,将训练数据用作测试数据。

imageFileName ='t10k-images.idx3-ubyte';Labelfilename =“t10k-labels.idx1-ubyte”

处理这些文件以在工作区中加载它们。此处理函数的代码出现在本示例的末尾。

[Xtrain, LabelTrain] = processMNISTdata (imageFileName labelFileName);
读取Mnist图像数据...数据集中的图像数:10000 ...每个图像为28个像素......图像数据被读取为尺寸的矩阵:10000到784 ...阅读图像的结束数据。读取Mnist标签数据...数据集中的标签数:10000 ...标签数据被读取为尺寸的矩阵:10000×1 ...读取标签数据结束。

查看一些图像。

RNG('默认'%的再现性numrows =大小(Xtrain, 1);ims =兰迪(numrows 4 1);:一个= Xtrain (ims);为了I = 1:4 pp{I} =重塑(imgs(I,:),28,28);结尾ppf = [pp {1},pp {2}; pp {3},pp {4}];imshow(ppf);

选择新功能维度

选择要提取的功能数量有几个考虑因素:

  • 更多功能使用更多内存和计算时间。

  • 较少的特征会产生较差的分类器。

对于此示例,请选择100个功能。

q = 100;

提取特征

有两个特征提取函数,Sparsefilt.r。从这开始Sparsefilt.函数。将迭代次数设置为10,以便提取不会花费太长时间。

通常,您可以通过运行Sparsefilt.算法为几次迭代到几百次迭代。运行算法过多的迭代会导致分类精度下降,这是一种过拟合问题。

使用Sparsefilt.使用10个迭代时获取稀疏过滤模型。

Mdl = sparsefilt (Xtrain q'iterationlimit'10);
警告:解算器LBFGS不能收敛到一个解。

Sparsefilt.警告内部LBFGS优化器没有收敛。优化器没有收敛,因为您将迭代限制设置为10.然而,您可以使用结果培训分类器。

创建分类器

将原始数据转换为新功能表示。

Xtrain NewX =变换(Mdl);

根据转换后的数据和中正确的分类标签训练线性分类器LabelTrain.。学习模型的准确性对此敏感fitcecoc正则化参数lambda.。尝试找到最优雅的价值lambda.通过使用OptimizeHyperparameters名称-值对。请注意,这种优化需要时间。如果您有并行计算工具箱™许可证,请使用并行计算以更快地执行。如果您没有并行许可证,请删除UseParallel在运行此脚本之前调用。

t = templateLinear (“规划求解”“lbfgs”);选项= struct('使用指平行',真正的);cmdl = fitcecoc(newx,labeltrain,'学习者't...'OptimizeHyperParameters',{'lambda'},...“HyperparameterOptimizationOptions”、选择);
复制目标函数,工人...完成复制目标函数的工人。|================================================================================================| | Iter | |活跃Eval客观客观| | | BestSoFar | BestSoFar |λ| | |工人结果| | |运行时| | (estim(观察) .) | | |================================================================================================| | 1 | 6 |最好的0.5777 | 8.5334 | 0.5777 | 0.5777 | 0.20606 | | 2 | 5 | Accept | 0.8865 | 8.9062 | 0.2041 | 0.27206 | 8.8234 | | 3 | 5 | Best | 0.2041 | 9.7024 | 0.2041 | 0.27206 | 0.026804 | | 4 | 6 | Best | 0.1077 | 14.629 | 0.1077 | 0.10773 | 1.7309e-09 | | 5 | 6 | Best | 0.0962 | 15.767 | 0.0962 | 0.096203 | 0.0002442 | | 6 | 6 | Accept | 0.1999 | 6.4363 | 0.0962 | 0.09622 | 0.024862 | | 7 | 6 | Accept | 0.2074 | 6.4171 | 0.0962 | 0.096222 | 0.029034 | | 8 | 6 | Accept | 0.1065 | 12.974 | 0.0962 | 0.096222 | 2.037e-08 | | 9 | 6 | Accept | 0.0977 | 22.976 | 0.0962 | 0.096216 | 8.0495e-06 | | 10 | 6 | Accept | 0.1237 | 8.5033 | 0.0962 | 0.096199 | 0.0029745 | | 11 | 6 | Accept | 0.1076 | 10.653 | 0.0962 | 0.096208 | 0.00080903 | | 12 | 6 | Accept | 0.1034 | 16.761 | 0.0962 | 0.0962 | 3.2145e-07 | | 13 | 6 | Best | 0.0933 | 16.715 | 0.0933 | 0.093293 | 6.3327e-05 | | 14 | 6 | Accept | 0.109 | 12.946 | 0.0933 | 0.09328 | 5.7887e-09 | | 15 | 6 | Accept | 0.0994 | 18.805 | 0.0933 | 0.093312 | 1.8981e-06 | | 16 | 6 | Accept | 0.106 | 15.088 | 0.0933 | 0.093306 | 7.4684e-08 | | 17 | 6 | Accept | 0.0952 | 20.372 | 0.0933 | 0.093285 | 2.2831e-05 | | 18 | 6 | Accept | 0.0933 | 14.528 | 0.0933 | 0.093459 | 0.00013097 | | 19 | 6 | Accept | 0.1082 | 12.764 | 0.0933 | 0.093458 | 1.0001e-09 | | 20 | 6 | Best | 0.0915 | 16.157 | 0.0915 | 0.092391 | 8.3234e-05 | |================================================================================================| | Iter | Active | Eval | Objective | Objective | BestSoFar | BestSoFar | Lambda | | | workers | result | | runtime | (observed) | (estim.) | | |================================================================================================| | 21 | 6 | Accept | 0.8865 | 6.6373 | 0.0915 | 0.092387 | 1.6749 | | 22 | 6 | Accept | 0.0929 | 17.306 | 0.0915 | 0.092457 | 0.00010668 | | 23 | 6 | Accept | 0.0937 | 19.046 | 0.0915 | 0.092535 | 5.0962e-05 | | 24 | 6 | Accept | 0.0916 | 17.932 | 0.0915 | 0.092306 | 9.023e-05 | | 25 | 6 | Accept | 0.0935 | 17.53 | 0.0915 | 0.092431 | 0.00011726 | | 26 | 6 | Accept | 0.1474 | 8.3795 | 0.0915 | 0.092397 | 0.006997 | | 27 | 6 | Accept | 0.0939 | 19.188 | 0.0915 | 0.092427 | 5.2557e-05 | | 28 | 6 | Accept | 0.1147 | 10.686 | 0.0915 | 0.092432 | 0.0015036 | | 29 | 6 | Accept | 0.1049 | 16.609 | 0.0915 | 0.092434 | 1.4871e-07 | | 30 | 6 | Accept | 0.1069 | 13.929 | 0.0915 | 0.092435 | 1.0899e-08 | __________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 83.1976 seconds. Total objective function evaluation time: 416.8767 Best observed feasible point: Lambda __________ 8.3234e-05 Observed objective function value = 0.0915 Estimated objective function value = 0.09245 Function evaluation time = 16.1569 Best estimated feasible point (according to models): Lambda _________ 9.023e-05 Estimated objective function value = 0.092435 Estimated function evaluation time = 17.0972

评估分类器

当应用到测试数据时检查分类器的错误。首先,加载测试数据。

imageFileName ='train-images.idx3-ubyte';Labelfilename =“train-labels.idx1-ubyte”;[Xtest, LabelTest] = processMNISTdata (imageFileName labelFileName);
读取MNIST图像数据…数据集中的图像数量:60000…每个图像是28 × 28像素…图像数据被读取为一个维数为60000 × 784的矩阵。读取图像数据结束。读取MNIST标签数据…数据集中的标签数量:60000…标签数据被读取为一个矩阵:60000 × 1…标签数据读取结束。

计算将分类器应用于测试数据时的分类损失。

Xtest TestX =变换(Mdl);损失=损失(Cmdl TestX LabelTest)
损失= 0.1009.

这种转换是否产生了比在原始数据上训练的更好的分类器?基于原始训练数据创建分类器并评估其损失。

omdl = fitcecoc(xtrain,labeltrain,'学习者't...'OptimizeHyperParameters',{'lambda'},...“HyperparameterOptimizationOptions”、选择);LOSTO =损失(OMDL,XTEST,LABELTEST)
复制目标函数,工人...完成复制目标函数的工人。|================================================================================================| | Iter | |活跃Eval客观客观| | | BestSoFar | BestSoFar |λ| | |工人结果| | |运行时| | (estim(观察) .) | | |================================================================================================| | 1 | 5 |最好的0.0779 | 46.965 | 0.0779 | 0.0779 | 5.7933e-08 | | 2 | 5 | Accept | 0.0779 | 47.003 | 0.0779 | 0.0779 | 3.8643e-09 | | 3 | 5 | Accept | 0.0779 | 47.068 | 0.0779 | 0.0779 | 1.3269e-06 | | 4 | 6 | Accept | 0.078 | 60.714 | 0.0779 | 0.077925 | 3.0332e-05 | | 5 | 6 | Accept | 0.0787 | 133.21 | 0.0779 | 0.0779 | 0.011605 | | 6 | 6 | Best | 0.0775 | 135.97 | 0.0775 | 0.077983 | 0.00020291 | | 7 | 6 | Accept | 0.0779 | 44.642 | 0.0775 | 0.077971 | 5.735e-08 | | 8 | 6 | Accept | 0.0785 | 123.19 | 0.0775 | 0.0775 | 0.024589 | | 9 | 6 | Accept | 0.0779 | 43.574 | 0.0775 | 0.0775 | 1.0042e-09 | | 10 | 6 | Accept | 0.0779 | 43.038 | 0.0775 | 0.0775 | 4.7227e-06 | | 11 | 6 | Best | 0.0774 | 137.51 | 0.0774 | 0.077451 | 0.00021639 | | 12 | 6 | Accept | 0.0779 | 44.07 | 0.0774 | 0.077452 | 6.7132e-09 | | 13 | 6 | Accept | 0.0779 | 44.822 | 0.0774 | 0.077453 | 2.873e-07 | | 14 | 6 | Best | 0.0744 | 233.12 | 0.0744 | 0.074402 | 6.805 | | 15 | 6 | Accept | 0.0778 | 140.49 | 0.0744 | 0.074406 | 0.66889 | | 16 | 6 | Accept | 0.0774 | 149.32 | 0.0744 | 0.074405 | 0.0002769 | | 17 | 6 | Accept | 0.0774 | 155 | 0.0744 | 0.074404 | 0.00046083 | | 18 | 6 | Accept | 0.0765 | 152.63 | 0.0744 | 0.074687 | 0.00027101 | | 19 | 6 | Accept | 0.0768 | 156.32 | 0.0744 | 0.077558 | 0.00026573 | | 20 | 6 | Best | 0.0725 | 255.51 | 0.0725 | 0.073249 | 9.9961 | |================================================================================================| | Iter | Active | Eval | Objective | Objective | BestSoFar | BestSoFar | Lambda | | | workers | result | | runtime | (observed) | (estim.) | | |================================================================================================| | 21 | 6 | Best | 0.0723 | 221.5 | 0.0723 | 0.073161 | 4.212 | | 22 | 6 | Accept | 0.0732 | 259.51 | 0.0723 | 0.073166 | 9.9916 | | 23 | 6 | Best | 0.072 | 261.94 | 0.072 | 0.072848 | 9.9883 | | 24 | 6 | Accept | 0.0778 | 122.56 | 0.072 | 0.072854 | 0.13413 | | 25 | 6 | Accept | 0.0733 | 258.54 | 0.072 | 0.072946 | 9.9904 | | 26 | 6 | Accept | 0.0746 | 244.53 | 0.072 | 0.073144 | 7.0911 | | 27 | 6 | Accept | 0.0779 | 44.573 | 0.072 | 0.073134 | 2.1183e-08 | | 28 | 6 | Accept | 0.078 | 45.478 | 0.072 | 0.073126 | 1.1663e-05 | | 29 | 6 | Accept | 0.0779 | 43.954 | 0.072 | 0.073118 | 1.336e-07 | | 30 | 6 | Accept | 0.0779 | 44.574 | 0.072 | 0.073112 | 1.7282e-09 | __________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 690.8688 seconds. Total objective function evaluation time: 3741.3176 Best observed feasible point: Lambda ______ 9.9883 Observed objective function value = 0.072 Estimated objective function value = 0.073112 Function evaluation time = 261.9357 Best estimated feasible point (according to models): Lambda ______ 9.9961 Estimated objective function value = 0.073112 Estimated function evaluation time = 257.9556 Losso = 0.0865

基于稀疏滤波的分类器基于原始数据的分类器具有稍微较高的损耗。但是,分类器仅使用100个功能而不是原始数据中的784个功能,并且要更快地创建。尝试通过增加进行更好的稀疏过滤分类器问:从100到200,仍然远低于784。

q = 200;mdl2 = sparsefilt(xtrain,q,'iterationlimit'10);NewX =变换(Mdl2 Xtrain);TestX =变换(Mdl2 Xtest);cmdl = fitcecoc(newx,labeltrain,'学习者't...'OptimizeHyperParameters',{'lambda'},...“HyperparameterOptimizationOptions”、选择);LOST2 =损失(CMDL,TESTX,LABELTEST)
警告:解算器LBFGS无法收敛到解决方案。正在将目标函数复制到工人。。。已完成将目标函数复制到工作人员。|=====================================================================================================================================================================================================================================================================================================================================================================================================================================================================第二天,中国热火(1244)对中国热火(1244)对中国热火(1244)对中国热火(1244)对中国热火(244)对中国热火(1244)Lamb达(1244))的测量结果:中国热火(1244)对中国热火(1244)对中国热火(1244)对中国热火(1244)对中国热火(1244)最好)对中国热火(244)的BeBeBe斯of(244)Lamb达(244)Lamb达(244)方方方方方方方)的测量测量,工人们(1244)工人,工人们(1244)工人们,结果,结果工人们,结果,结果,结果工人们(1244)工人们,结果,结果,结果,结果,运行时(124124刺刺刺刺刺刺刺刺刺刺刺刺刺刺刺刺刺刺刺刺1244)的运行时,运行时,运行时(运行时)的运行时(运行1 | 5 |最佳| 0.8865 | 7.3578 | 0.8865 | 0.8865 | 1.93 | 2 | 5 |接受| 0.8865 | 7.3408 | 0.8865 |0.0693 0.067 7 0.067 7 7 0.0665 0 0.0665 0 0.8865 0 0 0.8865 0 0 0 0 0 0 0 0.8865 0 0 0.8865 0 0 0.686 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 0 0 0 0 0 0 0 0.066 6 6 6 6 6 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 6 7 7 7 7 7 7 7 7 7 7;0.015542 | 6 | 6 |接受| 0.8865 | 7.5032 | 0.0693 | 0.06943 | 4.7067 | 7 | 6 |接受| 0.071 | 8.8044 | 0.0693 | 0.069591 |5.08615.0 0.0861e-0.08615-5-5.086-5.08615-5 5.086-5 5.086-5.0 0 0.0617 0.0617 0.069 0.069 0.0 0 0 0 0.0 0 0 0 0.0 0 0 0.085 5 5-5 5 0 0 0 0 0 0 0.086接受接受0 0.0 0 0 0 0 0.7 7 7 7 7 7 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 0.7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6 6 6 6 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0|11 | 6 |接受| 0.0651 | 20.074 | 0.0594 | 0.059463 | 8.078e-07 | 12 | 6 |接受| 0.0695 | 14.495 | 0.0594 | 0.059473 |1.3.03811 E-7 0 0.038 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 0.0 0 0 0.059 9 9 0.0 0 0 0 0.059 9 9 0 0 0 0 0.059 7 7 7 7 0 0.0 0 0 0 0.038 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 0 0 0 0 0.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| 16 | 6 |接受| 0.0637 | 30.593 | 0.0594 | 0.059449 | 8.8718e-06 | 17 | 6 |接受| 0.064 | 25.084 | 0.0594 | 0.059464|2.6 6 6.6 6 6 6.6 6 6 6 6 6 6 6 6.6 6 6 6.6 6 6 6 6 6.6 6 6 6 6 0.6 6 6 0.6 6 6 6 6 6 6 6 6 6 6 6 6 7.6 6 6 6 6 6 2.6 6 6 6 6 6 6 6 6 4.6 6 6 6 6 6 6 5 5 5 5 5 5 5 6 6 6 0.6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 5 5 5 5 5\\\12444 4 4 4 4 4 0.6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6|124;============================================================================================================================================================================================================国际热核聚变实验堆|活动|评估|第二名为:目的:目的:目的:目的:最好的,最好的,最好的,最好的,最好的,最好的,最好的,最好的,Lambdadadadadadadada|1244)工人,工人,结果,结果(124|1244)运行时,运行时(被观察到的)运行时(被观察到的)运行时(被观察到)的(被观察到的)的(被观察的)的)据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据据0.0594 | 27.686 | 0.0594 | 0.059453 | 8.0717e-05 | 22 | 6 |接受| 0.0612 | 33.427 | 0.0594 | 0.059476 |1.68788 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4|26 | 6 |接受| 0.0598 | 28.536 | 0.0593 | 0.059465 | 5.0819e-05 | 27 | 6 |接受| 0.0701 | 9.0545 | 0.0593 | 0.059466 |1.897 7 7.7 7 7.117 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0.059 9 9 0 0 0.5 9 9 9 9 9 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0| 31 | 3 |接受| 0.0725 | 16.069 | 0.0593 | 0.059422 | 0.00069403 | 32 |接受| 0.1928 | 8.3732 | 0.0593 | 0.059422 |0.040402 | | | uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。MaxObjectiveEvaluation达到了30。总功能评估:32总运行时间:97.7946秒。目标函数总评价时间:545.3255最佳观测可行点:Lambdauuuuuuu7.8179e-05观测目标函数值=0.0593估计目标函数值=0.059422函数评价时间=26.2624最佳估计可行点(根据模型):Lambdauuuuuuuu-05估计目标函数值=0.059422估计功能评估时间=26.508损失2=0.0682

这次分类损失比原始数据分类器的分类损失小。

试着黎加

试试其他的特征提取函数,r。提取200个功能,创建分类器,并在测试数据上检查其丢失。使用更多的迭代r功能,因为r迭代次数越多,性能是否会更好Sparsefilt.用途。

通常在特征提取之前,将输入数据“预白化”作为数据预处理步骤。预白步骤包括两个变换,去相关和标准化,使预测器具有零均值和恒等协方差。r万博1manbetx仅支持标准化转换。您使用标准化名称-值对参数使预测器的平均值和单位方差为零。或者,您可以通过应用zscore在呼叫前转换Sparsefilt.r

mdl3 = rica(xtrain,q,'iterationlimit', 400,“标准化”,真正的);NewX =变换(Mdl3 Xtrain);TestX =变换(Mdl3 Xtest);cmdl = fitcecoc(newx,labeltrain,'学习者't...'OptimizeHyperParameters',{'lambda'},...“HyperparameterOptimizationOptions”、选择);Loss3 =损失(Cmdl TestX LabelTest)
警告:解算器LBFGS不能收敛到一个解。复制目标函数,工人...完成复制目标函数的工人。|================================================================================================| | Iter | |活跃Eval客观客观| | | BestSoFar | BestSoFar |λ| | |工人结果| | |运行时| | (estim(观察) .) | | |================================================================================================| | 1 | 6 |最好的0.1179 | 12.012 | 0.1179 | 0.1179 | 8.4727 | | 2 | 6 | Best | 0.082 | 13.384 | 0.082 | 0.083897 | 4.3291e-09 | | 3 | 6 | Best | 0.0809 | 18.917 | 0.0809 | 0.080902 | 1.738e-05 | | 4 | 6 | Accept | 0.0821 | 19.172 | 0.0809 | 0.08091 | 3.8101e-06 | | 5 | 6 | Accept | 0.0921 | 14.445 | 0.0809 | 0.086349 | 2.3753 | | 6 | 6 | Accept | 0.0809 | 13.393 | 0.0809 | 0.083836 | 1.3757e-08 | | 7 | 6 | Best | 0.076 | 28.075 | 0.076 | 0.081808 | 0.00027773 | | 8 | 6 | Best | 0.0758 | 29.686 | 0.0758 | 0.078829 | 0.00068195 | | 9 | 6 | Accept | 0.0829 | 13.373 | 0.0758 | 0.078733 | 1.7543e-07 | | 10 | 6 | Accept | 0.0826 | 14.031 | 0.0758 | 0.078512 | 1.0045e-09 | | 11 | 6 | Accept | 0.0817 | 13.662 | 0.0758 | 0.078077 | 2.4568e-08 | | 12 | 6 | Accept | 0.0799 | 19.311 | 0.0758 | 0.077658 | 1.4061e-05 | | 13 | 6 | Best | 0.065 | 25.148 | 0.065 | 0.064974 | 0.060326 | | 14 | 6 | Accept | 0.0787 | 23.434 | 0.065 | 0.064947 | 0.00012407 | | 15 | 6 | Accept | 0.072 | 19.167 | 0.065 | 0.064997 | 0.43899 | | 16 | 6 | Accept | 0.073 | 28.39 | 0.065 | 0.065053 | 0.0023721 | | 17 | 6 | Accept | 0.0787 | 29.887 | 0.065 | 0.064928 | 0.00042914 | | 18 | 6 | Accept | 0.0662 | 26.374 | 0.065 | 0.064295 | 0.0077638 | | 19 | 6 | Accept | 0.0652 | 24.937 | 0.065 | 0.064502 | 0.087389 | | 20 | 6 | Accept | 0.0655 | 25.416 | 0.065 | 0.064762 | 0.072931 | |================================================================================================| | Iter | Active | Eval | Objective | Objective | BestSoFar | BestSoFar | Lambda | | | workers | result | | runtime | (observed) | (estim.) | | |================================================================================================| | 21 | 6 | Best | 0.0645 | 25.529 | 0.0645 | 0.064691 | 0.059245 | | 22 | 6 | Accept | 0.065 | 23.832 | 0.0645 | 0.06474 | 0.025521 | | 23 | 6 | Accept | 0.0819 | 20.343 | 0.0645 | 0.064732 | 7.2593e-07 | | 24 | 6 | Accept | 0.0664 | 23.732 | 0.0645 | 0.064718 | 0.1534 | | 25 | 6 | Accept | 0.0651 | 24.796 | 0.0645 | 0.064693 | 0.038371 | | 26 | 6 | Accept | 0.0651 | 25.449 | 0.0645 | 0.064613 | 0.014318 | | 27 | 6 | Accept | 0.0652 | 25.092 | 0.0645 | 0.064713 | 0.037107 | | 28 | 6 | Accept | 0.0645 | 24.404 | 0.0645 | 0.0647 | 0.042959 | | 29 | 6 | Accept | 0.0649 | 24.704 | 0.0645 | 0.064729 | 0.042776 | | 30 | 6 | Accept | 0.0652 | 24.341 | 0.0645 | 0.064786 | 0.035788 | __________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 124.9755 seconds. Total objective function evaluation time: 654.4364 Best observed feasible point: Lambda ________ 0.059245 Observed objective function value = 0.0645 Estimated objective function value = 0.064932 Function evaluation time = 25.5294 Best estimated feasible point (according to models): Lambda ________ 0.042776 Estimated objective function value = 0.064786 Estimated function evaluation time = 24.7849 Loss3 = 0.0749

r与稀疏过滤分类器相比,基于稀疏过滤分类器的测试损失略高。

尝试更多的功能

特征提取功能几乎没有调谐参数。一个可能影响结果的一个参数是所请求的功能的数量。请参阅分类器基于1000个功能时如何工作,而不是先前尝试的200个功能,或原始数据中的784个功能。使用比在原始数据中出现的更多功能被称为“超越”学习。相反,使用更少的功能被称为“uchifallete”学习。超越学习可以导致分类准确性提高,而欠顺列学习可以节省内存和时间。

q = 1000;mdl4 = sparsefilt(xtrain,q,'iterationlimit'10);newx =变换(MDL4,XTrain);testx =变换(mdl4,xtest);cmdl = fitcecoc(newx,labeltrain,'学习者't...'OptimizeHyperParameters',{'lambda'},...“HyperparameterOptimizationOptions”、选择);Loss4 =损失(Cmdl TestX LabelTest)
警告:解算器LBFGS不能收敛到一个解。复制目标函数,工人...完成复制目标函数的工人。|================================================================================================| | Iter | |活跃Eval客观客观| | | BestSoFar | BestSoFar |λ| | |工人结果| | |运行时| | (estim(观察) .) | | |================================================================================================| | 1 | 6 |最好的0.5293 | 39.885 | 0.5293 | 0.5293 | 0.20333 | | 2 | 6 | Accept | 0.8022 | 43.475 | 0.5293 | 0.66575 | 0.77337 | | 3 | 6 | Best | 0.0406 | 52.594 | 0.0406 | 0.11113 | 9.1082e-09 | | 4 | 6 | Best | 0.0403 | 54.73 | 0.0403 | 0.060037 | 2.3947e-09 | | 5 | 6 | Accept | 0.0695 | 124.96 | 0.0403 | 0.040319 | 0.001361 | | 6 | 6 | Accept | 0.0406 | 53.691 | 0.0403 | 0.040207 | 1.0005e-09 | | 7 | 6 | Best | 0.0388 | 178.69 | 0.0388 | 0.038811 | 1.4358e-06 | | 8 | 6 | Accept | 0.0615 | 138.53 | 0.0388 | 0.038817 | 0.00088731 | | 9 | 6 | Best | 0.0385 | 61.81 | 0.0385 | 0.038557 | 7.4709e-08 | | 10 | 6 | Accept | 0.0399 | 54.198 | 0.0385 | 0.038555 | 2.1909e-08 | | 11 | 6 | Accept | 0.0402 | 234.55 | 0.0385 | 0.038639 | 0.000101 | | 12 | 6 | Accept | 0.0431 | 198.09 | 0.0385 | 0.038636 | 0.00018896 | | 13 | 6 | Accept | 0.0393 | 75.811 | 0.0385 | 0.039016 | 1.1597e-07 | | 14 | 6 | Accept | 0.0387 | 61.281 | 0.0385 | 0.038908 | 7.0518e-08 | | 15 | 6 | Accept | 0.0393 | 125.73 | 0.0385 | 0.038931 | 2.8429e-07 | | 16 | 6 | Accept | 0.0397 | 89.804 | 0.0385 | 0.039106 | 1.4603e-07 | | 17 | 6 | Accept | 0.0391 | 126.88 | 0.0385 | 0.039081 | 3.0065e-07 | | 18 | 6 | Accept | 0.0398 | 56.157 | 0.0385 | 0.039123 | 4.1563e-08 | | 19 | 6 | Accept | 0.0406 | 55.25 | 0.0385 | 0.039122 | 1.0014e-09 | | 20 | 6 | Accept | 0.0385 | 272.92 | 0.0385 | 0.039127 | 9.568e-06 | |================================================================================================| | Iter | Active | Eval | Objective | Objective | BestSoFar | BestSoFar | Lambda | | | workers | result | | runtime | (observed) | (estim.) | | |================================================================================================| | 21 | 6 | Accept | 0.0412 | 55.191 | 0.0385 | 0.039124 | 3.3737e-09 | | 22 | 6 | Accept | 0.0394 | 229.72 | 0.0385 | 0.039117 | 3.2757e-06 | | 23 | 6 | Best | 0.0379 | 295.55 | 0.0379 | 0.039116 | 2.8439e-05 | | 24 | 6 | Accept | 0.0394 | 168.74 | 0.0379 | 0.039111 | 9.778e-07 | | 25 | 6 | Accept | 0.039 | 281.91 | 0.0379 | 0.039112 | 8.0694e-06 | | 26 | 6 | Accept | 0.8865 | 54.865 | 0.0379 | 0.038932 | 9.9885 | | 27 | 6 | Accept | 0.0381 | 300.7 | 0.0379 | 0.037996 | 2.6027e-05 | | 28 | 6 | Accept | 0.0406 | 54.611 | 0.0379 | 0.037996 | 1.6057e-09 | | 29 | 6 | Accept | 0.1272 | 76.648 | 0.0379 | 0.037997 | 0.012507 | | 30 | 6 | Accept | 0.0403 | 57.931 | 0.0379 | 0.037997 | 4.9907e-08 | __________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 724.6036 seconds. Total objective function evaluation time: 3674.8899 Best observed feasible point: Lambda __________ 2.8439e-05 Observed objective function value = 0.0379 Estimated objective function value = 0.03801 Function evaluation time = 295.5515 Best estimated feasible point (according to models): Lambda __________ 2.6027e-05 Estimated objective function value = 0.037997 Estimated function evaluation time = 297.6756 Loss4 = 0.0440

基于提取1000个特征的过完备稀疏滤波分类器的测试损失最小。

Mdl5 =黎加(Xtrain q'iterationlimit', 400,“标准化”,真正的);newx =变换(mdl5,xtrain);testx =变换(mdl5,xtest);cmdl = fitcecoc(newx,labeltrain,'学习者't...'OptimizeHyperParameters',{'lambda'},...“HyperparameterOptimizationOptions”、选择);丢失5 =损失(cmdl,testx,labeltest)
警告:解算器LBFGS不能收敛到一个解。复制目标函数,工人...完成复制目标函数的工人。|================================================================================================| | Iter | |活跃Eval客观客观| | | BestSoFar | BestSoFar |λ| | |工人结果| | |运行时| | (estim(观察) .) | | |================================================================================================| | 1 | 6 |最好的0.0764 |46.206 |0.0764 |0.0764 |8.4258E-09 || 2 | 6 | Accept | 0.077 | 141.95 | 0.0764 | 0.0767 | 6.9536e-06 | | 3 | 6 | Accept | 0.0771 | 146.87 | 0.0764 | 0.076414 | 7.3378e-06 | | 4 | 6 | Best | 0.0709 | 182.51 | 0.0709 | 0.0709 | 0.48851 | | 5 | 6 | Accept | 0.0764 | 46.923 | 0.0709 | 0.070903 | 5.0695e-09 | | 6 | 6 | Best | 0.068 | 294.89 | 0.068 | 0.068004 | 0.0029652 | | 7 | 6 | Accept | 0.125 | 99.095 | 0.068 | 0.068001 | 9.9814 | | 8 | 6 | Accept | 0.0693 | 321.66 | 0.068 | 0.067999 | 0.0015167 | | 9 | 6 | Accept | 0.0882 | 138.03 | 0.068 | 0.068 | 1.8203 | | 10 | 6 | Accept | 0.0753 | 285.07 | 0.068 | 0.067991 | 0.00042423 | | 11 | 6 | Accept | 0.0764 | 47.704 | 0.068 | 0.067984 | 1.6326e-07 | | 12 | 6 | Accept | 0.0763 | 46.514 | 0.068 | 0.06798 | 1.0048e-09 | | 13 | 6 | Best | 0.0643 | 252.2 | 0.0643 | 0.0643 | 0.095965 | | 14 | 6 | Accept | 0.0766 | 168.37 | 0.0643 | 0.0643 | 9.1336e-07 | | 15 | 6 | Accept | 0.0753 | 153.29 | 0.0643 | 0.064301 | 4.8641e-05 | | 16 | 6 | Accept | 0.0662 | 256.65 | 0.0643 | 0.064298 | 0.0093576 | | 17 | 6 | Best | 0.0632 | 224.2 | 0.0632 | 0.063226 | 0.031314 | | 18 | 6 | Accept | 0.0673 | 219.59 | 0.0632 | 0.063201 | 0.20528 | | 19 | 6 | Accept | 0.0637 | 244.17 | 0.0632 | 0.063208 | 0.075001 | | 20 | 6 | Accept | 0.064 | 234.85 | 0.0632 | 0.06321 | 0.081232 | |================================================================================================| | Iter | Active | Eval | Objective | Objective | BestSoFar | BestSoFar | Lambda | | | workers | result | | runtime | (observed) | (estim.) | | |================================================================================================| | 21 | 6 | Accept | 0.0646 | 242.2 | 0.0632 | 0.063315 | 0.078081 | | 22 | 6 | Accept | 0.0633 | 217.97 | 0.0632 | 0.063233 | 0.039495 | | 23 | 6 | Accept | 0.0643 | 224.22 | 0.0632 | 0.063496 | 0.052107 | | 24 | 6 | Accept | 0.0761 | 45.102 | 0.0632 | 0.063509 | 4.3946e-08 | | 25 | 6 | Accept | 0.0645 | 221.24 | 0.0632 | 0.063778 | 0.044455 | | 26 | 6 | Accept | 0.0763 | 44.572 | 0.0632 | 0.063778 | 1.9139e-09 | | 27 | 6 | Accept | 0.0639 | 216.9 | 0.0632 | 0.063791 | 0.041759 | | 28 | 6 | Accept | 0.0766 | 45.609 | 0.0632 | 0.06379 | 2.0642e-08 | | 29 | 6 | Accept | 0.0765 | 121.35 | 0.0632 | 0.063789 | 3.5882e-07 | | 30 | 6 | Accept | 0.0636 | 215.47 | 0.0632 | 0.063755 | 0.038062 | __________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 30 reached. Total function evaluations: 30 Total elapsed time: 952.7987 seconds. Total objective function evaluation time: 5145.3787 Best observed feasible point: Lambda ________ 0.031314 Observed objective function value = 0.0632 Estimated objective function value = 0.063828 Function evaluation time = 224.2018 Best estimated feasible point (according to models): Lambda ________ 0.044455 Estimated objective function value = 0.063755 Estimated function evaluation time = 219.4845 Loss5 = 0.0748

基于具有1000个提取功能的RICA的分类器基于200提取的特征对RICA分类器具有类似的测试丢失。

通过使用优化HyperParametersBayesopt.

特征提取功能具有以下调整参数:

  • 迭代限制

  • 函数,要么rSparsefilt.

  • 范围lambda.

  • 学习功能的数量问:

fitcecoc正则化参数也会影响学习分类器的准确性。在HyperParameters列表中包含该参数。

要有效地搜索可用参数,请尝试Bayesopt.。使用以下目标函数,包括从工作区传递的参数。

函数target = filterica(x,Xtrain,Xtest,LabelTrain,LabelTest,winit) initW = winit(1:size(Xtrain,2),1:x.q);如果char(x.solver)=='r'Mdl =黎加(Xtrain x.q,'lambda',x.lambda,'iterationlimit',x.iterlim,...“InitialTransformWeights”initW,“标准化”,真正的);其他的mdl = sparsefilt(xtrain,x.q,'lambda',x.lambda,'iterationlimit',x.iterlim,...“InitialTransformWeights”, initW);结尾Xtrain NewX =变换(Mdl);Xtest TestX =变换(Mdl);t = templateLinear ('lambda',x.lambdareg,“规划求解”“lbfgs”);cmdl = fitcecoc(newx,labeltrain,'学习者',t);目标=损失(cmdl,testx,labeltest);

为了消除变化源,确定一个初始变换权矩阵。

W = randn (1 e4, 1 e3);

为目标函数创建HyperParameters。

iterlim =优化不变(“iterlim”,[5,500],“类型”'整数');λ= optimizableVariable (“λ”[0, 10]);解算器= optimizableVariable (“解算器”,{'r''},“类型”“分类”);qvar = optimizableVariable ('Q'(1000),“类型”'整数');lambdareg =优化的可变(“lambdareg”(1 e-6, 1),“转换”'日志');vars = [iterlim,lambda,求解器,qvar,lambdareg];

运行优化时不要出现内部优化未运行完成时出现的警告。运行60次迭代,而不是默认的30次,以使优化有更好的机会找到一个好的值。

警告(“关闭”的统计数据:classreg:学习:fsutils:解决:LBFGSUnableToConverge”);结果= bayesopt(@ x) filterica(x,Xtrain,Xtest,LabelTrain,LabelTest,W),var,...'使用指平行'是的,“MaxObjectiveEvaluations”、60);警告('在'的统计数据:classreg:学习:fsutils:解决:LBFGSUnableToConverge”);
复制目标函数,工人...完成复制目标函数的工人。| ============================================================================================================================================================ ||磨练|活动|eval |目标|目标|Bestsofar |Bestsofar | iterlim | lambda | solver | q | lambdareg | | | workers | result | | runtime | (observed) | (estim.) | | | | | | |============================================================================================================================================================| | 1 | 6 | Best | 0.16408 | 33.743 | 0.16408 | 0.16408 | 140 | 9.4661 | s | 98 | 0.0007106 | | 2 | 6 | Best | 0.079213 | 51.975 | 0.079213 | 0.09064 | 10 | 9.466 | r | 685 | 0.010462 | | 3 | 6 | Best | 0.074897 | 82.031 | 0.074897 | 0.074983 | 32 | 3.7554 | r | 689 | 0.13737 | | 4 | 6 | Accept | 0.07546 | 93.221 | 0.074897 | 0.075073 | 178 | 3.9741 | r | 196 | 0.1829 | | 5 | 6 | Accept | 0.13924 | 30.444 | 0.074897 | 0.074933 | 282 | 0.36123 | r | 33 | 0.99029 | | 6 | 6 | Accept | 0.083964 | 133 | 0.074897 | 0.074933 | 58 | 9.7653 | r | 685 | 0.0014623 | | 7 | 6 | Accept | 0.08128 | 33.609 | 0.074897 | 0.074957 | 8 | 5.6351 | r | 519 | 0.0065822 | | 8 | 6 | Accept | 0.090751 | 203.96 | 0.074897 | 0.074913 | 131 | 0.73308 | r | 577 | 2.1172e-05 | | 9 | 6 | Accept | 0.090001 | 172.38 | 0.074897 | 0.074904 | 146 | 8.1899 | r | 454 | 1.4417e-05 | | 10 | 6 | Accept | 0.080191 | 316.8 | 0.074897 | 0.074897 | 164 | 0.48783 | r | 727 | 0.004936 | | 11 | 6 | Best | 0.060472 | 40.777 | 0.060472 | 0.060731 | 5 | 2.3201 | s | 530 | 1.1957e-06 | | 12 | 6 | Accept | 0.079027 | 45.841 | 0.060472 | 0.060632 | 8 | 0.55541 | r | 696 | 0.030914 | | 13 | 6 | Accept | 0.074823 | 237.43 | 0.060472 | 0.06067 | 109 | 4.5352 | r | 781 | 0.12274 | | 14 | 6 | Accept | 0.84009 | 85.121 | 0.060472 | 0.060468 | 306 | 0.59533 | s | 148 | 0.89675 | | 15 | 6 | Accept | 0.15637 | 200.13 | 0.060472 | 0.060451 | 90 | 3.0192 | s | 999 | 0.0043768 | | 16 | 6 | Accept | 0.69006 | 14.273 | 0.060472 | 0.06047 | 6 | 9.4568 | s | 407 | 0.13833 | | 17 | 6 | Accept | 0.093035 | 205.83 | 0.060472 | 0.060469 | 263 | 2.3083 | r | 308 | 1.0016e-06 | | 18 | 6 | Accept | 0.18753 | 6.0238 | 0.060472 | 0.060527 | 36 | 9.806 | s | 24 | 8.3653e-06 | | 19 | 6 | Accept | 0.119 | 749.98 | 0.060472 | 0.060751 | 482 | 0.51927 | s | 818 | 1.5416e-06 | | 20 | 6 | Accept | 0.076414 | 751.21 | 0.060472 | 0.060754 | 387 | 9.9936 | r | 784 | 0.26786 | |============================================================================================================================================================| | Iter | Active | Eval | Objective | Objective | BestSoFar | BestSoFar | iterlim | lambda | solver | q | lambdareg | | | workers | result | | runtime | (observed) | (estim.) | | | | | | |============================================================================================================================================================| | 21 | 6 | Accept | 0.099332 | 7.2298 | 0.060472 | 0.060828 | 20 | 0.78894 | s | 49 | 1.0335e-06 | | 22 | 6 | Accept | 0.090139 | 7.9815 | 0.060472 | 0.060858 | 11 | 3.2973 | r | 88 | 2.7437e-06 | | 23 | 6 | Accept | 0.076696 | 323.64 | 0.060472 | 0.060872 | 120 | 1.9199 | r | 999 | 0.2537 | | 24 | 6 | Accept | 0.098003 | 50.544 | 0.060472 | 0.060876 | 492 | 1.7197 | r | 27 | 0.00020896 | | 25 | 6 | Accept | 0.10383 | 56.568 | 0.060472 | 0.06101 | 11 | 5.256 | s | 971 | 0.00054471 | | 26 | 6 | Accept | 0.14405 | 30.426 | 0.060472 | 0.060797 | 477 | 5.5475 | r | 12 | 0.022342 | | 27 | 6 | Accept | 0.09046 | 53.398 | 0.060472 | 0.060815 | 13 | 2.1216 | r | 986 | 1.1811e-06 | | 28 | 6 | Best | 0.051641 | 99.452 | 0.051641 | 0.051368 | 23 | 2.6976 | s | 985 | 1.0558e-06 | | 29 | 6 | Accept | 0.10016 | 6.4162 | 0.051641 | 0.051365 | 6 | 3.7223 | r | 69 | 9.2926e-05 | | 30 | 6 | Accept | 0.10943 | 40.676 | 0.051641 | 0.051391 | 488 | 5.2092 | r | 19 | 2.4162e-05 | | 31 | 6 | Accept | 0.086761 | 7.8419 | 0.051641 | 0.051393 | 24 | 6.5535 | r | 42 | 0.0013244 | | 32 | 6 | Best | 0.0504 | 96.816 | 0.0504 | 0.050526 | 14 | 9.929 | s | 1000 | 2.8809e-06 | | 33 | 6 | Accept | 0.088789 | 81.158 | 0.0504 | 0.050525 | 14 | 1.0441 | r | 927 | 0.00021061 | | 34 | 6 | Accept | 0.083083 | 887.17 | 0.0504 | 0.05052 | 351 | 6.8834 | r | 978 | 0.0026404 | | 35 | 6 | Best | 0.050023 | 99.493 | 0.050023 | 0.050372 | 19 | 9.9813 | s | 899 | 1.0257e-06 | | 36 | 6 | Accept | 0.053338 | 113.36 | 0.050023 | 0.050499 | 7 | 4.7855 | s | 984 | 1.8611e-06 | | 37 | 6 | Accept | 0.089024 | 70.047 | 0.050023 | 0.0505 | 15 | 8.8301 | r | 984 | 6.0636e-06 | | 38 | 6 | Accept | 0.052029 | 95.822 | 0.050023 | 0.050551 | 7 | 9.759 | s | 996 | 3.7871e-06 | | 39 | 6 | Accept | 0.085992 | 73.422 | 0.050023 | 0.050528 | 5 | 2.7837 | r | 968 | 0.004483 | | 40 | 6 | Accept | 0.091159 | 5.8348 | 0.050023 | 0.05052 | 15 | 8.7732 | r | 37 | 0.084632 | |============================================================================================================================================================| | Iter | Active | Eval | Objective | Objective | BestSoFar | BestSoFar | iterlim | lambda | solver | q | lambdareg | | | workers | result | | runtime | (observed) | (estim.) | | | | | | |============================================================================================================================================================| | 41 | 6 | Best | 0.046444 | 152.93 | 0.046444 | 0.047062 | 30 | 4.0843 | s | 997 | 7.279e-06 | | 42 | 6 | Accept | 0.052712 | 58.107 | 0.046444 | 0.04698 | 12 | 0.99592 | s | 652 | 1.0258e-06 | | 43 | 6 | Accept | 0.058005 | 91.928 | 0.046444 | 0.047263 | 10 | 5.511 | s | 1000 | 2.4589e-05 | | 44 | 6 | Accept | 0.055413 | 103.25 | 0.046444 | 0.047306 | 7 | 5.6791 | s | 953 | 1.4656e-06 | | 45 | 6 | Accept | 0.052517 | 96.201 | 0.046444 | 0.049604 | 10 | 5.9403 | s | 996 | 1.0525e-05 | | 46 | 6 | Accept | 0.089527 | 76.617 | 0.046444 | 0.046888 | 20 | 1.0744 | r | 965 | 0.96766 | | 47 | 6 | Accept | 0.050062 | 99.709 | 0.046444 | 0.046735 | 12 | 9.9236 | s | 975 | 4.5916e-06 | | 48 | 6 | Accept | 0.21166 | 90.117 | 0.046444 | 0.049716 | 495 | 1.1996 | s | 86 | 0.00022338 | | 49 | 6 | Accept | 0.054535 | 79.1 | 0.046444 | 0.046679 | 6 | 0.22929 | s | 967 | 7.6974e-06 | | 50 | 6 | Accept | 0.12385 | 964.74 | 0.046444 | 0.049963 | 474 | 4.7085 | s | 991 | 8.6984e-05 | | 51 | 6 | Accept | 0.052016 | 76.098 | 0.046444 | 0.049914 | 10 | 1.0798 | s | 922 | 1.133e-06 | | 52 | 6 | Accept | 0.048984 | 95.054 | 0.046444 | 0.049891 | 12 | 4.69 | s | 976 | 1.0189e-06 | | 53 | 6 | Accept | 0.1948 | 889.11 | 0.046444 | 0.047903 | 466 | 7.9582 | s | 986 | 0.0012319 | | 54 | 6 | Accept | 0.10652 | 5.076 | 0.046444 | 0.047961 | 10 | 5.9107 | r | 40 | 0.52677 | | 55 | 6 | Accept | 0.074194 | 319.41 | 0.046444 | 0.04981 | 130 | 2.6437 | s | 997 | 7.8756e-06 | | 56 | 6 | Accept | 0.1014 | 45.184 | 0.046444 | 0.049828 | 480 | 6.1835 | r | 24 | 2.0019e-06 | | 57 | 6 | Accept | 0.33214 | 3.1996 | 0.046444 | 0.049785 | 12 | 7.4538 | s | 13 | 0.016248 | | 58 | 6 | Accept | 0.054348 | 96.616 | 0.046444 | 0.050832 | 12 | 2.8605 | s | 987 | 4.7951e-06 | | 59 | 6 | Accept | 0.71471 | 3.0555 | 0.046444 | 0.050852 | 10 | 9.8909 | s | 24 | 0.21362 | | 60 | 6 | Accept | 0.074353 | 67.118 | 0.046444 | 0.05084 | 8 | 5.5275 | s | 986 | 8.9716e-05 | __________________________________________________________ Optimization completed. MaxObjectiveEvaluations of 60 reached. Total function evaluations: 60 Total elapsed time: 1921.1117 seconds. Total objective function evaluation time: 9107.7006 Best observed feasible point: iterlim lambda solver q lambdareg _______ ______ ______ ___ _________ 30 4.0843 s 997 7.279e-06 Observed objective function value = 0.046444 Estimated objective function value = 0.053743 Function evaluation time = 152.932 Best estimated feasible point (according to models): iterlim lambda solver q lambdareg _______ ______ ______ ___ _________ 10 1.0798 s 922 1.133e-06 Estimated objective function value = 0.05084 Estimated function evaluation time = 90.9315

产生的分类器没有比使用的分类器有更好(更低)的损失Sparsefilt.对于1000个特性,经过10次迭代的训练。

查看过滤器系数的最佳超参数Bayesopt.发现。生成的图像显示了所提取特征的形状。这些形状可以识别为手写数字的一部分。

Xtbl = results.XAtMinObjective;Q = Xtbl.q;initW = W(1:尺寸(Xtrain, 2), 1:问);如果char (Xtbl.solver) = ='r'Mdl =黎加(Xtrain Q'lambda'Xtbl.lambda,'iterationlimit'Xtbl.iterlim,...“InitialTransformWeights”initW,“标准化”,真正的);其他的mdl = sparsefilt(xtrain,q,'lambda'Xtbl.lambda,'iterationlimit'Xtbl.iterlim,...“InitialTransformWeights”, initW);结尾但是= Mdl.TransformWeights;但是=重塑(Wts,[问]28日28日);(dx, dy, ~, ~) = (Wts)大小;为了Wvec = Wts(:,:,f);Wvec = Wvec (:);Wvec = (Wvec - min (Wvec)) / (max (Wvec) - min (Wvec));但是(::f) =重塑(Wvec, dx, dy);结尾m = CEIL(SQRT(Q));n = m;IMG =零(m * dx,n * dy);f = 1;为了i = 1: m为了j = 1:n如果(f <= q)img((i-1)* dx + 1:i * dx,(j-1)* dy + 1:j * dy,:) = wts(::,f);f = f + 1;结尾结尾结尾imshow (img);
警告:解算器LBFGS不能收敛到一个解。

读取mist数据的代码

将数据读入工作区的函数的代码是:

函数[x,l] = processmnistdata(imagefilename,labelfilename)[fileId,ertmsg] = fopen(imagefilename,'r'“b”);如果fileID < 0错误(errmsg);结尾%%先读这个神奇的数字。对于图像数据,这个数字是2051%2049用于标签数据MagicNum = fread(fileid,1,“int32”0,“b”);如果magicNum == 2051 fprintf('\nRead mist图像数据…\n'结尾%%%然后读取图像数量、行数、列数numImages =从文件中读(文件标识,1“int32”0,“b”);流('数据集中的图像数量:%6d…\n', numImages);numRows =从文件中读(文件标识,1“int32”0,“b”);numCols =从文件中读(文件标识,1“int32”0,“b”);流(“每个图像是%2d × %2d像素……\n”,numrows,numcols);%%%读取镜像数据X =从文件中读(inf文件标识,'无符号的字符');%%%将数据重塑为数组XX =重塑(X, numCols numRows numImages);X = permute(X,[2 1 3]);%%然后,%将每个图像数据达到1(numrows * numcols)向量,%将所有图像数据存储到一个numImages by (numRows*numCols)数组中。X =重塑(X, numRows * numCols numImages) ';fprintf(['图像数据被读取为一个维度矩阵:%6d by %4d…\n'...'阅读图像数据结束。\ n'),大小(X, 1),大小(X, 2));%%%关闭文件fclose(fileid);%%%同样,读取标签数据。[fileid,ertmsg] = fopen(Labelfilename,'r'“b”);如果fileID < 0错误(errmsg);结尾MagicNum = fread(fileid,1,“int32”0,“b”);如果magicNum == 2049 fprintf('\nRead nist label data…\n'结尾numItems =从文件中读(文件标识,1“int32”0,“b”);流('数据集中的标签数量:%6d…\n', numItems);L =从文件中读(inf文件标识,'无符号的字符');fprintf(['标签数据被读取到一个维度为:%6d by %2d…\n'...'读取标签数据结束。\n'),大小(L, 1),大小(L, 2));fclose(fileid);

参考

Yann LeCun (Courant Institute, NYU)和Corinna Cortes(谷歌Labs, New York)拥有MNIST数据集的版权,该数据集是NIST原始数据集的衍生作品。MNIST数据集是在知识共享署名-共享相似3.0许可条款下提供的,https://creativecommons.org/licenses/by-sa/3.0/

也可以看看

|||

相关例子

更多关于