主要内容

tunefis

调整模糊推理系统或模糊推理系统的树

描述

例子

fisout= tunefis (fisinparamset调整模糊推理系统fisin使用中指定的可调参数Settingsparamset和指定的训练数据

fisout= tunefis (fisinparamsetcustcostfcn使用函数句柄调整模糊推理系统到定制的成本函数,custcostfcn

例子

fisout= tunefis (___选项使用对象的附加选项调整模糊推理系统选项创建使用tunefisOptions

fisout总结) = tunefis (___调优模糊推理系统,并返回关于调优算法的附加信息总结

例子

全部折叠

使用。创建初始模糊推理系统genfis

x =(0:0.1:10)”;y =罪(2 * x) / exp (x / 5);选择= genfisOptions (“GridPartition”);选项。NumMembershipFunctions = 5;fisin = genfis (x, y,选项);

获得模糊推理系统的输入、输出和规则的可调设置。

[,,规则]= getTunableSettings (fisin);

使用。调优成员函数参数简称anfis”

fisout = tunefis (fisin [;], x, y, tunefisOptions (“方法”简称anfis”));
ANFIS信息:节点数:24线性参数数:10非线性参数数:15参数总数:25训练数据对数:101检验数据对数:0模糊规则数:5开始训练ANFIS…1 0.0694086 2 0.0680259 3 0.066663 4 0.0653198步长从历元5增加到0.011000。5 0.0639961 6 0.0626917 7 0.0612787 89 0.0585193 10 0.0571712到达指定的历元数。ANFIS训练完成于纪元10。最小训练RMSE = 0.0571712

使用。创建初始模糊推理系统genfis

x =(0:0.1:10)”;y =罪(2 * x) / exp (x / 5);选择= genfisOptions (“GridPartition”);选项。NumMembershipFunctions = 5;fisin = genfis (x, y,选项);

获得模糊推理系统的输入、输出和规则的可调设置。

[,,规则]= getTunableSettings (fisin);

只调优规则参数。在本例中,使用了模式搜索方法。

fisout = tunefis (fisin,规则,x, y, tunefisOptions (“方法”“patternsearch”));
Iter Func-count f (x) MeshSize方法0.346649 0 1 1 1 19 0.346649 - 0.5细化网格2 37 0.346649 - 0.25改进网3 55 0.346649 - 0.125改进网4 73 0.346649 0.0625改进网109 0.346649 - 0.01562 91 0.346649 - 0.03125细化网格细化网格145 127 0.346649 - 0.007812改进网8 0.346649 - 0.003906细化网格9 163 0.346649 0.001953改进网199 0.346649 - 0.0004883 181 0.346649 - 0.0009766细化网格11细化网格12 217 0.346649 0.0002441细化网格13 253 235 0.346649 - 0.0001221细化网格14 15 271 0.346649 3.052 0.346649 - 6.104 e-05细化网格e-05细化网格16 289 0.346649 1.526 e-05细化网格17 307 0.346649 0.346649 7.629 e-06细化网格18 325 3.815 e-06细化网格19361 0.346649 9.537e-07细化网格优化终止:网格尺寸小于选项。

使用。创建初始模糊推理系统genfis

x =(0:0.1:10)”;y =罪(2 * x) / exp (x / 5);选择= genfisOptions (“GridPartition”);选项。NumMembershipFunctions = 5;fisin = genfis (x, y,选项);

获得模糊推理系统的输入、输出和规则的可调设置。

[,,规则]= getTunableSettings (fisin);

您可以使用自定义参数设置进行调优setTunable或点符号。

不要调优输入1。

(1) = setTunable(在(1),假);

输出1:

  • 不要调优成员函数1和2,

  • 不调优成员函数3,

  • 设置隶属函数4的最小参数范围为-2,

  • 并设置隶属函数5的最大参数范围为2。

(1) .MembershipFunctions (1:2) = setTunable(出(1).MembershipFunctions(1:2),假);(1) .MembershipFunctions (3) .Parameters。自由= false;(1) .MembershipFunctions (4) .Parameters。最小= 2;(1) .MembershipFunctions .Parameters(5)。最大= 2;

对于规则设置,

  • 不要调整规则1和规则2,

  • 将规则3的先行项设置为不可调优,

  • 在规则4之前允许非逻辑,

  • 不要忽略规则3中的任何输出。

规则(1:2)= setTunable(规则(1:2),假);(3) .Antecedent规则。自由= false;(4) .Antecedent规则。AllowNot = true;(3) .Consequent规则。AllowEmpty = false;

设置最大迭代次数为20,并对模糊推理系统进行优化。

选择= tunefisOptions (“方法”“particleswarm”);opt.MethodOptions.MaxIterations = 20;fisout = tunefis (fisin(;;规则),x, y,选择);
最好是停止迭代f-count f (x) f (x)迭代0 0 1 180 90 0.3265 1.857 0.3265 - 4.172 0 2 3 270 0.3265 3.065 360 0.3265 3.839 - 2 4 450 0.3265 3.386 3 5 6 540 0.3265 3.249 630 0.3265 3.311 - 5 810 720 0.3265 2.901 6 8 0.3265 - 2.868 7 9 0 10 990 900 0.3181 2.71 0.3181 2.068 1 11 1080 0.3181 - 2.692 2 12 0 13 1260 1170 0.3165 2.146 0.31651.869 1 14 1350 0.3165 2.364 2 15 1440 0.3165 2.07 0 16 1530 0.3164 0 17 1620 0.2978 1.592 0 18 1710 0.2977 1.847 0 19 1800 0.2954 1.666 0 20 1890 0.2947 1.608 0优化结束:迭代次数超过OPTIONS.MaxIterations。

使用k-fold交叉验证来防止调谐FIS对训练数据的过拟合。

负荷训练数据。这个训练数据集有一个输入和一个输出。

负载fuzex1trnData.dat

为训练数据创建一个模糊推理系统。

选择= genfisOptions (“GridPartition”);opt.NumMembershipFunctions = 4;opt.InputMembershipFunctionType =“gaussmf”;inputData = fuzex1trnData (: 1);outputData = fuzex1trnData (:, 2);fis = genfis (inputData outputData,选择);

为了重现性,设置随机数生成器种子。

rng (“默认”

配置FIS的调优选项。使用默认调优方法,最大值为30.迭代。

tuningOpt = tunefisOptions;tuningOpt.MethodOptions.MaxGenerations = 30;

配置以下选项以使用k折交叉验证。

  • 使用的k倍值3.

  • 使用长度窗口计算验证成本的移动平均值2

  • 当平均成本比当前最小成本高出5%时,停止每次训练验证迭代。

tuningOpt。KFoldValue = 3;tuningOpt。ValidationWindowSize = 2;tuningOpt。ValidationTolerance = 0.05;

获取FIS成员函数参数的调优设置。

[,] = getTunableSettings (fis);

优化金融中间人。

[outputFIS,信息]= tunefis (fis, [;], inputData outputData, tuningOpt);
单目标优化:16个变量选项:CreationFcn: @gacreationuniform CrossoverFcn: @crossoverscattered SelectionFcn: @selectionstochunif MutationFcn:@mutationadaptfeasible最佳意味着停滞一代Func-count f (x) f (x)代1 400 0.2421 - 0.5109 0 2 0 3 780 590 0.2292 0.4688 0.2292 0.4443 - 1 4 970 0.2256 0.4145 0 5 0 6 1350 1160 0.2165 0.3957 0.2165 0.3835 1 7 0 8 1730 1540 0.2077 0.3548 0.2077 0.3435 1 9 0 10 2110 1920 0.2012 0.3414 0.1857 0.316 0优化终止:验证公差超过。单目标优化:16个变量(s)选项:CreationFcn: @gacreationuniform CrossoverFcn: @crossoverscattered SelectionFcn: @selectionstochunif MutationFcn:@mutationadaptfeasible Best Mean Stall Generation function -count f(x) f(x) Generations 1 400 0.2089 0.3924 0 2 590 0.2059 0.3655 0优化终止:验证公差超过。单目标优化:16个变量选项:CreationFcn: @gacreationuniform CrossoverFcn: @crossoverscattered SelectionFcn: @selectionstochunif MutationFcn:@mutationadaptfeasible Best Mean Stall Generation function -count f(x) f(x) Generations 1 400 0.2489 0.3936 0 2 590 0.2438 0.3837 0 3 780 0.2438 0.3779 1 4 970 0.2067 0.3476 0优化终止:验证公差超过。交叉验证迭代3:最小验证成本为0.220104,培训成本为0.255407

评估每个训练输入值的FIS。

outputTuned = evalfis (outputFIS inputData);

将调谐FIS的输出与预期的训练输出绘制出来。

情节([outputData outputTuned])传说(“预期的输出”“调谐输出”“位置”“东南”)包含(“数据指数”) ylabel (“产值”

图中包含一个轴对象。轴对象包含两个类型为line的对象。这些对象表示预期输出、调优输出。

输入参数

全部折叠

模糊推理系统,具体为:

可调参数设置,指定为输入FIS中的输入、输出和规则参数设置数组。这些参数可以通过getTunableSettings函数的输入fisin

paramset可以是输入、输出或规则参数设置,或这些设置的任何组合。

输入训练数据,指定为——- - - - - -n矩阵,输入数据集的总数是和吗n为输入的个数。输入和输出数据集的数量必须相同。

输出训练数据,指定为——- - - - - -矩阵,输出数据集的总数是多少为输出数。输入和输出数据集的数量必须相同。

FIS调优选项,指定为tunefisOptions对象。您可以为优化过程指定优化算法方法和其他选项。

自定义成本函数,指定为函数句柄。自定义成本函数计算fisout相对于评价标准,如输入/输出数据,计算其成本。custcostfcn必须接受至少一个输入参数fisout并返回成本值。你可以提供一个匿名函数句柄来附加额外的成本计算数据,如下例所示:

函数trainingData健身= custcost(成本)...结束custcostfcn = @ (fis) custcost (fis, trainingData);

输出参数

全部折叠

模糊推理系统,具体为:

  • mamfis对象- Mamdani模糊推理系统

  • sugfisSugeno模糊推理系统

  • mamfistype22型Mamdani模糊推理系统

  • sugfistype2对象-2型Sugeno模糊推理系统

  • fistree互联模糊推理系统的对象树

fisout是同类型的FIS吗fisin

优化算法摘要,指定为包含以下字段的结构:

  • tuningOutputs—算法相关的调优信息

  • totalFunctionCount-优化成本函数的总评估次数

  • totalRuntime—调优过程的总执行时间(秒)

  • errorMessage—任何更新时产生的错误信息fisin使用新的参数值

tuningOutputs中指定的算法的结构是否包含调优信息选项.中的字段tuningOutputs取决于指定的调优算法。当使用k倍交叉验证,tuningOutputsk结构,每个结构包含一个训练验证迭代的调优信息。

当使用k倍验证,totalFunctionCounttotalRuntime总功能成本,功能评估和总运行时间ktraining-validation迭代。

介绍了R2019a