正如标题所说,我正在测试python MultiOutputClassifier,以解决一个需要确定坐标(x,y)作为输出的问题,给定3个输入,它只返回最接近的学习值,而不是“外推”值作为预测
我的示例代码如下:
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.multioutput import MultiOutputClassifier
train_data = np.array([
[-30,-60,-90,0,0],
[-50,-50,-50,10,0],
[-90,-60,-30,20,0],
[-50,-50,-95,0,10],
[-60,-30,-60,10,10],
[-95,-50,-50,20,10],
])
# These I just made up
test_data_x = np.array([
[-35,-50,-90],
])
x = train_data[:, :3]
y = train_data[:, 3:]
forest = RandomForestClassifier(n_estimators=100, random_state=1)
classifier = MultiOutputClassifier(forest, n_jobs=-1)
classifier.fit(x,y)
print classifier.predict(test_data_x)
这返回0,10,但我希望对于给定的输入,输出应该是5,5;介于两个习得值之间
我发现有些事情我做错了,或者我误解了。在这个问题上有什么帮助吗?是不是多输出分类器不是正确的东西
这里的问题是(随机森林)分类器不会外推。它只能输出已经看到的值。您可能需要使用回归器
将代码中的“分类器”替换为“回归器”将产生(0.8,5.8)作为输出,这似乎更接近您的预期
相关问题 更多 >
编程相关推荐