调整模糊推理系统或模糊推理系统的树
使用。创建初始模糊推理系统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 (“产值”)
fisin
- - - - - -模糊推理系统mamfis
对象|sugfis
对象|mamfistype2
对象|sugfistype2
对象|fistree
对象模糊推理系统,具体为:
mamfis
对象- Mamdani模糊推理系统
sugfis
Sugeno模糊推理系统
mamfistype2
2型Mamdani模糊推理系统
sugfistype2
对象-2型Sugeno模糊推理系统
fistree
互联模糊推理系统的对象树
paramset
- - - - - -可调参数设置可调参数设置,指定为输入FIS中的输入、输出和规则参数设置数组。这些参数可以通过getTunableSettings
函数的输入fisin
.
paramset
可以是输入、输出或规则参数设置,或这些设置的任何组合。
在
- - - - - -输入训练数据输入训练数据,指定为米——- - - - - -n矩阵,米输入数据集的总数是和吗n为输入的个数。输入和输出数据集的数量必须相同。
出
- - - - - -输出训练数据输出训练数据,指定为米——- - - - - -问矩阵,米输出数据集的总数是多少问为输出数。输入和输出数据集的数量必须相同。
选项
- - - - - -FIS调优选项tunefisOptions
选项设置FIS调优选项,指定为tunefisOptions
对象。您可以为优化过程指定优化算法方法和其他选项。
custcostfcn
- - - - - -定制的成本函数自定义成本函数,指定为函数句柄。自定义成本函数计算fisout
相对于评价标准,如输入/输出数据,计算其成本。custcostfcn
必须接受至少一个输入参数fisout
并返回成本值。你可以提供一个匿名函数句柄来附加额外的成本计算数据,如下例所示:
函数trainingData健身= custcost(成本)...结束custcostfcn = @ (fis) custcost (fis, trainingData);
fisout
-模糊推理系统mamfis
对象|sugfis
对象|mamfistype2
对象|sugfistype2
对象|fistree
对象模糊推理系统,具体为:
mamfis
对象- Mamdani模糊推理系统
sugfis
Sugeno模糊推理系统
mamfistype2
2型Mamdani模糊推理系统
sugfistype2
对象-2型Sugeno模糊推理系统
fistree
互联模糊推理系统的对象树
fisout
是同类型的FIS吗fisin
.
总结
-优化算法总结优化算法摘要,指定为包含以下字段的结构:
tuningOutputs
—算法相关的调优信息
totalFunctionCount
-优化成本函数的总评估次数
totalRuntime
—调优过程的总执行时间(秒)
errorMessage
—任何更新时产生的错误信息fisin
使用新的参数值
tuningOutputs
中指定的算法的结构是否包含调优信息选项
.中的字段tuningOutputs
取决于指定的调优算法。当使用k倍交叉验证,tuningOutputs
是k结构,每个结构包含一个训练验证迭代的调优信息。
当使用k倍验证,totalFunctionCount
和totalRuntime
总功能成本,功能评估和总运行时间ktraining-validation迭代。
次のMATLABコマンドに対応するリンクがクリックされました。
コマンドをMATLABコマンドウィンドウに入力して実行してください。WebブラウザーはMATLABコマンドをサポートしていません。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。