gpt4 book ai didi

具有warm_start结果的Scikit-learn Randomforest(不可广播的输出...)

转载 作者:行者123 更新时间:2023-12-03 09:02:18 25 4
gpt4 key购买 nike

我正在尝试构建一个在线随机森林分类器。在 for 循环中,我遇到了一个错误,但找不到原因。

clf = RandomForestClassifier(n_estimators=1, warm_start=True)

在 for 循环中,我在读取新数据时增加估计器的数量。

clf.n_estimators = (clf.n_estimators + 1)
clf = clf.fit(data_batch, label_batch)

循环3次后,运行代码时在循环中预测如下:

predicted = clf.predict(data_batch)

我收到以下错误:

ValueError: non-broadcastable output operand with shape (500,1) doesn't match the broadcast shape (500,2)

数据的形状为 (500,153),标签为 (500,)。

这是更完整的代码:

clf = RandomForestClassifier(n_estimators=1, warm_start=True)
clf = clf.fit(X_train, y_train)
predicted = clf.predict(X_test)

batch_size = 500

for i in xrange(batch_init_size, records, batch_size):
from_ = (i + 1)
to_ = (i + batch_size + 1)

data_batch = data[from_:to_, :]
label_batch = label[from_:to_]

predicted = clf.predict(data_batch)

clf.n_estimators = (clf.n_estimators + 1)
clf = clf.fit(data_batch, label_batch)

最佳答案

是的,该错误是由于批处理中样本类数量不等造成的。我通过使用包含所有类的批量大小解决了这个问题。

关于具有warm_start结果的Scikit-learn Randomforest(不可广播的输出...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49334063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com