- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WekaAdaboost源代码分析
Weka[14] Adaboost 源代码分析
作者:Koala++/屈伟
需要注意的是 AdaBoostM1 继承自 RandomizableIteratedSingleClassifierEnhancer,天哪,
这么长的名字,他们也起的出来。
这个要看一下构造函数:
public AdaBoostM1() {
m_Classifier = new weka.classifiers.trees.DecisionStump();
}
这里的 m_Classifier 是继承自曾祖父 SingleClassifierEnhancer 的,DecisionStump 就是只
有一个结点的决策树,stump 是树桩的意思,蛮形象的。
public void buildClassifier(Instances data) throws Exception {
super.buildClassifier(data);
// can classifier handle the data?
getCapabilities().testWithFail(data);
// remove instances with missing class
data = new Instances(data);
data.deleteWithMissingClass();
// only class? - build ZeroR model
if (data.numAttributes() == 1) {
System.err
.println(Cannot build model (only class attribute
present in data!),
+ using ZeroR model instead!);
m_ZeroR = new weka.classifiers.rules.ZeroR();
m_ZeroR.buildClassifier(data);
return;
} else {
m_ZeroR = null;
}
m_NumClasses = data.numClasses();
if ((!m_UseResampling)
(m_Classifier instanceof WeightedInstancesHandler)) {
buildClassifierWithWeights(data);
} else {
buildClassifierUsingResampling(data);
}
}
这里 buildClassifier 就是复制 m_NumIterations 个分类器,具体的代码如下:
public void buildClassifier(Instances data) throws Exception {
if (m_Classifier == null) {
throw new Exception(A base classifier has not been specified!);
}
m_Classifiers = Classifier.makeCopies(m_Classifier,
m_NumIterations);
}
如果就只有 1 个属性,那么表示只有类别属性,用 m_ZeroR 来分类就可以了,ZeroR 分
类是返回类别数最多的那个类别。再向下,判断是否使用重新采样,分类器是否可以考虑带
权样本。先看一下 buildClassifierWithWeights(删除了前面的部分代码):
protected void buildClassifierWithWeights(Instances data) throws
Exception {
// Do boostrap iterations
for (m_NumIterationsPerformed = 0; m_NumIterationsPerformed
m_Classifiers.length; m_NumIterationsPerformed++) {
// Select instances to train the classifier on
if (m_WeightThreshold 100) {
trainData = selectWeightQuantile(training,
(double) m_WeightThreshold / 100);
} else {
trainData = new Instances(training, 0, numInstances);
}
// Build the classifier
if (m_Classifiers[m_NumIterationsPerformed] i
您可能关注的文档
最近下载
- 关于集团公司办公室搬迁工作方案.pdf VIP
- 商业银行信贷业务风险控制课件PPT(34张).ppt
- (完整word版)九年级上册仁爱英语单项选择题汇总(Unit1)A4直接打印.doc
- 中信证券-汽车传感器行业系列深度报告(一):磁传感器,无接触测量位置、速度、电流,同步受益于汽车智能化-电动化.pdf
- Morgan Stanley Fixed-2025年中国经济展望 论通缩之持久战-111868053.pdf VIP
- 政府补助类专项审计报告.docx
- 公司关于进一步深化“法治公司”建设的实施方案.docx VIP
- 医院感染现患率调查培训课件.pptx VIP
- ISO45001-内部审核检查表-参考.xlsx VIP
- 销售管理制度和流程汇编.doc VIP
文档评论(0)