如何使用每个样本的一个特征来预测sklearn随机森林?

时间:2016-10-12 11:43:56

标签: machine-learning scikit-learn computer-vision random-forest

我有一个(图像)数据集,其功能已经填充为[n_samples,n_feature]或[10,7] 10个样本,每个样本有7个功能。

现在,.predict()需要输入[n_samples,n_feature]。我知道样本量可能会改变,但是不能仅使用一个功能来预测吗?

基本上,我希望每个样本只有一个特征穿过森林;所以在预测时间内输入应该是[n_samples,1]

1 个答案:

答案 0 :(得分:1)

使用Radom Forest对图片进行分类并不常见,而且性能可能不那么好。

首先,方法.predict()不期望输入大小为[n_samples,n_feature]。事实上,只有n_features功能的数量需要相同,而n_samples的情况并非如此。虽然您的训练集有一些16*16=256样本,但您的测试集只能包含一个样本。

如果您仍想仅使用一个功能使用RF分类器,则可以计算主成分分析(可能不会在功能中返回功能)使用一些经典的 skleanr 方法选择最佳功能,例如:SelectKBest,可让您选择K个最佳功能(在您的情况下为K=1)。< / p>

更新:

我在sklearn的API文档中看得更深一点,发现了这个:see here

您可以为.transform()方法提供一个名为threshold的参数,该参数将根据您指定的阈值选择要素。

注意:已弃用:将在版本0.19中删除支持将估算工具用作功能选择器。改为使用SelectFromModel。