我有一个(图像)数据集,其功能已经填充为[n_samples,n_feature]
或[10,7] 10个样本,每个样本有7个功能。
现在,.predict()
需要输入[n_samples,n_feature]
。我知道样本量可能会改变,但是不能仅使用一个功能来预测吗?
基本上,我希望每个样本只有一个特征穿过森林;所以在预测时间内输入应该是[n_samples,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。