主要内容

并行列车分类集成

这个例子展示了如何并行训练分类集成。该模型有10个红色和10个绿色的基地位置,红色和绿色的种群正态分布并集中在基地位置。目标是根据位置对点进行分类。这些分类是模糊的,因为一些基本位置是在其他颜色的位置附近。

创建并绘制每种颜色的10个基地位置。

rng默认的%的再现性grnpop = mvnrnd((1,0)、眼睛(2),10);redpop = mvnrnd([0, 1],眼(2),10);情节(grnpop (: 1) grnpop (:, 2),“去”)举行情节(redpop (: 1) redpop (:, 2),“罗”)举行

以随机基点为中心创建40000个每种颜色的点。

N = 40000;redpts = 0 (N,2);i = 1: N grnpts(我:)= mvnrnd (grnpop(兰迪(10):)、眼睛(2)* 0.02);redpts(我)= mvnrnd (redpop(兰迪(10):)、眼睛(2)* 0.02);结束图绘制(grnpts (: 1), grnpts (:, 2),“去”)举行情节(redpts (: 1) redpts (:, 2),“罗”)举行

cdata = [grnpts; redpts];grp = 1 (2 * N, 1);%绿色标签1,红色标签-1grp (N + 1:2 * N) = 1;

给数据配一个袋装分类套件。为了与并行训练进行比较,将集合进行串行拟合,并返回训练时间。

Tic MDL = fitcensemble(cdata,grp,“方法”“包”);少许= toc
少许= 9.0782

评估拟合模型的包外损失。

myerr = oobLoss (mdl)
myerr = 0.0572

使用可复制树模板和并行子流并行创建袋装分类模型。您可以在集群上创建并行池,也可以在本地机器上创建线程工作程序的并行池。要选择适当的并行环境,请参见在基于线程和基于进程的环境中进行选择

parpool
使用“local”配置文件启动并行池(parpool)…连接到并行池(工作人员数量:6)。
ans = ProcessPool with properties: Connected: true NumWorkers: 6 Cluster: local attachdfiles: {} AutoAddClientPath: true IdleTimeout: 30 minutes (30 minutes remaining) SpmdEnabled: true
s = RandStream (“mrg32k3a”);选择= statset (“UseParallel”,真的,“UseSubstreams”,真的,“流”,年代);t = templateTree (“复制”,真正的);Tic mdl2 = fitcensemble(cdata,grp,“方法”“包”“学习者”t“选项”、选择);ptime = toc
ptime = 6.2527

在这个六核系统上,并行的训练过程更快。

加速=少许/ ptime
加速= 1.4519

评估这个模型的包外损失。

myerr2 = oobLoss (mdl2)
myerr2 = 0.0577

错误率与第一个模型的错误率相似。

为了证明模型的重现性,重置随机数流并再次拟合模型。

重置(年代);Tic mdl2 = fitcensemble(cdata,grp,“方法”“包”“学习者”t“选项”、选择);toc
运行时间为3.953355秒。

检查一下是否与上次的损失相同。

myerr2 = oobLoss (mdl2)
myerr2 = 0.0577

另请参阅

|

相关的话题