- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我将 sklearn 0.19.1 与 DecisionTree 和 AdaBoost 结合使用。
我有一个工作正常的 DecisionTree 分类器:
clf = tree.DecisionTreeClassifier()
train_split_perc = 10000
test_split_perc = pdf.shape[0] - train_split_perc
train_pdf_x = pdf[:train_split_perc]
train_pdf_y = YY[:train_split_perc]
test_pdf_x = pdf[-test_split_perc:]
test_pdf_y = YY[-test_split_perc:]
clf.fit(train_pdf_x, train_pdf_y)
pred2 = clf.predict(test_pdf_x)
但是当尝试添加 AdaBoost 时,它会在预测函数上抛出错误:
treeclf = tree.DecisionTreeClassifier(max_depth=3)
adaclf = AdaBoostClassifier(base_estimator=treeclf, n_estimators=500, learning_rate=0.5)
train_split_perc = 10000
test_split_perc = pdf.shape[0] - train_split_perc
train_pdf_x = pdf[:train_split_perc]
train_pdf_y = YY[:train_split_perc]
test_pdf_x = pdf[-test_split_perc:]
test_pdf_y = YY[-test_split_perc:]
adaclf.fit(train_pdf_x, train_pdf_y)
pred2 = adaclf.predict(test_pdf_x)
具体错误说:
ValueError:错误的输入形状 (236821, 6)
它似乎指向的数据集是 train_pdf_y
因为它的形状是 (236821, 6)
我不明白为什么。
甚至来自 AdaBoostClassifier 的描述 in the docs我可以理解使用数据的实际分类器是 DecisionTree:
An AdaBoost 1 classifier is a meta-estimator that begins by fitting a classifier on the original dataset and then fits additional copies of the classifier on the same dataset but where the weights of incorrectly classified instances are adjusted such that subsequent classifiers focus more on difficult cases
但我仍然收到此错误。
在code examples I've found ,即使在 sklearn 的网站上有关于如何使用 AdaBoost 的信息,我也不明白我做错了什么。
感谢任何帮助。
最佳答案
看起来您正在尝试执行 Multi-Output classification problem , 给定 y
的形状,否则你喂食和n维是没有意义的y
至 adaclf.fit(train_pdf_x, train_pdf_y)
.
所以假设是这种情况,问题确实是 Scikit-Learn 的 DecisionTreeClassifier确实支持多输出问题,即 y
形状为 [n_samples, n_outputs]
的输入.然而,AdaBoostClassifier 并非如此。 ,鉴于根据文档,标签必须是:
y : array-like of shape = [n_samples]
关于python - 为什么 AdaBoost 不能与 DecisionTree 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54183099/
我看不出 DecisionTree.trainClassifier 之间的区别和 DecisionTree.train方法。 在 code为 DecisionTree有一些线索。对 train 的评论
我在 PySpark 数据帧上训练了一个 DecisionTree 模型。生成的数据框模拟如下: rdd = sc.parallelize( [ (0., 1.),
我正在写一个决策树,下面的代码是完整代码的一部分: def show_tree(tree, features, path): f = io.StringIO() export_grap
我将 sklearn 0.19.1 与 DecisionTree 和 AdaBoost 结合使用。 我有一个工作正常的 DecisionTree 分类器: clf = tree.DecisionTre
我有一个正在开发的网络应用程序。我正在考虑使用 DecisionTree 来分析某些事情。 必须创建 DecisionTree 并将在不同的阶段使用。例如。在 Controller 中,将比较/检查某
我正在尝试学习机器学习,尤其是决策树,我从 Accord .Net 框架网站上复制了这段代码,但它似乎对我不起作用,我不明白为什么.它给我的错误是在第 40 行说:“System.IndexOutOf
我正在研究 Spark MLlib。在研究 DecisionTree 时,我看到了以下 DecisionTree.trainClassifier 用法示例。 import org.apache.spa
我需要实现一组复杂的规则,可以通过许多嵌套条件来完成。我正在寻找一种更优雅的方法来做到这一点。最佳实践是什么? Java Lambda 支持这些情况吗?决策树是正确的方法吗? if(condition
我严格按照 Accord.net 网站上的示例进行操作: Link to the example, scroll to the bottom 我的代码是网站示例中代码的副本。我有正确的 NuGet 包
我的任务是通过添加决策树的导出以供离线组件使用(最好是 JSON 格式,但 XML 也可以),用 Java 增强现有的 Weka 系统。 让我警告你,我是 Weka 的新手 :) 我还没有找到一种方法
我是一名优秀的程序员,十分优秀!