What's the difference between ANN, SVM and KNN classifiers?

牧云@^-^@ 提交于 2019-12-06 08:59:47

If your "sample data" is the train set, it seems very small. I'd first suggest using more than 15 examples per class.

As said in the comments, it's best to match the algorithm to the problem, so you can simply test to see which algorithm works better. But to start with, I'd suggest SVM: it works better than KNN with small train sets, and generally easier to train then ANN, as there are less choices to make.

KNN is the most basic machine learning algorithm to paramtise and implement, but as alluded to by @etov, would likely be outperformed by SVM due to the small training data sizes. ANNs have been observed to be limited by insufficient training data also. However, KNN makes the least number of assumptions regarding your data, other than that accurate training data should form relatively discrete clusters. ANN and SVM are notoriously difficult to paramtise, especially if you wish to repeat the process using multiple datasets and rely upon certain assumptions, such as that your data is linearly separable (SVM).

I would also recommend the Random Forests algorithm as this is easy to implement and is relatively insensitive to training data size, but I would advise against using very small training data sizes.

The scikit-learn module contains these algorithms and is able to cope with large training data sizes, so you could increase the number of training data samples. the best way to know for sure would be to investigate them yourself, as suggested by @etov

Have a look at below mind map

KNN: KNN performs well when sample size < 100K records, for non textual data. If accuracy is not high, immediately move to SVC ( Support Vector Classifier of SVM)

SVM: When sample size > 100K records, go for SVM with SGDClassifier.

ANN: ANN has evolved overtime and they are powerful. You can use both ANN and SVM in combination to classify images

More details are available @semanticscholar.org

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!