主要内容

随机子空间分类

这个例子展示了如何使用一个随机子空间整体提高分类的准确性。它还展示了如何使用交叉验证来确定好参数的弱学习者模板和合奏。

加载数据

加载电离层数据。这个数据有351个二进制响应34预测。

负载电离层;[N、D] =大小(X)
N = 351
D = 34
resp =独特(Y)
resp =2 x1细胞{b} {' g '}

选择最近的邻居的数量

找到一个不错的选择k最近的邻居的数量分类器,通过交叉验证。选择的邻居数量大约在对数刻度均匀间隔的。

rng (8000“旋风”)%的再现性K =圆(logspace (0 log10 (N) 10));%的邻居cvloss = 0(元素个数(K), 1);k = 1:元素个数(k)资讯= fitcknn (X, Y,“NumNeighbors”,K (K),“CrossVal”,“上”);cvloss (k) = kfoldLoss(资讯);结束图;%绘制精度和ksemilogx (K, cvloss);包含(“最近的邻居的数量);ylabel (“10倍分类错误”);标题(“事例分类”);

图包含一个坐标轴对象。事例坐标轴对象与标题分类包含一个类型的对象。

最低的交叉验证错误发生k = 2

创建一个集合体

创建集合体2最近的邻居分类与不同数量的维度,并检查旨在损失产生的集合体。

这一步需要很长时间。跟踪进度,每个维度完成打印一条消息。

NPredToSample =圆(linspace (1 D 10));%的线性空间维度cvloss = 0(元素个数(NPredToSample), 1);学习者= templateKNN (“NumNeighbors”2);npr = 1:元素个数(NPredToSample)子空间= fitcensemble (X, Y,“方法”,“子”,“学习者”学习者,“NPredToSample”NPredToSample (npr),“CrossVal”,“上”);cvloss (npr) = kfoldLoss(子空间);流(“随机子空间%我做。\ n”美国国家公共电台);结束
随机子空间1完成。随机子空间2完成。随机子空间3完成。随机子空间4。随机子空间5。随机子空间6。随机子空间7。随机子空间8。随机子空间9。随机子空间10。
图;%绘制精度和尺寸情节(NPredToSample cvloss);包含(随机选择的预测数的);ylabel (“10倍分类错误”);标题(基于事例的随机子空间的分类);

图包含一个坐标轴对象。坐标轴对象与基于事例标题分类随机子空间包含一个类型的对象。

使用五和八个预测学习者的集合体旨在最低错误。这些集合体的出错率约为0.06,而其他乐团旨在错误率约0.1或更多。

找到一个好的整体尺寸

找到最小的数量的学习者,还是给好分类。

实体= fitcensemble (X, Y,“方法”,“子”,“学习者”学习者,“NPredToSample”5,“CrossVal”,“上”);图;%的阴谋合奏的准确性和数量情节(kfoldLoss(实体,“模式”,“累积”)包含(“合奏的学习者”);ylabel (“10倍分类错误”);标题(基于事例的随机子空间的分类);

图包含一个坐标轴对象。坐标轴对象与基于事例标题分类随机子空间包含一个类型的对象。

似乎没有优势在一个拥有超过50名左右的学习者。可能25学习者提供良好的预测。

创建一个最后试装

构建一个与50学习者最终合奏。紧凑的合奏,看看压缩版本节省可观的内存数量。

实体= fitcensemble (X, Y,“方法”,“子”,“NumLearningCycles”,50岁,“学习者”学习者,“NPredToSample”5);岑=紧凑(ens);s1 =谁(“实体”);s2 =谁(“岑”);(s1。字节s2.bytes]%如果。字节=大小的字节
ans =1×21748675 1518820

小型合奏约10%小于整个合奏。两个给相同的预测。

另请参阅

||||

相关的话题