- 运行以下命令在MATLAB 2017文档:
我如何获得分数概率估计使用预测函数在fitcensemble模型?
68(30天)
显示旧的评论
后运行本文中的第一个例子(https://se.mathworks.com/help/stats/fitcensemble.html bvdwkeh)——“训练分类合奏”我想观察的概率/分数在两类之一。但是通过这个函数[标签,分数]=预测(Mdl1 pX);分数很奇怪;7.0616 7.06163.9722 -3.9722 ....这可以变换成概率吗?
接受的答案
MathWorks支金宝app持团队
2023年5月3日下午4
编辑:MathWorks支金宝app持团队
2023年5月3日18:18
背后的原因的命令'(标签,分数)=预测(Mdl1 pX)不返回分数概率估计是因为LogitBoost的算法中使用的模型并不把分数当做概率估计。相反,分数代表的信心一个分类成一个类,更高、更自信。这是解释下面的文档链接:
//www.tatmou.com/help/stats/compactclassificationensemble.predict.html#bvciha4
如果你想获得概率估计分数,你可能会考虑两个选择:1)你可以设置“ScoreTransform”名称-值对的“fitcensemble”“分对数”。这名称-值对将分数转换概率estimates.https: / /www.tatmou.com/help/stats/fitcensemble.html # bvcj_s0-1_sep_shared-ScoreTransformUsing预测模型然后返回分数为每个类概率值。例如:
MdlFinal = fitcensemble (X, Y,“NumLearningCycles”idxNumTrees,…
“学习者”tFinal,“LearnRate”learnRate (idxLR),“ScoreTransform”,分对数的)
> >[~,分数]=预测(MdlFinal X)
成绩=
0.03600.9640
0.80540.1946
0.02780.9722
…
2)设置方法的名称-值对“fitcensemble”“袋”。如前所述的文档链接在这里,“包”算法返回分数作为概率值。文档链接的方法名称-值对可以在这里找到:
> > web (fullfile (docroot,“数据/ fitcensemble.html”))
或最新版本的文档请参考://www.tatmou.com/help/stats/fitcensemble.html
6个评论
kubilay muameleci
2022年1月7日
我不能够得到两个分数列尽管我有两类标签为“1”和“0”。我获得通过预测函数只有一个列的分数。这是为什么呢?你能帮助吗?
数据= readtable (“clean_data.csv”);
split_size = 0.15;
N =大小(数据,1);
分= false (N, 1);
split(1:圆形(split_size * N)) = true;
排列= randperm (N);
分=分裂(排列);
trainingSet =数据(~分裂,:);
testingSet =数据(分裂,:);
trainingPredictors = trainingSet {: 2:29};
trainingOutcomes = trainingSet {: 31};
testingPredictors = testingSet {: 2:29};
testingOutcomes = testingSet {: 31};
X = trainingPredictors;
y = trainingOutcomes;
SVMModel = fitcsvm (X, y,“KernelFunction”,“rbf”,“KernelScale”sigmaOpts,…
“BoxConstraint”boxOpts,“类名”,{' 0 ',' 1 '});
[predictedLabels,分数]=预测(SVMModel testingPredictors);