拟合判别分析分类器
根据表中包含的输入变量(也称为预测器、特征或属性)返回一个拟合的判别分析模型Mdl
= fitcdiscr (资源描述
,ResponseVarName
)资源描述
而输出(响应或标签)包含在ResponseVarName
.
载入费雪的虹膜数据集。
负载fisheriris
利用整个数据集训练一个判别分析模型。
Mdl = fitcdiscr(量、物种)
Mdl = ClassificationDiscriminant ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 150 discritype: 'linear' Mu: [3x4 double] Coeffs: [3x3 struct]属性,方法
Mdl
是一个ClassificationDiscriminant
模型。要访问其属性,请使用点表示法。例如,显示每个预测器的组均值。
Mdl。μ
ans =3×45.0060 3.4280 1.4620 0.2460 5.9360 2.7700 4.2600 1.3260 6.5880 2.9740 5.5520 2.0260
为了预测新的观察结果的标签,通过Mdl
和预测数据预测
.
此示例演示如何使用自动优化超参数fitcdiscr
.这个例子使用了Fisher的虹膜数据。
加载数据。
负载fisheriris
通过使用自动超参数优化找到最小化五倍交叉验证损失的超参数。
为了再现性,设置随机种子并使用“expected-improvement-plus”
采集功能。
rng(1) Mdl = fitcdiscr(meas,species,“OptimizeHyperparameters”,“汽车”,...“HyperparameterOptimizationOptions”,...结构(“AcquisitionFunctionName”,“expected-improvement-plus”))
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFarδ|γ| | | | |结果运行时| | | (estim(观察) .) | | | |=====================================================================================================| | 最好1 | | 0.66667 | 1.0907 | 0.66667 | 0.66667 | 13.261 | 0.25218 |
| 0.02 | 0.099698 | 0.02 | 0.064227 | 2.7404e-05 | 0.073264 |
| 3 |接受| 0.04 | 0.1121 | 0.02 | 0.020084 | 3.2455e-06 | 0.46974 |
| 4 |接受| 0.66667 | 0.081014 | 0.02 | 0.020118 | 14.879 | 0.98622 |
| 5 |接受| 0.046667 | 0.12032 | 0.02 | 0.019907 | 0.00031449 | 0.97362 |
| 6 |接受| 0.04 | 0.074027 | 0.02 | 0.028438 | 4.5092e-05 | 0.43616 |
| 7 |接受| 0.046667 | 0.066533 | 0.02 | 0.031424 | 2.0973e-05 | 0.9942 |
| 8 | 0.02 | 0.067014 | 0.02 | 0.022424 | 1.0554e-06 | 0.0024286 |
| 9 |接受| 0.02 | 0.067049 | 0.02 | 0.021105 | 1.1232e-06 | 0.00014039 |
| 0.02 | 0.06981 | 0.02 | 0.020948 | 0.00011837 | 0.0032994 |
| 11 |接受| 0.02 | 0.068447 | 0.02 | 0.020172 | 1.0292e-06 | 0.027725 |
| 12 |接受| 0.02 | 0.067554 | 0.02 | 0.020105 | 9.7792 -05 | 0.0022817 |
| 13 | 0.02 | 0.070962 | 0.02 | 0.020038 | 0.00036014 | 0.0015136 |
| 14 |接受| 0.02 | 0.065973 | 0.02 | 0.019597 | 0.00021059 | 0.0044789 |
| 15 |接受| 0.02 | 0.066822 | 0.02 | 0.019461 | 1.1911e-05 | 0.0010135 |
| 16 | 0.02 | 0.072618 | 0.02 | 0.01993 | 0.0017896 | 0.00071115 |
| 17 |接受| 0.02 | 0.069112 | 0.02 | 0.019551 | 0.00073745 | 0.0066899 |
| 18 |接受| 0.02 | 0.068305 | 0.02 | 0.019776 | 0.00079304 | 0.00011509 |
| 19 |接受| 0.02 | 0.067392 | 0.02 | 0.019678 | 0.007292 | 0.0007911 |
| 20 |接受| 0.046667 | 0.078876 | 0.02 | 0.019785 | 0.0074408 | 0.99945 |
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFarδ|γ| | | | |结果运行时| | | (estim(观察) .) | | | |=====================================================================================================| | 21日|接受| 0.02 | 0.067218 | 0.02 | 0.019043 | 0.0036004 | 0.0024547 |
| 22 | 0.02 | 0.079969 | 0.02 | 0.019755 | 2.5238e-05 | 0.0015542 |
| 23 |接受| 0.02 | 0.070177 | 0.02 | 0.0191 | 1.5478e-05 | 0.0026899 |
| 24 | 0.02 | 0.064725 | 0.02 | 0.019081 | 0.0040557 | 0.00046815 |
| 25 |接受| 0.02 | 0.065815 | 0.02 | 0.019333 | 2.959e-05 | 0.0011358 |
| 26 | 0.02 | 0.066704 | 0.02 | 0.019369 | 2.3111e-06 | 0.0029205 |
| 27 |接受| 0.02 | 0.065487 | 0.02 | 0.019455 | 3.8898e-05 | 0.0011665 |
| 28 |接受| 0.02 | 0.063646 | 0.02 | 0.019449 | 0.0035925 | 0.0020278 |
| 29 |接受| 0.66667 | 0.070781 | 0.02 | 0.019479 | 998.93 | 0.064276 |
| 30 | 0.02 | 0.067911 | 0.02 | 0.01947 | 8.1557e-06 | 0.0008004 |
__________________________________________________________ 优化完成。最大目标:达到30。总运行时间:23.9743秒。最佳可行观测点:Delta Gamma __________ ________ 2.7404e-05 0.073264观测到的目标函数值= 0.02估计的目标函数值= 0.022693函数评估时间= 0.099698最佳估计可行点(根据模型):Delta Gamma __________ _________ 2.5238e-05 0.0015542估计的目标函数值= 0.01947估计的函数评估时间= 0.068908
Mdl = ClassificationDiscriminant ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'setosa' 'versicolor' 'virginica'} ScoreTransform: 'none' NumObservations: 150 HyperparameterOptimizationResults: [1×1 BayesianOptimization] discritype: 'linear' Mu: [3×4 double] Coeffs: [3×3 struct]属性,方法
在默认的5倍交叉验证中,拟合达到约2%的损失。
这个例子展示了如何使用高数组自动优化判别分析模型的超参数。示例数据集airlinesmall.csv
是一个大型数据集,其中包含航空公司航班数据的表格文件。这个示例创建一个包含数据的高表,并使用它运行优化过程。
当您在高数组上执行计算时,MATLAB®使用并行池(如果您有并行计算工具箱™则默认)或本地MATLAB会话。如果在拥有并行计算工具箱的情况下,希望使用本地MATLAB会话运行示例,则可以通过使用mapreduce
函数。
创建一个使用数据引用文件夹位置的数据存储。选择要处理的变量的一个子集,并进行处理“NA”
值作为缺失的数据,因此数据存储
取代他们南
值。创建一个包含数据存储中的数据的高表。
ds =数据存储(“airlinesmall.csv”);ds。年代electedVariableNames = {“月”,“DayofMonth”,“DayOfWeek”,...“DepTime”,“ArrDelay”,“距离”,“DepDelay”};ds。TreatAsMissing =“NA”;tt =高(ds)%高表
使用“本地”配置文件启动并行池(parpool)…连接到平行池(工人数量:6)。tt = M×7高表月DayofMonth DayOfWeek DepTime DepDelay ArrDelay距离 _____ __________ _________ _______ ________ ________ ________ 10 21 642 8 308年12 26 10 23 5 1 1021 8 296 2055 21 480 1332 10 23 5 13 296 12 10 22 4 629 373 1 10 28 3 1446 59 308 63 10 8 4 928 447 2 10 10 6 859 11 954 1 : : : : : : : : : : : : : :
通过定义一个逻辑变量来确定延误10分钟或更长时间的航班。这个变量包含类标签。该变量的预览包括前几行。
Y = tt。DepDelay > 10%的类标签
Y = M×1高逻辑阵列1 0 1 1 0 1 0 0 0::
为预测器数据创建一个高数组。
X = tt {: 1: end-1}%的预测数据
X = M×6高双矩阵1021 3 642 8 308 10 26 1 1021 8 296 10 23 5 2055 21 480 10 23 5 1332 13 296 10 22 4 629 4 373 10 28 3 1446 59 308 10 8 4 928 3 447 10 10 6 859 11 954::::::::::::
删除行X
而且Y
包含丢失数据的。
R = rmmissing([X Y]);删除缺失条目的数据X = R (:, 1: end-1);Y = R(:,结束);
标准化预测变量。
Z = zscore (X);
方法自动优化超参数“OptimizeHyperparameters”
名称-值对的论点。找到最优“DiscrimType”
最小抵制交叉验证损失的值。(指定“汽车”
使用“DiscrimType”
)。对于可再现性,使用“expected-improvement-plus”
采集函数和设置种子的随机数生成器使用rng
而且tallrng
.根据工作人员的数量和tall数组的执行环境,结果可能有所不同。有关详细信息,请参见控制代码运行的位置(MATLAB)。
rng (“默认”) tallrng (“默认”[Mdl,FitInfo,HyperparameterOptimizationResults] = fitcdiscr(Z,Y,...“OptimizeHyperparameters”,“汽车”,...“HyperparameterOptimizationOptions”结构(“坚持”, 0.3,...“AcquisitionFunctionName”,“expected-improvement-plus”))
使用Parallel Pool 'local'计算高表达式:—通过2中的1:0%完成计算0%完成
-通过1 / 2:在6.5秒内完成-通过2 / 2:在4.8秒内完成评估在19秒内完成使用并行池“local”计算高表达式:在2.6秒完成评估在2.9秒完成 |======================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | DiscrimType | | |结果| |运行时| | (estim(观察) .) | | |======================================================================================| | 最好1 | | 0.11354 | 29.439 | 0.11354 | 0.11354 |二次|
使用并行池“local”计算高表达式:-通过1 / 1:在1.5秒内完成评估在2.6秒内完成评估使用并行池“local”:-通过1 / 1:在0.88秒内完成评估在1秒内完成| 2 |接受| 0.11354 | 7.6757 | 0.11354 | 0.11354 | pseudoQuadra |
使用并行池'local'计算高表达式:-通过1:在0.87秒内完成评估在2秒内完成评估使用并行池'local': -通过1:在0.82秒内完成评估在0.95秒内完成| 3 |接受| 0.12869 | 6.819 | 0.11354 | 0.11859 |伪线性|
使用并行池'local'评估高表达式:-通过1:在0.82秒完成评估在1.6秒完成评估使用并行池'local': -通过1:在0.77秒完成评估在0.9秒完成| 4 |接受| 0.12745 | 6.1437 | 0.11354 | 0.1208 | diagLinear |
使用并行池“local”评估高表达式:-通过1 / 1:在0.82秒完成评估在1.6秒完成评估使用并行池“local”:-通过1 / 1:在0.76秒完成评估在0.88秒完成| 5 |接受| 0.12869 | 6.2058 | 0.11354 | 0.12238 |线性|
使用并行池“local”计算高表达式:-通过1 / 1:在0.8秒内完成评估在1.5秒内完成评估使用并行池“local”:-通过1 / 1:在0.74秒内完成评估在0.87秒内完成| 6 | Best | 0.11301 | 5.6591 | 0.11301 | 0.12082 | diagQuadrati |
使用并行池“local”计算高表达式:-通过1 / 1:在0.91秒完成评估在1.6秒完成评估使用并行池“local”:-通过1 / 1:在0.74秒完成评估在0.87秒完成| 7 |接受| 0.11301 | 5.7062 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池'local'计算高表达式:-通过1 / 1:在0.79秒完成评估在1.5秒完成评估使用并行池'local': -通过1 / 1:在0.75秒完成评估在0.87秒完成| 8 |接受| 0.11301 | 5.6338 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池“local”计算高表达式:-通过1 / 1:在0.83秒内完成评估在1.6秒内完成评估使用并行池“local”:-通过1 / 1:在0.75秒内完成评估在0.87秒内完成| 9 |接受| 0.11301 | 5.6792 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池“local”评估高表达式:-通过1 / 1:在0.83秒完成评估在1.6秒完成使用并行池“local”评估高表达式:-通过1 / 1:在0.74秒完成评估在0.85秒完成| 10 |接受| 0.11301 | 5.6936 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池“local”计算高表达式:-通过1 / 1:在0.82秒内完成评估在1.5秒内完成评估使用并行池“local”:-通过1 / 1:在0.78秒内完成评估在0.91秒内完成| 11 |接受| 0.11301 | 5.7416 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池“local”评估高表达式:-通过1 / 1:在0.83秒完成评估在1.6秒完成使用并行池“local”评估高表达式:-通过1 / 1:在0.76秒完成评估在0.88秒完成| 12 |接受| 0.11301 | 5.8429 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池“local”计算高表达式:-通过1 / 1:在0.82秒内完成评估在1.5秒内完成评估使用并行池“local”:-通过1 / 1:在0.74秒内完成评估在0.86秒内完成| 13 |接受| 0.11301 | 5.6494 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池'local'计算高表达式:-通过1 / 1:在0.84秒内完成评估在1.5秒内完成评估使用并行池'local'计算高表达式:-通过1 / 1:在0.77秒内完成评估在0.9秒内完成| 14 |接受| 0.11301 | 5.6808 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池“local”计算高表达式:-通过1 / 1:在0.89秒内完成评估在1.5秒内完成评估使用并行池“local”:-通过1 / 1:在0.72秒内完成评估在0.84秒内完成| 15 |接受| 0.11354 | 5.6261 | 0.11301 | 0.11301 | pseudoQuadra |
使用并行池“local”计算高表达式:-通过1 / 1:在0.85秒内完成评估在1.5秒内完成评估使用并行池“local”:-通过1 / 1:在0.75秒内完成评估在0.87秒内完成| 16 |接受| 0.11301 | 5.5662 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池'local'计算高表达式:-通过1 / 1:在0.84秒内完成评估在1.5秒内完成评估使用并行池'local': -通过1 / 1:在0.75秒内完成评估在0.87秒内完成| 17 |接受| 0.11301 | 5.5904 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池“local”计算高表达式:-通过1 / 1:在0.89秒内完成评估在1.6秒内完成评估使用并行池“local”:-通过1 / 1:在1.3秒内完成评估在1.4秒内完成| 18 |接受| 0.11301 | 6.2936 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池“local”计算高表达式:-通过1 / 1:在0.81秒内完成评估在1.5秒内完成评估使用并行池“local”:-通过1 / 1:在0.76秒内完成评估在0.88秒内完成| 19 |接受| 0.11301 | 5.6236 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池“local”计算高表达式:-通过1 / 1:在0.8秒内完成评估在1.5秒内完成评估使用并行池“local”:-通过1 / 1:在0.85秒内完成评估在0.97秒内完成| 20 |接受| 0.11301 | 5.6608 | 0.11301 | 0.11301 | diagQuadrati |
通过1 / 1:在0.81秒内完成,在1.5秒内完成,使用并行池“local”计算高表达式:-通过1 / 1:在0.75秒完成评估在0.87秒完成 |======================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | DiscrimType | | |结果| |运行时| | (estim(观察) .) | | |======================================================================================| | 21日|接受| 0.11301 | 5.5474 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池“local”计算高表达式:-通过1 / 1:在0.79秒内完成评估在1.4秒内完成评估使用并行池“local”:-通过1 / 1:在0.73秒内完成评估在0.86秒内完成| 22 |接受| 0.11354 | 5.5354 | 0.11301 | 0.11301 |二次|
使用并行池'local'计算高表达式:-通过1 / 1:在0.8秒内完成评估在1.5秒内完成评估使用并行池'local'计算高表达式:-通过1 / 1:在0.74秒内完成评估在0.86秒内完成| 23 |接受| 0.11354 | 5.5548 | 0.11301 | 0.11301 |二次|
使用并行池“local”计算高表达式:-通过1 / 1:在0.8秒内完成评估在1.5秒内完成评估使用并行池“local”:-通过1 / 1:在0.82秒内完成评估在0.94秒内完成| 24 |接受| 0.11301 | 5.6123 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池“local”计算高表达式:-通过1 / 1:在0.83秒内完成评估在1.5秒内完成评估使用并行池“local”:-通过1 / 1:在0.73秒内完成评估在0.85秒内完成| 25 |接受| 0.11301 | 5.5319 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池'local'计算高表达式:-通过1 / 1:在0.78秒内完成评估在1.5秒内完成评估使用并行池'local': -通过1 / 1:在0.75秒内完成评估在0.86秒内完成| 26 |接受| 0.11301 | 5.5199 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池'local'计算高表达式:-通过1 / 1:在0.83秒内完成评估在1.6秒内完成评估使用并行池'local': -通过1 / 1:在0.75秒内完成评估在0.86秒内完成| 27 |接受| 0.12869 | 5.9427 | 0.11301 | 0.11301 |伪线性|
使用并行池'local'计算高表达式:-通过1 / 1:在0.84秒内完成评估在1.5秒内完成评估使用并行池'local'计算高表达式:-通过1 / 1:在0.74秒内完成评估在0.88秒内完成| 28 |接受| 0.11301 | 5.6447 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池'local'计算高表达式:-通过1 / 1:在0.84秒内完成评估在1.5秒内完成评估使用并行池'local'计算高表达式:-通过1 / 1:在0.74秒内完成评估在0.87秒内完成| 29 |接受| 0.11354 | 5.5633 | 0.11301 | 0.11301 |二次|
使用并行池“local”计算高表达式:-通过1 / 1:在0.89秒内完成评估在1.6秒内完成评估使用并行池“local”:-通过1 / 1:在0.74秒内完成评估在0.86秒内完成| 30 |接受| 0.11301 | 5.6907 | 0.11301 | 0.11301 | diagQuadrati |
__________________________________________________________ 优化完成。最大目标:达到30。总运行时间:238.5681秒。最佳可行点(根据模型):DiscrimType _____________ diag平方估计的目标函数值= 0.11301估计的目标函数值= 0.11301估计的函数评估时间= 5.6591估计的目标函数值= 0.11301估计的函数评估时间= 5.8946使用并行池'local'评估高表达式:1 / 1: 0.69秒完成评估1.4秒完成
Mdl = classreg.learning.classif.CompactClassificationDiscriminant PredictorNames: {'x1' 'x2' 'x3' 'x4' 'x5' 'x6'} ResponseName: 'Y' CategoricalPredictors: [] ClassNames: [0 1] ScoreTransform: 'none' discritype: ' diagsquared ' Mu: [2×6 double] Coeffs: [2×2 struct]属性,方法
FitInfo =不带字段的结构。
HyperparameterOptimizationResults = BayesianOptimization with properties: ObjectiveFcn: @createObjFcn/tallObjFcn variabledescription: [1×1 optimizableVariable] Options: [1×1 struct] MinObjective: 0.1130 XAtMinObjective: [1×1 table] minestimatedobjobjective: [1×1 table] numobjectiveevaluts30 TotalElapsedTime: 238.5681 NextPoint: [1×1 table] XTrace: [30×1 table] ObjectiveTrace: [30×1 double] ConstraintsTrace: [] UserDataTrace:{30×1 cell} ObjectiveEvaluationTimeTrace: [30×1 double] IterationTimeTrace: [30×1 double] ErrorTrace: [30×1 double]可行性跟踪:[30×1 logical]可行性概率跟踪:[30×1 double] IndexOfMinimumTrace: [30×1 double] objectivminimumtrace: [30×1 double] estimatedobjectivminimumtrace: [30×1 double]
资源描述
- - - - - -样本数据用于训练模型的样例数据,指定为表。每一行的资源描述
对应一个观察结果,每一列对应一个预测变量。可选地,资源描述
可以为响应变量包含一个附加列。不允许多列变量和字符向量的单元格数组以外的单元格数组。
如果资源描述
包含响应变量,并且希望在中使用所有剩余变量资源描述
作为预测器,然后通过使用指定响应变量ResponseVarName
.
如果资源描述
包含响应变量,并且您希望仅使用其余变量的子集资源描述
作为预测器,然后用指定公式公式
.
如果资源描述
不包含响应变量,则使用Y
.中的响应变量的长度和行数资源描述
必须是相等的。
数据类型:表格
公式
- - - - - -响应变量和预测变量子集的解释模型响应变量和预测变量子集的解释模型,在形式中指定为字符向量或字符串标量“Y ~ X1 + X2 + X3”
.在这种形式,Y
表示响应变量,和X1
,X2
,X3
表示预测变量。
中指定变量的子集资源描述
使用公式作为训练模型的预测因子。如果您指定了一个公式,那么该软件将不使用任何变量资源描述
没有出现在公式
.
公式中的变量名必须是资源描述
(Tbl.Properties.VariableNames
)和有效的MATLAB®标识符。
中的变量名可以进行验证资源描述
通过使用isvarname
函数。以下代码返回合乎逻辑的结果1
(真正的
)用于每个具有有效变量名的变量。
cellfun (@isvarname Tbl.Properties.VariableNames)
资源描述
是无效的,那么使用matlab.lang.makeValidName
函数。Tbl.Properties.VariableNames = matlab.lang.makeValidName (Tbl.Properties.VariableNames);
数据类型:字符
|字符串
Y
- - - - - -类标签类标签,指定为类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。每一行的Y
的对应行的分类X
.
软件认为南
,”
(空字符向量),""
(空字符串),< >失踪
,<定义>
值Y
丢失的值因此,该软件不能使用缺少响应的观察结果进行训练。
数据类型:分类
|字符
|字符串
|逻辑
|单
|双
|细胞
X
- - - - - -预测数据预测器值,指定为数值矩阵。每一列的X
表示一个变量,每一行表示一个观察结果。
fitcdiscr
认为南
值X
作为缺失值。fitcdiscr
不使用缺失值的观察X
的健康。
数据类型:单
|双
指定逗号分隔的可选对名称,值
参数。的名字
参数名称和价值
对应的值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
“DiscrimType”、“二次”,“SaveMemory”,“上”
指定二次判别分类器,并且不将协方差矩阵存储在输出对象中。
方法不能使用任何交叉验证名值对参数“OptimizeHyperparameters”
名称-值对的论点。的交叉验证“OptimizeHyperparameters”
只有使用“HyperparameterOptimizationOptions”
名称-值对的论点。
“类名”
- - - - - -用于培训的类的名称用于训练的类名,指定为逗号分隔的对,由“类名”
和类别、字符或字符串数组、逻辑或数字向量或字符向量的单元格数组。一会
必须具有与?相同的数据类型Y
.
如果一会
是字符数组,则每个元素必须对应于数组的一行。
使用“类名”
:
在培训期间订购课程。
指定与类顺序对应的任何输入或输出参数维度的顺序。例如,使用“类名”
指定…尺寸的顺序成本
返回的分类分数的列顺序预测
.
选择培训类的一个子集。例如,假设所有不同的类名的集合Y
是{' a ', ' b ', ' c '}
.使用类的观察来训练模型“一个”
而且“c”
只是,指定“类名”,{' a ', ' c '}
.
的默认值。一会
所有不同的类名的集合是否在Y
.
例子:“类名”,{' b ', ' g '}
数据类型:分类
|字符
|字符串
|逻辑
|单
|双
|细胞
“δ”
- - - - - -线性系数阈值0
(默认)|负的标量值线性系数阈值,指定为逗号分隔对,由“δ”
和一个非负标量值。如果系数为Mdl
大小小于δ
,Mdl
将该系数设置为0
,可以从模型中剔除相应的预测因子。集δ
到更高的值以消除更多的预测因子。
δ
必须0
对于二次判别模型。
数据类型:单
|双
“DiscrimType”
- - - - - -判别类型“线性”
(默认)|“二次”
|“diaglinear”
|“diagquadratic”
|“pseudolinear”
|“pseudoquadratic”
鉴别类型,指定为逗号分隔的对,由“DiscrimType”
和此表中的字符向量或字符串标量。
价值 | 描述 | 预测协方差治疗 |
---|---|---|
“线性” |
正则化线性判别分析(LDA) |
|
“diaglinear” |
乔治。 | 所有类都有相同的对角协方差矩阵。 |
“pseudolinear” |
乔治。 | 所有的类都有相同的协方差矩阵。该软件利用伪逆求协方差矩阵。 |
“二次” |
二次判别分析(QDA) | 协方差矩阵可以在不同的类之间变化。 |
“diagquadratic” |
QDA | 协方差矩阵是对角线的,可以在类之间变化。 |
“pseudoquadratic” |
QDA | 协方差矩阵可以在不同的类之间变化。该软件利用伪逆求协方差矩阵。 |
要使用正则化,必须指定“线性”
.要指定正则化的数量,请使用γ
名称-值对的论点。
例子:“DiscrimType”、“二次”
“FillCoeffs”
- - - - - -多项式系数
房地产标志“上”
|“关闭”
多项式系数
属性标志,指定为逗号分隔的一对,由“FillCoeffs”
而且“上”
或“关闭”
.将标志设置为“上”
填充多项式系数
属性中的。这可能需要大量的计算,特别是在交叉验证时。默认值是“上”
,除非指定交叉验证名值对,在这种情况下,标志设置为“关闭”
默认情况下。
例子:“FillCoeffs”,“关闭”
“伽马”
- - - - - -的正则化在估计预测器的协方差矩阵时应用的正则化量,指定为逗号分隔的对,由“伽马”
和区间[0,1]中的一个标量值。γ
对协方差矩阵结构提供更好的控制DiscrimType
.
如果您指定0
,则软件不使用正则化来调整协方差矩阵。也就是说,该软件估计并使用不受限制的经验协方差矩阵。
对于线性判别分析,如果经验协方差矩阵是奇异的,那么软件自动应用所需的最小正则化反求协方差矩阵。您可以通过输入来显示所选的正则化量Mdl。γ
在命令行。
对于二次判别分析,如果至少有一个类的经验协方差矩阵是奇异的,那么软件就会抛出一个错误。
如果指定了区间(0,1)中的值,则必须实现线性判别分析,否则软件将抛出错误。因此,软件设置DiscrimType
来“线性”
.
如果您指定1
,则软件采用最大正则化进行协方差矩阵估计。也就是说,软件将协方差矩阵限制为对角线。您也可以设置DiscrimType
来“diagLinear”
或“diagQuadratic”
对角协方差矩阵。
例子:“伽马”,1
数据类型:单
|双
“PredictorNames”
- - - - - -预测变量的名字预测器变量名,指定为逗号分隔的一对,由“PredictorNames”
和唯一名称的字符串数组或唯一字符向量的单元格数组。的功能“PredictorNames”
这取决于你提供训练数据的方式。
如果你提供X
而且Y
,然后你可以使用“PredictorNames”
给出预测变量X
的名字。
名字的顺序PredictorNames
的列顺序必须对应X
.也就是说,PredictorNames {1}
是X (: 1)
,PredictorNames {2}
是X (:, 2)
,等等。同时,大小(X, 2)
而且元素个数(PredictorNames)
必须是相等的。
默认情况下,PredictorNames
是{x1, x2,…}
.
如果你提供资源描述
,然后你可以使用“PredictorNames”
选择在训练中使用的预测变量。也就是说,fitcdiscr
中的预测变量PredictorNames
训练中的响应变量。
PredictorNames
的子集Tbl.Properties.VariableNames
和不能包含响应变量的名称。
默认情况下,PredictorNames
包含所有预测变量的名称。
一个好的实践是使用任意一种方法指定训练的预测器“PredictorNames”
或公式
只有。
例子:PredictorNames,{‘SepalLength’,‘SepalWidth’,‘PetalLength’,‘PetalWidth}
数据类型:字符串
|细胞
“之前”
- - - - - -先验概率“经验”
(默认)|“统一”
|标量值向量|结构每个类的先验概率,指定为逗号分隔的对,由“之前”
和这个表中的一个值。
价值 | 描述 |
---|---|
“经验” |
类的先验概率是类的相对频率Y . |
“统一” |
所有类的先验概率都等于1/K,在那里K是类的数量。 |
数值向量 | 每个元素都是一个类先验概率。对元素进行排序Mdl .ClassNames 方法指定顺序一会 名称-值对的论点。该软件将元素规范化,使它们的和为1 . |
结构 | 一个结构
|
如果为两者设置值权重
而且之前
,将权重重新规格化,使其相加等于各自类中的先验概率值。
例子:“前”、“制服”
数据类型:字符
|字符串
|单
|双
|结构体
“ResponseName”
- - - - - -响应变量名“Y”
(默认)|特征向量|字符串标量响应变量名,指定为逗号分隔的对“ResponseName”
和字符向量或字符串标量。
如果你提供Y
,然后你可以使用“ResponseName”
为响应变量指定名称。
如果你提供ResponseVarName
或公式
,那么你就不能使用“ResponseName”
.
例子:“ResponseName”、“响应”
数据类型:字符
|字符串
“SaveMemory”
- - - - - -标记以保存协方差矩阵“关闭”
(默认)|“上”
标记以保存协方差矩阵,指定为逗号分隔的对,由“SaveMemory”
,要么“上”
或“关闭”
.如果您指定“上”
,然后fitcdiscr
不存储完整的协方差矩阵,而是存储足够的信息来计算矩阵。的预测
方法计算完整的协方差矩阵用于预测,并且不存储矩阵。如果您指定“关闭”
,然后fitcdiscr
计算并存储完整的协方差矩阵Mdl
.
指定SaveMemory
作为“上”
当输入矩阵包含数千个预测因子时。
例子:“SaveMemory”,“上”
“ScoreTransform”
- - - - - -分数转换“没有”
(默认)|“doublelogit”
|“invlogit”
|“ismax”
|分对数的
|函数处理|……分数转换,指定为逗号分隔的对组成“ScoreTransform”
和字符向量、字符串标量或函数句柄。
这个表总结了可用的字符向量和字符串标量。
价值 | 描述 |
---|---|
“doublelogit” |
1 / (1 +e2x) |
“invlogit” |
日志(x/ (1 -x)) |
“ismax” |
将分数最大的类的分数设置为1,并将所有其他类的分数设置为0 |
分对数的 |
1 / (1 +e- - - - - -x) |
“没有” 或“身份” |
x(转换) |
“标志” |
1x< 0 为0x= 0 1x> 0 |
“对称” |
2x- 1 |
“symmetricismax” |
将分数最大的类的分数设置为1,并将所有其他类的分数设置为-1 |
“symmetriclogit” |
2 / (1 +e- - - - - -x) - 1 |
对于MATLAB函数或您定义的函数,使用它的函数句柄进行分数变换。函数句柄必须接受一个矩阵(原始分数)并返回一个相同大小的矩阵(转换后的分数)。
例子:“ScoreTransform”、“分对数的
数据类型:字符
|字符串
|function_handle
“重量”
- - - - - -观察权重资源描述
“CVPartition”
- - - - - -交叉验证分区[]
(默认)|cvpartition
分区对象交叉验证分区,指定为逗号分隔的对,由“CVPartition”
和一个cvpartition
创建的分区对象cvpartition
.分区对象指定交叉验证的类型以及训练集和验证集的索引。
要创建交叉验证的模型,你只能使用以下四个名称-值对参数中的一个:CVPartition
,坚持
,KFold
,或Leaveout
.
例子:假设您创建一个随机分区,对500个观察结果进行5次交叉验证本量利= cvpartition(500年,“KFold”,5)
.然后,您可以使用指定交叉验证的模型“CVPartition”,本量利
.
“坚持”
- - - - - -保留验证的部分数据用于抵制验证的数据的一部分,指定为逗号分隔的对,由“坚持”
和(0,1)范围内的标量值。如果您指定‘坚持’,p
,然后软件完成以下步骤:
随机选择和保留p * 100
%的数据作为验证数据,并使用其余的数据训练模型。
存储紧凑的,训练过的模型训练有素的
属性的交叉验证模型。
要创建交叉验证的模型,你只能使用以下四个名称-值对参数中的一个:CVPartition
,坚持
,KFold
,或Leaveout
.
例子:“坚持”,0.1
数据类型:双
|单
“KFold”
- - - - - -数量的折叠10
(默认)|大于1的正整数交叉验证模型中使用的折叠数,指定为逗号分隔的对,由“KFold”
和一个大于1的正整数。如果您指定KFold, k
,然后软件完成以下步骤:
将数据随机划分为k
集。
对于每个集合,保留该集合作为验证数据,并使用另一个集合训练模型k
- 1集。
存储k
训练有素的小型模型k
中的-by-1单元格向量训练有素的
属性的交叉验证模型。
要创建交叉验证的模型,你只能使用以下四个名称-值对参数中的一个:CVPartition
,坚持
,KFold
,或Leaveout
.
例子:“KFold”,5
数据类型:单
|双
“Leaveout”
- - - - - -分析交叉验证标志“关闭”
(默认)|“上”
省略一个交叉验证标志,指定为逗号分隔的对,由“Leaveout”
而且“上”
或“关闭”
.如果您指定“Leaveout”,“上”
,那么,对于每一个n观察(n不包括遗漏观测的观测数是否在NumObservations
属性),软件完成以下步骤:
保留观测数据作为验证数据,并使用其他数据训练模型n- 1的观察。
存储n紧凑,训练有素的模型在牢房里n中的-by-1单元格向量训练有素的
属性的交叉验证模型。
要创建交叉验证的模型,你只能使用以下四个名称-值对参数中的一个:CVPartition
,坚持
,KFold
,或Leaveout
.
例子:“Leaveout”,“上”
“OptimizeHyperparameters”
- - - - - -参数优化“没有”
(默认)|“汽车”
|“所有”
|合格参数名称的字符串数组或单元格数组|向量的optimizableVariable
对象参数要优化,指定为逗号分隔的对,由“OptimizeHyperparameters”
和以下其中之一:
“没有”
-不要优化。
“汽车”
——使用{“三角洲”,“伽马”}
.
“所有”
—优化所有符合条件的参数。
合格参数名称的字符串数组或单元格数组。
向量的optimizableVariable
的输出hyperparameters
.
优化尝试最小化交叉验证的损失(错误)fitcdiscr
通过改变参数。有关交叉验证丢失的信息(尽管是在不同的上下文中),请参见分类损失.要控制交叉验证类型和优化的其他方面,请使用HyperparameterOptimizationOptions
名称-值对。
“OptimizeHyperparameters”
值覆盖使用其他名称-值对参数设置的任何值。例如,设置“OptimizeHyperparameters”
来“汽车”
导致“汽车”
值应用。
符合条件的参数fitcdiscr
是:
δ
- - - - - -fitcdiscr
在正数值之间搜索,默认情况下按对数缩放范围(1 e-6, 1 e3)
.
DiscrimType
- - - - - -fitcdiscr
搜索中“线性”
,“二次”
,“diagLinear”
,“diagQuadratic”
,“pseudoLinear”
,“pseudoQuadratic”
.
γ
- - - - - -fitcdiscr
在范围内的实值之间进行搜索[0, 1]
.
通过传递vector来设置非默认参数optimizableVariable
具有非默认值的对象。例如,
负载fisheririsparams = hyperparameters (“fitcdiscr”量,物种);参数(1)。范围=(1的军医,1 e6);
通过参数个数
的价值OptimizeHyperparameters
.
默认情况下,迭代显示出现在命令行中,并根据优化中的超参数的数量显示图形。对于优化和绘图,目标函数为Log(1 +交叉验证损失)回归和分类的误分类率。要控制迭代显示,请设置详细的
场的“HyperparameterOptimizationOptions”
名称-值对的论点。要控制情节,设置ShowPlots
场的“HyperparameterOptimizationOptions”
名称-值对的论点。
示例请参见优化判别分析模型.
例子:“汽车”
“HyperparameterOptimizationOptions”
- - - - - -选择优化选项,指定为逗号分隔的对,由“HyperparameterOptimizationOptions”
和结构。的效果OptimizeHyperparameters
名称-值对的论点。结构中的所有字段都是可选的。
字段名 | 值 | 默认的 |
---|---|---|
优化器 |
|
“bayesopt” |
AcquisitionFunctionName |
获取函数,其名称包括 |
“expected-improvement-per-second-plus” |
MaxObjectiveEvaluations |
目标函数评价的最大次数。 | 30. 为“bayesopt” 或“randomsearch” ,和整个网格“gridsearch” |
MaxTime |
时间限制,指定为正实数。时间限制以秒为单位,用 |
正 |
NumGridDivisions |
为“gridsearch” ,表示每个维度的值的个数。该值可以是一个给出每个维度值数量的正整数向量,也可以是一个适用于所有维度的标量。对于类别变量,该字段将被忽略。 |
10 |
ShowPlots |
指示是否显示图形的逻辑值。如果真正的 ,该字段根据迭代次数绘制最佳目标函数值。如果有一个或两个优化参数,如果优化器 是“bayesopt” ,然后ShowPlots 并根据参数绘制了目标函数模型。 |
真正的 |
SaveIntermediateResults |
指示何时是否保存结果的逻辑值优化器 是“bayesopt” .如果真正的 ,该字段将覆盖名为“BayesoptResults” 在每一个迭代。变量是aBayesianOptimization 对象。 |
假 |
详细的 |
显示到命令行。
详细信息请参见 |
1 |
UseParallel |
指示是否并行运行贝叶斯优化的逻辑值,这需要并行计算工具箱™。由于并行时序的不可再现性,并行贝叶斯优化不一定产生可再现的结果。有关详细信息,请参见平行的贝叶斯优化. | 假 |
重新分区 |
指示是否在每次迭代时重新划分交叉验证的逻辑值。如果
|
假 |
使用以下三个字段名称中的一个。 | ||
CVPartition |
一个cvpartition 对象,如由cvpartition . |
“Kfold”,5 如果不指定任何交叉验证字段 |
坚持 |
范围内的标量(0,1) 表示抵制分数。 |
|
Kfold |
大于1的整数。 |
例子:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)
数据类型:结构体
Mdl
-训练的判别分析分类模型ClassificationDiscriminant
模型对象|ClassificationPartitionedModel
旨在模型对象训练的判别分析分类模型,返回为ClassificationDiscriminant
模型对象或ClassificationPartitionedModel
旨在模型对象。
如果设置任何名称-值对参数KFold
,坚持
,CrossVal
,或CVPartition
,然后Mdl
是一个ClassificationPartitionedModel
旨在模型对象。否则,Mdl
是一个ClassificationDiscriminant
模型对象。
的属性来引用Mdl
,使用点表示法。例如,要在“命令窗口”中显示估计的组件平均值,请输入Mdl。μ
.
判别分析模型为:
每个类(Y
)生成数据(X
)使用多元正态分布。也就是说,模型是这样假设的X
具有高斯混合分布(gmdistribution
).
对于线性判别分析,每一类模型的协方差矩阵相同,只是均值不同。
对于二次判别分析,每一类的均值和协方差都是不同的。
预测
分类以使预期分类成本最小化:
在哪里
有关详细信息,请参见使用判别分析模型进行预测.
在训练一个模型之后,您可以生成预测新数据标签的C/ c++代码。生成C/ c++代码需要MATLAB编码器™.有关详细信息,请参见代码生成简介.
使用注意事项和限制:
万博1manbetx支持的语法是:
Mdl = fitcdiscr(资源描述,Y)
Mdl = fitcdiscr (X, Y)
Mdl = fitcdiscr(___、名称、值)
(Mdl FitInfo HyperparameterOptimizationResults] = fitcdiscr(___、名称、值)
- - - - - -fitcdiscr
返回附加的输出参数FitInfo
而且HyperparameterOptimizationResults
当您指定“OptimizeHyperparameters”
名称-值对的论点。
的FitInfo
输出参数是一个空的结构数组,目前为将来可能使用保留。
的HyperparameterOptimizationResults
输出参数是BayesianOptimization
对象或带有描述超参数交叉验证优化的关联值的超参数表。
“HyperparameterOptimizationResults”
非空时“OptimizeHyperparameters”
在创建模型时,名称-值对参数是非空的。中的值“HyperparameterOptimizationResults”
的值“HyperparameterOptimizationOptions”
创建模型时的名称-值对参数。
如果您指定“bayesopt”
(默认)HyperparameterOptimizationResults
是阶级的对象吗BayesianOptimization
.
如果您指定“gridsearch”
或“randomsearch”
,然后HyperparameterOptimizationResults
是所使用的超参数、观测目标函数值(交叉验证损失)和观测值从最低(最佳)到最高(最差)的排序的表。
万博1manbetx受支持的名-值对参数及其区别是:
“类名”
“成本”
“DiscrimType”
“HyperparameterOptimizationOptions”
-对于交叉验证,只支持tall优化万博1manbetx“坚持”
验证。例如,您可以指定fitcdiscr (X, Y,‘OptimizeHyperparameters’,‘汽车’,‘HyperparameterOptimizationOptions’,结构(“抵抗”,0.2))
.
“OptimizeHyperparameters”
-唯一适合优化的参数是“DiscrimType”
.指定“汽车”
使用“DiscrimType”
.
“PredictorNames”
“之前”
“ResponseName”
“ScoreTransform”
“重量”
对于高数组和高表,fitcdiscr
返回一个CompactClassificationDiscriminant
对象,该对象包含与类相同的大部分属性ClassificationDiscriminant
对象。主要的区别是紧凑对象对内存需求非常敏感。紧凑对象不包含包含数据或包含与数据大小相同的数组的属性。紧凑对象不包含这些ClassificationDiscriminant
属性:
ModelParameters
NumObservations
HyperparameterOptimizationResults
RowsUsed
XCentered
W
X
Y
此外,compact对象不支持这些万博1manbetxClassificationDiscriminant
方法:
紧凑的
crossval
cvshrink
resubEdge
resubLoss
resubMargin
resubPredict
有关更多信息,请参见高大的数组(MATLAB)。
若要并行运行,请设置“UseParallel”
选项真正的
.
要执行并行超参数优化,请使用“HyperparameterOptions”、结构(UseParallel,真的)
此函数调用中的名称-值对参数。
有关并行超参数优化的更多信息,请参见平行的贝叶斯优化.
有关并行计算的更多一般信息,请参见运行MATLAB函数与自动并行支持万博1manbetx(并行计算工具箱)。
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。