与不平衡数据分类
这个例子展示了如何执行分类当一个比另一个类有更多的观察。您使用RUSBoost
算法首先,因为它是设计来处理这种情况。处理不平衡数据的另一种方法是使用名称-值对参数“之前”
或“成本”
。有关详细信息,请参见处理不平衡数据分类合奏中或不平等的误分类成本。
下面的例子使用了“覆盖式”来自UCI机器学习的数据档案,中描述https://archive.ics.uci.edu/ml/datasets/Covertype。数据分类类型的森林(地被),基于预测如海拔、土壤类型、水和距离。50岁以上的有500000多观察和预测数据,所以培训和使用分类器是耗费时间。
布莱克沃德和院长[1]描述一个神经网络分类的数据。他们引用分类精度为70.6%。RUSBoost
获得超过81%的分类精度。
获得的数据
数据导入到您的工作区。最后一个数据列提取到一个变量命名Y
。
gunzip (“https://archive.ics.uci.edu/ml/machine-learning-databases/covtype/covtype.data.gz”)加载covtype.dataY = covtype(:,结束);covtype(:,结束)= [];
检查响应数据
汇总(Y)
值计算百分比1 211840 283301 3 35754 2747 4 6.15% 0.47% 48.76% 36.46% 20510 9493 17367 6 1.63% 2.99% 7 3.53%
有成千上万的数据点。第4类的还不到总数的0.5%。这种不平衡表明RUSBoost
是一个适当的算法。
分区的数据质量评估
使用一半的数据适合分类器,检查结果的质量分类器的一半。
rng (10,“旋风”)%的再现性= cvpartition (Y,一部分“坚持”,0.5);istrain =培训(部分);%的数据拟合坚持=测试(部分);%的数据质量评估汇总(Y (istrain))
值计算百分比1 105919 141651 3 17877 1374 4 6.15% 0.47% 48.76% 36.46% 10254 4747 8684 6 1.63% 2.99% 7 3.53%
创建合奏
用深树更高的整体精度。为此,设置分裂的树木有最大数量的决定N
,在那里N
是观察在训练样本的数量。集LearnRate
来0.1
为了达到更高的精度。数据很大,与深树,创建合奏费时。
N =总和(istrain);%在训练样本数量的观察t = templateTree (“MaxNumSplits”N);抽搐rusTree = fitcensemble (covtype (istrain:), Y (istrain),“方法”,“RUSBoost”,…“NumLearningCycles”,1000,“学习者”t“LearnRate”,0.1,“nprint”,100);
培训RUSBoost……生长弱的学习者:100增长疲弱的学习者:200增长疲弱的学习者:300增长疲弱的学习者:400增长疲弱的学习者:500增长疲弱的学习者:600增长疲弱的学习者:700增长疲弱的学习者:800增长疲弱的学习者:900增长疲弱的学习者:1000
toc
运行时间是242.836734秒。
检查分类错误
情节的分类误差对乐团的成员数量。
图;抽搐的阴谋(损失(rusTree covtype(是:),Y(是),“模式”,“累积”));toc
运行时间是164.470086秒。
网格在;包含(树木的数量);ylabel (“测试分类错误”);
整体达到一个分类误差低于20%使用116或更多的树。500或更多的树的分类误差减少以较慢的速度。
检查每个类的混淆矩阵的比例正确的类。
抽搐Yfit =预测(rusTree covtype(坚持,:));toc
运行时间是132.353489秒。
Yfit confusionchart (Y(是),“归一化”,“row-normalized”,“RowSummary”,“row-normalized”)
除了类的所有类2分类精度超过90%。但是二班占近一半数据,所以总体精度并不高。
紧凑的合奏
大合奏。删除数据使用紧凑的
方法。
cmpctRus =紧凑(rusTree);深圳(1)=谁(“rusTree”);深圳(2)=谁(“cmpctRus”);(深圳(1)。字节深圳(2).bytes]
ans =1×2109×1.6579 - 0.9423
压实系综是原始大小的一半。
删除一半的树cmpctRus
。这个动作可能会对预测性能的影响很小,基于这样的观察:500 1000棵树给近最优精度。
cmpctRus = removeLearners (cmpctRus [500:1000]);深圳(3)=谁(“cmpctRus”);深圳(3).bytes
ans = 452868660
减少紧凑的整体需要大约四分之一的记忆完整的合奏。其整体损失率低于19%:
L =损失(cmpctRus covtype(是:),Y(坚持))
L = 0.1833
预测精度的新数据可能有所不同,因为整体精度可能有偏见。偏差是因为相同的数据用于评估整体被用于减少整体的大小。获得必要的整体规模的无偏估计,您应该使用交叉验证。然而,过程是费时。
引用
[1]布莱克沃德,j . a和d·j·迪恩。“比较人工神经网络的精度和判别分析在预测森林覆盖从地图类型变量”。计算机和电子产品在农业问题3卷。24日,1999年,页131 - 151。
另请参阅
fitcensemble
|汇总
|cvpartition
|培训
|测试
|templateTree
|损失
|预测
|紧凑的
|removeLearners
|confusionchart