use*_*691 2 class image-processing svm knn
我知道这是一个非常普遍的问题,没有关于我的实际项目的细节,但我的问题是:
我正在进行遥感图像分类.我使用的是面向对象的方法:首先我将图像分割到不同的区域,然后从颜色,形状和纹理等区域中提取特征.一个区域中所有要素的数量可能是30个,通常总共有2000个区域,我将选择5个类别,每个类别有15个样本.
综上所述:
如何选择合适的分类器?如果有3个分类器(ANN,SVM和KNN),我应该选择哪个更好的分类?
KNN是最基本的机器学习算法,用于参数化和实现,但正如@etov所暗示的那样,由于训练数据量较小,因此可能会胜过SVM.人们已经观察到人工神经网络受到训练数据不足的限制.但是,除了准确的训练数据应该构成相对离散的群集之外,KNN对您的数据做出的假设数量最少.众所周知,人工神经网络和支持向量管理很难分辨,特别是如果您希望使用多个数据集重复该过程并依赖某些假设,例如您的数据是线性可分的(SVM).
我还建议使用随机森林算法,因为这很容易实现,并且对训练数据大小相对不敏感,但我建议不要使用非常小的训练数据大小.
scikit-learn模块包含这些算法,能够处理大型训练数据大小,因此您可以增加训练数据样本的数量.根据@etov的建议,最好的方法就是自己调查一下