拟合判别分析分类器
返回一个基于表中包含的输入变量(也称为预测器、特征或属性)的拟合判别分析模型MDL.
= fitcdiscr(TBL.
那responsevarname.
)TBL.
和输出(响应或标签)包含在内responsevarname.
.
装载Fisher的Iris数据集。
加载渔民
使用整个数据集训练判别分析模型。
MDL = fitcdiscr(MEAS,物种)
MDL = ClassificationDiscriminant ResponseName: 'Y' CategoricalPredictors:[]类名:{ 'setosa' '云芝' '锦葵'} ScoreTransform: '无' NumObservations:150 DiscrimType: '线性' 穆:[3x4的双] Coeffs:[3×3结构]属性,方法
MDL.
是一个ClassificationDiscriminant
模型。要访问其属性,请使用点表示法。例如,显示每个预测器的组手段。
Mdl.Mu
ans =.3×4.5.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的虹膜数据。
加载数据。
加载渔民
找到通过使用自动封路计优化来最小化五倍交叉验证损耗的高参数。
为了再现性,设置随机种子并使用“预期改善加成”
采集功能。
rng(1) Mdl = fitcdiscr(meas,species,'OptimizeHyperparameters'那'汽车'那...“HyperparameterOptimizationOptions”那...struct('获取功能名称'那“预期改善加成”)))
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFarδ|γ| | | | |结果运行时| | | (estim(观察) .) | | | |=====================================================================================================| | 1 |最好| 0.66667 | 0.55533 | 0.66667 | 0.66667 | 13.261 | 0.25218 | | 2 |最好| 0.02 | 0.16727 | 0.02 | 0.064227 | 2.7404 e-05 | 0.073264 | | 3 |接受| 0.04 | 0.11506 | 0.02 | 0.020084 | 3.2455 e-06 | 0.46974 | | 4 |接受| 0.66667 | 0.18438 | 0.02 | 0.020118 | 14.879 | 0.98622 | | 5 |接受| 0.046667 | 0.32438 | 0.02 | 0.019907 | 0.00031449 |0.97362 | | 6 |接受| 0.04 | 0.12075 | 0.02 | 0.028438 | 4.5092 e-05 | 0.43616 | | | 7日接受| 0.046667 | 0.29976 | 0.02 | 0.031424 | 2.0973 e-05 | 0.9942 | | 8 |接受| 0.02 | 0.1413 | 0.02 | 0.022424 | 1.0554 e-06 | 0.0024286 | | | 9日接受| 0.02 | 0.093792 | 0.02 | 0.021105 | 1.1232 e-06 | 0.00014039 | | |接受10 | 0.02 | 0.11764 | 0.02 |0.020948 | 0.00011837 | 0.0032994 | | | 11日接受| 0.02 | 0.093061 | 0.02 | 0.020172 | 1.0292 e-06 | 0.027725 | | | 12日接受| 0.02 | 0.14814 | 0.02 | 0.020105 | 9.7792 e-05 | 0.0022817 | | | 13日接受| 0.02 | 0.093105 | 0.02 | 0.020038 | 0.00036014 | 0.0015136 | | | 14日接受| 0.02 | 0.11795 | 0.02 | 0.019597 | 0.00021059 | 0.0044789 | | 15 |接受| 0.02 | 0.12956 | 0.02 | 0.019461 | 1.1911 e-05 | 0.0010135 | | | 16日接受| 0.02 | 0.12873 | 0.02 | 0.01993 | 0.0017896 | 0.00071115 | | | 17日接受| 0.02 | 0.14435 | 0.02 | 0.019551 | 0.00073745 | 0.0066899 | | | 18日接受| 0.02 | 0.10022 | 0.02 | 0.019776 | 0.00079304 | 0.00011509 | | | 19日接受| 0.02 | 0.13593 | 0.02 | 0.019678 |0.007292 | 0.0007911 | | 20 |接受| 0.046667 | 0.13776 | 0.02 | 0.019785 | 0.0074408 | 0.99945 | |=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar |δ|γ| | |结果| | |运行时(观察)| (estim) | | ||=====================================================================================================| | 21日|接受| 0.02 | 0.095239 | 0.02 | 0.019043 | 0.0036004 | 0.0024547 | | | 22日接受| 0.02 | 0.09429 | 0.02 | 0.019755 | 2.5238 e-05 | 0.0015542 | | | 23日接受| 0.02 | 0.20405 | 0.02 | 0.0191 | 1.5478 e-05 | 0.0026899 | | | 24日接受| 0.02|0.。21602 | 0.02 | 0.019081 | 0.0040557 | 0.00046815 | | 25 | Accept | 0.02 | 0.12796 | 0.02 | 0.019333 | 2.959e-05 | 0.0011358 | | 26 | Accept | 0.02 | 0.15358 | 0.02 | 0.019369 | 2.3111e-06 | 0.0029205 | | 27 | Accept | 0.02 | 0.15441 | 0.02 | 0.019455 | 3.8898e-05 | 0.0011665 | | 28 | Accept | 0.02 | 0.12762 | 0.02 | 0.019449 | 0.0035925 | 0.0020278 | | 29 | Accept | 0.66667 | 0.37787 | 0.02 | 0.019479 | 998.93 | 0.064276 | | 30 | Accept | 0.02 | 0.25714 | 0.02 | 0.01947 | 8.1557e-06 | 0.0008004 |
__________________________________________________________ 优化完成。maxobjective达到30个。总功能评价:30总的经过时间:55.176秒总目标函数评估时间:5.1566最佳观察到的可行点:德尔塔伽玛__________ ________ 2.7404e-05 0.073264观测目标函数值= 0.02。估价目标函数值= 0.022693函数求时间= 0.16727最佳(根据型号)估计可行点:德尔塔伽玛__________ _________ 2.5238e-05 0.0015542估计目标函数值= 0.01947估计函数评估时间= 0.14522
mdl = classificationd discriminant racatectename:'y'pationoricalpricictors:[] classnames:{'setosa''versicolor''virginica'} scoreTransform:'none'numobservations:150 hyperameteroptimationresults:[1x1 bayesianoptimization] strictimype:'linear'mu:[3x4 double]COEFFS:[3x3结构]属性,方法
适用于默认的5倍交叉验证达到约2%的损失。
此示例示出了如何自动使用高阵列优化判别分析模型的超参数。样本数据集Airlinesmall.csv.
是一个大型数据集,其中包含航空公司航班数据的表格文件。这个示例创建了一个包含数据的高表,并使用它来运行优化过程。
当您在高大的阵列进行计算,MATLAB®使用使用并行池(默认情况下,如果您有并行计算工具箱™)或本地MATLAB会话。如果你想使用时,你有并行计算工具箱本地MATLAB会话运行示例,您可以通过使用改变全球执行环境mapreduce
函数。
创建数据存储引用的数据的文件夹位置。选择变量的一个子集一起工作,和治疗'na'
值丢失的数据,以便数据存储
取代他们南
价值观。创建一个包含数据存储中的数据的高表。
ds =数据存储(“airlinesmall.csv”);ds.selectedvariablenames = {'月'那“DayofMonth”那“星期几”那...'deptime'那“延迟”那'距离'那'depdelay'};ds.TreatAsMissing ='na';TT =高(DS)%高表
使用“本地”配置文件启动并行池(Parpool)连接到并行池(工人数:6)。TT = M×7高大表月DAYOFMONTH DAYOFWEEK DepTime ArrDelay距离DepDelay _____ __________ _________ _______ ________ ________ ________ 10 21 3 642 8 308 12 10 26 1 1021 8 296 1 10 23 5 2055 21 480 20 10 23 5 1332 13 296 12 1022 4 629 4 373 10 -1 28 3 1446 59 308 63 10 8 4 928 3 447 10 -2 10 6 859 11 954 -1::::::::::::::
确定通过定义一个逻辑变量,一个迟到的飞行是真的迟到了10分钟以上的航班。此变量包含类的标签。这个变量的预览包括前几行。
Y = tt。DepDelay > 10%类标签
Y = M×1 tall logical array 1 0 1 1 0 1 0 0::
为预测器数据创建高阵列。
X=tt{,1:end-1}%的预测数据
X = M×6高,双矩阵10 21 3 642 8 308 10 2 23 5 2055 2 23 10 23 5 133213 23 10 23 5 13329 4 3230 23 5 1329 4 3231 10 23 3 1446 59 3030 8 4 928 3 44710 10 10 6 859 11 954 ::::::::::::::::::::::::::::::::::::::::::
删除行中X
和y
包含缺失数据。
r = rmmissing([x y]);%删除缺失条目的数据x = r(:,1:结束-1);Y = R(:,结束);
标准化预测变量。
Z = zscore (X);
方法自动优化超参数'OptimizeHyperparameters'
名称-值对的论点。找到最佳“DiscrimType”
最大限度地减少拒绝交叉验证损失的值。(指定'汽车'
使用“DiscrimType”
.)为了再现性,请使用“预期改善加成”
获取函数,并使用RNG.
和tallrng
.结果可以根据工人数量和高大阵列的执行环境而有所不同。有关详细信息,请参见控制代码运行的位置.
rng ('默认') tallrng ('默认')[mdl,fitinfo,hyperparameteroptimationresults] = fitcdiscr(z,y,...'OptimizeHyperparameters'那'汽车'那...“HyperparameterOptimizationOptions”,struct(“坚持”,0.3,...'获取功能名称'那“预期改善加成”)))
using the Parallel Pool 'local': - Pass 1 of 2:在5.7 sec内完成- Pass 2 of 2:在4.3 sec内完成在2.5秒完成评估在2.8秒完成 |======================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | DiscrimType | | |结果| | |运行时(观察)| (estim) | ||======================================================================================| | 最好1 | | 0.11354 | 25.315 | 0.11354 | 0.11354 |二次|
使用并行池“本地”评估高表达: - 通过1:在1.5秒评估中完成的1.5秒评估,使用并行池“本地”评估高表达式: - 通过1:1:在1.4秒评估中完成的1/1:完成1.6秒|2 |接受|0.11354 |7.9367 |0.11354 |0.11354 |Pseudoquadra |
评估使用并行池“本地”高表达: - 的1遍1:在0.87秒评价完成在2秒完成评估使用并行池“本地”高表达: - 的1遍1:在0.78秒评价完成在完成0.91秒|3 |接受|0.12869 |6.5057 |0.11354 |0.11859 |拟线性|
评估使用并行池“本地”高表达: - 的1遍1:在0.9秒评价完成在1.7秒完成评估使用并行池“本地”高表达: - 的1遍1:在1.3秒评价完成在完成1.4秒|4 |接受|0.12745 |6.4167 |0.11354 |0.1208 |diagLinear |
使用并行池“本地”评估高表达: - 通过1:0.85秒的评估中已完成,在1.7秒的评估中完成使用并行池“本地”评估高表达: - PASS 1,共1分:在0.8秒评估中完成0.93秒|5 |接受|0.12869 |6.1236 |0.11354 |0.12238 |线性|
使用并行池“本地”评估高表达: - 通过1:在0.85秒的评估中完成,在1.5秒评估高度表达式中,使用并行池“本地”评估: - PASS 1为1:0.75秒评估完成0.9秒|6 |最好的0.11301 |5.4147 |0.11301 |0.12082 |diagquadrati |
使用并行池“本地”评估高表达: - 通过1/1:在0.82秒的评估中完成,在1.5秒评估高度表达式中,使用并行池“本地”评估: - PASS 1为1:在0.77秒内完成的评估0.89秒|7 |接受|0.11301 |5.297 |0.11301 |0.11301 |diagquadrati |
使用并行池“本地”评估tall表达式:-通过1/1:在0.84秒内完成评估在1.5秒内完成使用并行池“本地”评估tall表达式:-通过1/1:在0.8秒内完成评估在0.93秒内完成| 8 |接受| 0.11301 | 5.6152 | 0.11301 | 0.11301 | Diagquarti|
使用并行池“本地”评估高表达: - 通过1:1:在1.3秒评估中完成,在2.1秒的评估中完成使用并行池“本地”评估高表达式: - PASS 1为1:在0.75秒的评估中完成0.88秒|9 |接受|0.11301 |5.9147 |0.11301 |0.11301 |diagquadrati |
评估高表达式使用并行池“当地”:通过1对1:在0.88秒完成评估在1.6秒完成评估高表达式使用并行池“当地”:通过1对1:在1.3秒完成评估完成1.4秒| 10 |接受| 0.11301 | 6.0504 | 0.11301 | 0.11301 | diagQuadrati |
评估高表达式使用并行池“当地”:通过1对1:在0.82秒完成评估在1.5秒完成评估高表达式使用并行池“当地”:通过1对1:在1.3秒完成评估完成1.4秒| | 11日接受| 0.11301 | 5.9595 | 0.11301 | 0.11301 | diagQuadrati |
评估使用并行池“本地”高表达: - 的1遍1:在0.86秒评价完成在1.6秒完成评估使用并行池“本地”高表达: - 的1遍1:在0.76秒评价完成在完成0.91秒|12 |接受|0.11301 |5.4266 |0.11301 |0.11301 |diagquadrati |
使用并行池“本地”评估高表达: - 通过1:在0.88秒的评估中完成,在1.6秒的评估中完成使用并行池“本地”评估高表达式: - PASS 1为1:在0.75秒的评估中完成0.87秒|13 |接受|0.11301 |5.3869 |0.11301 |0.11301 |diagquadrati |
使用并行池“本地”评估高表达: - 通过1:在0.83秒的评估中完成,在1.5秒的评估中完成,使用并行池“本地”评估高表达式: - PASS 1:在0.8秒评估中完成的第1条:完成0.97秒|14 |接受|0.11301 |5.4876 |0.11301 |0.11301 |diagquadrati |
评估高表达式使用并行池“当地”:通过1对1:在0.85秒完成评估在1.5秒完成评估高表达式使用并行池“当地”:通过1对1:在0.73秒完成评估在0.85秒完成15 | |接受| 0.11301 | 5.4052 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池“本地”评估tall表达式:-通过1/1:在0.87秒内完成评估在1.5秒内完成使用并行池“本地”评估tall表达式:-通过1/1:在0.78秒内完成评估在0.9秒内完成| 16 |接受| 0.11301 | 5.4434 | 0.11301 | 0.11301 | Diagquarti|
评估高表达式使用并行池“当地”:通过1对1:在0.89秒完成评估在1.6秒完成评估高表达式使用并行池“当地”:通过1对1:在0.8秒完成评估在0.93秒完成17 | |接受| 0.11301 | 5.5804 | 0.11301 | 0.11301 | diagQuadrati |
评估使用并行池“本地”高表达: - 的1遍1:在0.94秒评价完成在1.6秒完成评估使用并行池“本地”高表达: - 的1遍1:在0.79秒评价完成在完成0.92秒|18 |接受|0.11354 |5.616 |0.11301 |0.11301 |Pseudoquadra |
评估高表达式使用并行池“当地”:通过1对1:在0.85秒完成评估在1.5秒完成评估高表达式使用并行池“当地”:通过1对1:在0.76秒完成评估完成0.88秒19 | |接受| 0.11301 | 5.4031 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池“本地”评估高表达: - PASS 1:0.76秒的评估中完成的1.4秒评估使用并行池“本地”评估高表达式: - PASS 1为1:在0.75秒的评估中完成0.88秒|20 |接受|0.11301 |5.1974 |0.11301 |0.11301 |diagquadrati |
使用并行池“本地”评估高表达: - 通过1:在0.77秒的评估中完成的1.4秒评估,使用并行池“本地”评估高表达式: - PASS 1为1:在0.75秒的评估中完成0.87秒| ======================================================================================|磨练|eval |目标|目标|Bestsofar |Bestsofar |SCOLIMTYPE | | | result | | runtime | (observed) | (estim.) | | |======================================================================================| | 21 | Accept | 0.11301 | 5.1418 | 0.11301 | 0.11301 | diagQuadrati |
评估高表达式使用并行池“当地”:通过1对1:在1.3秒完成评估在2秒完成评估高表达式使用并行池“当地”:通过1对1:在0.73秒完成评估完成0.86秒| | 22日接受| 0.11301 | 5.9864 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池“本地”评估高表达: - 通过1:在0.88秒的评估中完成的1.6秒评估,使用并行池“本地”评估高表达式: - PASS 1在0.78秒的评估中完成0.91秒|23 |接受|0.11354 |5.5656 |0.11301 |0.11301 |二次|
使用并行池“本地”评估tall表达式:-通过1/1:在0.82秒内完成评估在1.5秒内完成使用并行池“本地”评估tall表达式:-通过1/1:在0.77秒内完成评估在0.9秒内完成| 24 |接受| 0.11354 | 5.3012 | 0.11301 | 0.11301 |伪四边形|
评估高表达式使用并行池“当地”:通过1对1:在1.4秒完成评估在2.1秒完成评估高表达式使用并行池“当地”:通过1对1:在0.77秒完成评估在0.9秒完成25 | |接受| 0.11301 | 6.2276 | 0.11301 | 0.11301 | diagQuadrati |
评估使用并行池“本地”高表达: - 的1遍1:在0.86秒评价完成在1.6秒完成评估使用并行池“本地”高表达: - 的1遍1:在0.77秒评价完成在完成0.89秒|26 |接受|0.11301 |5.5308 |0.11301 |0.11301 |diagquadrati |
使用并行池“本地”评估高表达: - 通过1:0.92秒的评估中完成的1.6秒评估,使用并行池“本地”评估高表达式: - PASS 1为1:在0.88秒的评估中完成1秒|27 |接受|0.11301 |5.7396 |0.11301 |0.11301 |diagquadrati |
评估高表达式使用并行池“当地”:通过1对1:在0.83秒完成评估在1.5秒完成评估高表达式使用并行池“当地”:通过1对1:在0.78秒完成评估完成0.9秒| | 28日接受| 0.11354 | 5.4403 | 0.11301 | 0.11301 |二次|
评估高表达式使用并行池“当地”:通过1对1:在0.86秒完成评估在1.5秒完成评估高表达式使用并行池“当地”:通过1对1:在0.81秒完成评估完成0.93秒| | 29日接受| 0.11301 | 5.3572 | 0.11301 | 0.11301 | diagQuadrati |
使用并行池“本地”评估tall表达式:-通过1/1:在0.89秒内完成评估在1.6秒内完成使用并行池“本地”评估tall表达式:-通过1/1:在0.74秒内完成评估在0.85秒内完成| 30 |接受| 0.11354 | 5.2718 | 0.11301 | 0.11301 |二次|
__________________________________________________________ 优化完成。maxobjective达到30个。总函数计算:30总运行时间:229.5689秒。总目标函数评价时间:191.058最佳观测可行点:DiscrimType _____________ diag二次观测目标函数值= 0.11301估计目标函数值= 0.11301函数评价时间= 5.4147最佳估计可行点(根据模型):DiscrimType _____________ diag二次估计目标函数值= 0.11301估计函数评估时间= 5.784使用Parallel Pool 'local'评估tall表达式:- Pass 1 of 1: Completed in 0.76 sec评估在1.4秒内完成
Mdl = CompactClassificationDiscriminant PredictorNames: {'x1' 'x2' 'x3' 'x4' 'x5' 'x6'} ResponseName: 'Y' CategoricalPredictors: [] ClassNames: [0 1] ScoreTransform: 'none' DiscrimType: ' diag二次' Mu: [2×6 double] Coeffs: [2×2 struct]属性,方法
FitInfo =结构没有字段。
HyperParameterOptimizationResults =具有属性的贝叶斯optimization:ObjectFCN:@ CreateBjfcn / Tallobjfcn Variabledions:[1×1 oldizablevariable]选项:[1×1结构] minobjective:0.1130 Xatminobjective:[1×1表] minestimatedobive:0.1130 XATMineStimateGiple:[1×1表]numObjectiveEvaLuations:30总计迭代图中:[30×1双] errortrace:[30×1双]可行性议事:[30×1逻辑]可行性推动力:[30×1双]索引:[30×1双] objectivemimumimumImimumImimumimumimumImimumImimumimumImimumImimumimumImimumimumImumImimumImimumImimumImimumimumImimumImimumImimumImimumimumInum:[30×1双]
TBL.
-样本数据用于训练模型的样本数据,以表格形式指定。每行TBL.
对应于一个观察,并且每列对应于一个预测变量。可选地,TBL.
可以为响应变量包含一个额外的列。除了字符向量的单元格数组之外,不允许使用多列变量和单元格数组。
如果TBL.
包含响应变量,并且您希望使用所有剩余的变量TBL.
作为预测器,然后使用responsevarname.
.
如果TBL.
包含响应变量,并且您只希望使用中剩余变量的子集TBL.
作为预测器,然后通过使用指定公式公式
.
如果TBL.
不包含响应变量,然后通过使用指定响应变量y
.响应变量的长度和输入的行数TBL.
必须是平等的。
数据类型:桌子
responsevarname.
-响应变量名称TBL.
中的响应变量名,指定为变量名TBL.
.
您必须指定responsevarname.
作为字符矢量或字符串标量。例如,如果响应变量y
存储为资源描述。y
,则指定为'Y'
.否则,该软件将处理所有列TBL.
包括…在内y
,作为训练模型时的预测器。
响应变量必须是明确的,字符或字符串数组;逻辑或数字向量;或者字符向量的单元格数组。如果y
是一个字符数组,那么响应变量的每个元素都必须对应于数组的一行。
良好做法是使用使用的指定类的顺序Classnames.
名称值参数。
数据类型:烧焦
|字符串
公式
-反应变量和预测变量子集的解释模型响应变量和预测变量子集的解释模型,指定为以下形式的字符向量或字符串标量'Y〜X1 + X2 + X3'
.在这种形式,y
表示响应变量,和x1
那x2
, 和x3
代表预测变量。
指定变量的子集TBL.
作为培训模型的预测器,使用公式。如果指定公式,则软件不使用任何变量TBL.
没有出现在公式
.
公式中的变量名必须是其中的两个变量名TBL.
(Tbl.Properties.VariableNames
)和有效的matlab®标识符。您可以验证变量名TBL.
通过使用isvarname.
函数。如果变量名无效,则可以使用matlab.lang.makeValidName
函数。
数据类型:烧焦
|字符串
y
-类标签类标签,指定为分类,字符或字符串数组,逻辑或数字载体,或字符向量的单元阵列。每一排y
的对应行的分类X
.
软件考虑南
那“”
(空字符向量),""
(空字符串),<缺失>
, 和<未定义>
值y
缺少值。因此,该软件不会使用缺失响应的观测训练。
数据类型:分类
|烧焦
|字符串
|逻辑
|单
|双重的
|细胞
X
-预测数据预测值值,指定为数字矩阵。每列X
表示一个变量,每行代表一个观察。
fitcdiscr
考虑南
值X
作为缺失的值。fitcdiscr
不使用为X
的健康。
数据类型:单
|双重的
指定可选的逗号分隔的对名称,价值
论点。的名字
是参数名称和价值
是相应的价值。的名字
必须出现引号内。您可以按照任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen
.
'isstrimtype','二次','savememory','开'
指定二次判别分类器,并不在输出对象中存储协方差矩阵。
请注意
的参数不能同时使用任何交叉验证的名称-值对参数'OptimizeHyperparameters'
名称-值对的论点。您可以修改交叉验证'OptimizeHyperparameters'
只有使用“HyperparameterOptimizationOptions”
名称-值对的论点。
'classnames'
-用于培训的类名用于训练的类名,指定为分类数组、字符数组或字符串数组;逻辑或数字向量;或者字符向量的单元格数组。Classnames.
必须具有与响应变量相同的数据类型TBL.
或者y
.
如果Classnames.
是字符数组,则每个元素必须与数组的一行相对应。
用Classnames.
到:
训练过程中,指定类别的顺序。
指定与类顺序相对应的任何输入或输出参数维的顺序。例如,使用Classnames.
指定尺寸的顺序成本
或返回的分类分数的列顺序预测
.
选择用于培训的类的子集。例如,假设集合中所有不同的类名y
是{' a ', ' b ', ' c '}
.使用课堂观察来训练模型“一个”
和“c”
只是,指定“类名”,{' a ', ' c '}
.
默认值Classnames.
是响应变量中的所有不同类名的集合TBL.
或者y
.
例子:'classnames',{'b','g'}
数据类型:分类
|烧焦
|字符串
|逻辑
|单
|双重的
|细胞
“成本”
-成本的错误分类一个点的错误分类代价,指定为逗号分隔对组成“成本”
和以下之一:
方阵,成本(i,j)
将一个点分类的成本是多少j
如果它的真实课程是一世
(即,行对应于真类和列对应于所预测的类)。要为相应的行和列指定类订单成本
,另外指定Classnames.
名称-值对的论点。
结构S.
有两个领域:S.ClassNames
含有的组名称作为作为相同类型的变量y
, 和S.Classificycosts.
含有成本矩阵。
默认值是成本(i,j)= 1
如果我~ = j
, 和成本(i,j)= 0
如果我=我
.
数据类型:单
|双重的
|结构体
“δ”
-线性系数阈值0.
(默认)|非负标量值线性系数阈值,指定为逗号分隔对组成“δ”
和一个非负标量值。如果一个系数MDL.
有幅度小于三角洲
那MDL.
设此系数为0.
,您可以从模型中消除相应的预测器。放三角洲
设置为更高的值以消除更多的预测值。
三角洲
必须是0.
二次判别模型。
数据类型:单
|双重的
“DiscrimType”
-判别式'线性'
(默认)|'二次'
|“diaglinear”
|“diagquadratic”
|“pseudolinear”
|“pseudoquadratic”
判别式,指定为逗号分隔的一对组成的“DiscrimType”
并且在该表中的字符向量或标量的字符串。
价值 | 描述 | 预测协方差治疗 |
---|---|---|
'线性' |
正则线性判别分析(LDA) |
|
“diaglinear” |
LDA | 所有类都有相同的对角协方差矩阵。 |
“pseudolinear” |
LDA | 所有类有相同的协方差矩阵。该软件使用伪逆反转协方差矩阵。 |
'二次' |
二次判别分析(QDA) | 协方差矩阵可以在课堂之间变化。 |
“diagquadratic” |
QDA | 协方差矩阵是对角矩阵,在不同类别中可能有所不同。 |
“pseudoquadratic” |
QDA | 协方差矩阵可以在课堂之间变化。该软件使用伪逆反转协方差矩阵。 |
请注意
要使用正则,你必须指定'线性'
.要指定正规化的量,使用伽玛
名称-值对的论点。
例子:“判别型”、“二次型”
“FillCoeffs”
-多项式系数
物业旗帜'在'
|'离开'
多项式系数
属性标志,指定为逗号分隔对,由“FillCoeffs”
和'在'
或者'离开'
.将标志设置为'在'
填充这一点多项式系数
属性。这可能需要大量计算,尤其是在交叉验证时。默认值为'在'
中,除非指定了交叉验证名称 - 值对,在这种情况下该标志被设置为'离开'
默认情况下。
例子:“fillcoefs”,“off”
'伽玛'
-正规化的金额估计预测值的协方差矩阵时应用的正则化量,指定为逗号分隔对,包括'伽玛'
以及区间[0,1]内的标量值。伽玛
提供比协方差矩阵结构更精细的控制鉴定
.
如果您指定0.
,然后软件不使用正则化来调整协方差矩阵。也就是说,软件估计并使用不受限制的经验协方差矩阵。
对于线性判别分析,如果经验协方差矩阵是奇异的,则软件会自动应用反转协方差矩阵所需的最小正则化。您可以通过输入mdl.gamma.
在命令行。
对于二次判别分析,如果至少一个类具有单数的经验协方差矩阵,则软件抛出错误。
如果在间隔(0,1)中指定值(0,1),则必须实现线性判别分析,否则软件将抛出错误。因此,软件集鉴定
来'线性'
.
如果您指定1
,然后软件使用最大正则化进行协方差矩阵估计。也就是说,软件限制协方差矩阵为对角线。或者,您可以设置鉴定
来“diagLinear”
或者'diagquadratic'
用于对角线协方差矩阵。
例子:'γ',1
数据类型:单
|双重的
“PredictorNames”
-预测变量的名字预测器变量名,指定为唯一的名称或唯一的字符向量的单元阵列的一个字符串数组。的功能预测
取决于您提供培训数据的方式。
如果你提供X
和y
,则可以使用预测
将名称分配给Predictor变量X
.
名字的顺序预测
必须对应的列顺序X
.就是,predictornames {1}
是X (: 1)
那predictornames {2}
是X (:, 2)
等等也,大小(X, 2)
和numel(PredictorNames)
必须是平等的。
默认情况下,预测
是{x1, x2,…}
.
如果你提供TBL.
,则可以使用预测
选择用于培训的预测变量。那是,fitcdiscr
仅使用中的预测变量预测
和训练期间的响应变量。
预测
必须是一个子集Tbl.Properties.VariableNames
且不能包含响应变量的名称。
默认情况下,预测
包含所有预测变量的名称。
一个好的实践是指定使用这两种方法进行训练的预测器“PredictorNames”
或者公式
,但不是两者。
例子:'predictornames',{sepallength','sepalwidth','petallength','petalwidth'}
数据类型:字符串
|细胞
'事先的'
-先验概率“经验”
(默认)|“统一”
|标量值矢量|结构体每个类的先验概率,指定为逗号分隔对,由'事先的'
并在此表中的值。
价值 | 描述 |
---|---|
“经验” |
课程的现有概率是类相对频率y . |
“统一” |
所有类先验概率等于1 /K.哪里K.为类数。 |
数字矢量 | 每个元素都是一个类先验概率。将元素按顺序排列MDL. .ClassNames 或使用Classnames. 名称-值对的论点。软件将元素标准化,使它们相加为1 . |
结构体 | 建筑物
|
如果您为两者设置值重量
和事先的
时,权重被重归一化,使其与所属类的先验概率值相加。
例子:“优先”,“制服”
数据类型:烧焦
|字符串
|单
|双重的
|结构体
'responsebame'
-响应变量名称'Y'
(默认)|特征向量|字符串标量响应变量名,指定为字符向量或字符串标量。
如果你提供y
,则可以使用'responsebame'
指定响应变量的名称。
如果你提供responsevarname.
或者公式
,则不能使用'responsebame'
.
例子:“ResponseName”、“响应”
数据类型:烧焦
|字符串
'SaveMemory'
-标志保存协方差矩阵'离开'
(默认)|'在'
标志要保存协方差矩阵,指定为逗号分隔对组成'SaveMemory'
和任何一种'在'
或者'离开'
.如果您指定'在'
,然后fitcdiscr
不存储完整的协方差矩阵,而是存储足够的信息来计算矩阵。这预测
方法计算用于预测的完整协方差矩阵,并且不存储矩阵。如果您指定'离开'
,然后fitcdiscr
计算并存储完整的协方差矩阵MDL.
.
指定SaveMemory.
作为'在'
当输入矩阵包含数千个预测器时。
例子:“SaveMemory”,“上”
'scoretransform'
-得分变换“没有”
(默认)|“doublelogit”
|“因弗罗吉特”
|“ismax”
|分对数的
|功能手柄|...分数转换,指定为字符向量、字符串标量或函数句柄。
该表总结了可用的字符向量和字符串标量。
价值 | 描述 |
---|---|
“doublelogit” |
1 /(1 +E.2X) |
“因弗罗吉特” |
日志(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.
“重量”
-观察权重TBL.
观察权值,指定为逗号分隔的对,由“重量”
和一个数字矢量的数字矢量或变量的名称TBL.
.该软件在每行中重视观察X
或者TBL.
具有相应的价值重量
.的大小重量
必须等于行的行数X
或者TBL.
.
如果将输入数据指定为表TBL.
,然后重量
可以是变量的名称TBL.
包含数字向量的。在这种情况下,必须指定重量
作为字符向量或字符串标量。例如,如果权重向量W.
存储为资源描述。W.
,则指定为'W'
.否则,该软件将处理所有列TBL.
包括…在内W.
,作为预测器或训练模型时的反应。
该软件可实现重量
总结相应类中的现有概率的值。
默认情况下,重量
是那些(
哪里N.
,1)N.
观察的次数在吗X
或者TBL.
.
数据类型:双重的
|单
|烧焦
|字符串
'cvpartition'
-交叉验证分区[]
(默认)|cvpartition
分区对象交叉验证分区,指定为cvpartition
分区对象由cvpartition
.分区对象指定交叉验证的类型以及训练集和验证集的索引。
要创建一个交叉验证模型,你只能指定的这四个名字 - 值参数之一:CVPartition
那坚持
那KFold
, 或者忽略
.
例子:假设你创建一个随机分区通过使用500个观察5倍交叉验证CVP = CVPARTING(500,'KFOLD',5)
.然后,您可以使用“CVPartition”,本量利
.
“坚持”
-用于抵抗验证的数据部分用于阻止验证的数据的分数,指定为范围(0,1)的标量值。如果您指定'持有',p
,则软件完成以下步骤:
随机选择和保留p * 100
%的数据作为验证数据,并且使用该数据的其余部分训练模型。
存储紧凑型培训的模型训练有素
交叉验证模型的性质。
要创建一个交叉验证模型,你只能指定的这四个名字 - 值参数之一:CVPartition
那坚持
那KFold
, 或者忽略
.
例子:'持有',0.1
数据类型:双重的
|单
“KFold”
-数量的折叠10.
(默认)|正整数值大于1在交叉验证模型中使用的折叠数,指定为大于1.如果指定的正整数值。KFold, k
,则软件完成以下步骤:
随机分区数据K.
套。
对于每一组,保留所述一组作为验证数据,并且使用其它训练模型K.
– 1套。
储存K.
紧凑,训练模型在K.
-by-1细胞载体训练有素
交叉验证模型的性质。
要创建一个交叉验证模型,你只能指定的这四个名字 - 值参数之一:CVPartition
那坚持
那KFold
, 或者忽略
.
例子:'kfold',5
数据类型:单
|双重的
“Leaveout”
-分析交叉验证标志'离开'
(默认)|'在'
留下一张交叉验证标志,指定为'在'
或者'离开'
.如果您指定“Leaveout”,“上”
,然后为每一个N.观察(N.是观察的数量,不包括缺失的观察,指定numobservations.
模型属性),软件完成以下步骤:
预留一个观测为验证数据,并使用其他训练模型N.- 1的观察。
储存N.紧凑,训练有素的型号N.-by-1细胞载体训练有素
交叉验证模型的性质。
要创建一个交叉验证模型,你只能指定的这四个名字 - 值参数之一:CVPartition
那坚持
那KFold
, 或者忽略
.
例子:“Leaveout”,“上”
'OptimizeHyperparameters'
-优化的参数“没有”
(默认)|'汽车'
|'全部'
|字符串数组或符合条件的参数名的单元阵列|矢量optimizableVariable
对象要优化的参数,指定为逗号分隔的对'OptimizeHyperparameters'
和以下之一:
“没有”
- 不要优化。
'汽车'
-使用{'delta','gamma'}
.
'全部'
-优化所有符合条件的参数。
符合条件的参数名称的字符串数组或单元格数组。
矢量optimizableVariable
对象,通常是普遍存在
.
优化的尝试,以尽量减少交叉验证的损失(错误)fitcdiscr
通过改变参数。有关交叉验证丢失的信息(尽管在不同的上下文中),请参见分类损失.为了控制交叉验证类型和优化等方面,使用HyperParameterOptimizationOptions.
名称-值对。
请注意
'OptimizeHyperparameters'
值覆盖使用其他名称-值对参数设置的任何值。例如,设置'OptimizeHyperparameters'
来'汽车'
导致'汽车'
值应用。
对符合条件的参数fitcdiscr
是:
通过传染媒介设置非菲达参数optimizableVariable
具有非默认值的对象。例如
加载渔民params = hyperparameters ('fitcdiscr'量,物种);参数(1)。范围=(1的军医,1 e6);
经过参数
作为价值OptimizeHyperparameters
.
默认情况下,在命令行出现迭代显示,并根据优化中超参数的数量出现绘图。对于优化和绘图,目标函数为日志(1 +交叉验证丢失)回归和分类误判率。为了控制迭代显示,设定verb
领域“HyperparameterOptimizationOptions”
名称-值对的论点。要控制情节,设置Showplots.
领域“HyperparameterOptimizationOptions”
名称-值对的论点。
例如,看到优化判别分析模型.
例子:'汽车'
“HyperparameterOptimizationOptions”
-选择优化为优化选项,指定为逗号分隔的一对组成的“HyperparameterOptimizationOptions”
和一个结构。此参数修改了OptimizeHyperparameters
名称-值对的论点。结构中的所有字段都是可选的。
字段名 | 价值 | 默认 |
---|---|---|
优化器 |
|
'Bayesopt' |
AcquisitionFunctionName |
收购函数,其名称包括 |
'预期 - 每秒改善' |
MaxObjectiveEvaluations |
目标函数评估的最大数量。 | 30. 为了'Bayesopt' 或者“randomsearch” ,并为整个电网'gridsearch' |
MaxTime. |
时限,指定为正实。时间限制以秒为单位,用 |
INF. |
numgriddivisiving. |
为了'gridsearch' ,每个维度中的值数。该值可以是给出每个维度值数的正整数向量,也可以是适用于所有维度的标量。对于分类变量,此字段将被忽略。 |
10. |
Showplots. |
逻辑值,指示是否显示图表。如果真的 ,该域根据迭代次数绘制出最佳目标函数值。如果有一个或两个优化参数,如果优化器 是'Bayesopt' ,然后Showplots. 还根据参数绘制目标函数的模型。 |
真的 |
SaveIntermediateResults |
表示是否保存结果的逻辑值优化器 是'Bayesopt' .如果真的 ,该字段将覆盖名为工作空间可变'BayesoptResults' 在每一个迭代。变量是aBayesianOptimization 对象。 |
错误的 |
verb |
显示到命令行。
有关详细信息,请参阅 |
1 |
使用指α. |
指示是否并行运行贝叶斯优化的逻辑值,需要并行计算工具箱™. 由于并行计时的不可再现性,并行贝叶斯优化不一定产生可再现的结果。有关详细信息,请参阅平行的贝叶斯优化. | 错误的 |
再分配 |
逻辑值,指示是否在每次迭代时重新验证交叉验证。如果
|
错误的 |
不超过以下三个字段名称中的一个。 | ||
CVPartition |
一种cvpartition 对象,如所创建的cvpartition . |
“Kfold”,5 如果您没有指定任何交叉验证字段 |
坚持 |
范围内的标量(0,1) 表示不渗透性分数。 |
|
Kfold |
大于1的整数。 |
例子:“HyperparameterOptimizationOptions”、结构(MaxObjectiveEvaluations, 60)
数据类型:结构体
MDL.
- 受过训练判别分析分类模型ClassificationDiscriminant
模型对象|ClassificationededModel.
交叉验证的模型对象训练判别分析分类模型,返回为ClassificationDiscriminant
模型对象或一个ClassificationededModel.
交叉验证的模型对象。
如果设置任何名称值对参数KFold
那坚持
那横梁
, 或者CVPartition
,然后MDL.
是一个ClassificationededModel.
交叉验证的模型对象。除此以外,MDL.
是一个ClassificationDiscriminant
模型对象。
参考属性MDL.
,使用点记号。例如,为了显示在命令窗口中估计分量的装置,输入Mdl.Mu
.
对于判别分析模型是:
每个班级(y
)生成数据(X
)使用多变量的正态分布。也就是说,模型假定X
具有高斯混合分布(GMDistribution.
)。
对于线性判别分析,该模型对每个类具有相同的协方差矩阵,只有手段变化。
对于二次判别分析,每个阶级的手段和协方差都有所不同。
预测
分类以使预期的分类成本最小化:
在哪里
有关详细信息,请参见使用判别分析模型进行预测.
培训模型后,您可以生成C / C ++代码,该代码预测新数据的标签。生成C / C ++代码需要MATLAB编码器™. 有关详细信息,请参阅代码生成简介.
使用说明和限制:
金宝app支持的语法是:
Mdl = fitcdiscr(资源描述,Y)
Mdl = fitcdiscr (X, Y)
Mdl = fitcdiscr(___、名称、值)
[铜牌,FitInfo,HyperparameterOptimizationResults] = fitcdiscr(___,名称,值)
-fitcdiscr
返回其他输出参数FitInfo
和HyperParameterOptimationResults.
当你指定'OptimizeHyperparameters'
名称-值对的论点。
这FitInfo
输出参数是目前用于未来使用的空结构阵列。
这HyperParameterOptimationResults.
输出参数是一个BayesianOptimization
对象或超参数表,其中包含描述超参数的交叉验证优化的相关值。
“HyperparameterOptimizationResults”
不为空当'OptimizeHyperparameters'
名称 - 值对参数在创建模型时是非空的。价值“HyperparameterOptimizationResults”
的值“HyperparameterOptimizationOptions”
创建模型时的名称值对参数。
如果您指定'Bayesopt'
(默认)HyperParameterOptimationResults.
是类的对象吗BayesianOptimization
.
如果您指定'gridsearch'
或者“randomsearch”
,然后HyperParameterOptimationResults.
是使用的超参数、观测到的目标函数值(交叉验证损失)和观测值从最低(最好)到最高(最差)的排序表。
金宝app受支持的名称-值对参数及其区别如下:
'classnames'
“成本”
“DiscrimType”
“HyperparameterOptimizationOptions”
-对于交叉验证,只支持高优化金宝app“坚持”
验证。默认情况下,软件选择并保留20%的数据作为拒绝验证数据,并使用其余的数据训练模型。您可以使用此参数为拒绝符部分指定一个不同的值。例如,指定“HyperparameterOptimizationOptions”、结构(“抵抗”,0.3)
保留30%的数据作为验证数据。
'OptimizeHyperparameters'
-唯一符合条件的参数优化是“DiscrimType”
.指定'汽车'
使用“DiscrimType”
.
“PredictorNames”
'事先的'
'responsebame'
'scoretransform'
“重量”
对于高大的阵列和高大的桌子,fitcdiscr
返回A.CompactClassificationDiscriminant
对象,其中包含与a相同的属性ClassificationDiscriminant
对象。主要的区别是紧凑对象对内存需求很敏感。compact对象不包含包含数据或包含与数据大小相同的数组的属性。compact对象不包含这些ClassificationDiscriminant
特性:
ModelParameters
numobservations.
HyperParameterOptimationResults.
RowsUsed
XCentered
W.
X
y
另外,compact对象不支持这些金宝appClassificationDiscriminant
方法:
契约
横梁
cvshrink.
重新提交
resubloss.
重新提交
resubPredict
有关详细信息,请参阅高大的数组.
执行并行超参数优化,使用'HyperparameterOptimizationOptions',结构( 'UseParallel',真)
对此函数调用中的名称值参数。
有关并行超参数优化的更多信息,请参见平行的贝叶斯优化.
有关并行计算的一般信息,请参阅使用自动并行支持运行MATLAB功能金宝app(并行计算工具箱).
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。