原文: http://machinelearningmastery.com/why-you-should-be-spot-checking-algorithms-on-your-machine-learning-problems/
和http://machinelearningmastery.com/create-lists-of-machine-learning-algorithms/?utm_content=buffer6c174&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer
这篇文章主要讲在面对许多的机器学习算法,如何快速的选择比较适合解决你问题的算法。解决方案: 使用抽样检查方法,测试在一些算法上的性能。在缩小范围之后,再重点对该类型的算法及其变种进行深入的实验分析。
1. 由于掌握知识的不广泛,懒惰等原因,在解决问题之初,重点测试了一些自己比较在行的算法,做各种完整的参数测试。
不利: 过早优化,花费时间。其实可能有别的算法更适合这个问题的求解。也有可能是问题本身描述不准确。
解决方案:调研解决该问题的常见算法,写一个自动脚本, 进行抽样检查,在测试之后,挑选合适的算法,进行重点优化。
2. Favorites are dangerous. 由于人对不熟悉领域的害怕,总是会选择自己熟悉的算法,花费许多时间调算法来解决新的问题。熟不知,你的算法不一定适合求解该问题。算法总是有一定适合场景。尝试过不少论文的算法,比如求解knn,在我自己的数据集上,传统的lsh,tree的方法都不太管用。
我们应该:
1. 多熟悉和调研一些算法。
2. 写各种算法的自动脚本测试数据集。
常见的算法分类:
- Regression algorithms
- SVM algorithms
- Data projection algorithms
- Deep learning algorithms
- Time series forecasting algorithms
- Rating system algorithms
- Recommender system algorithms
- Feature selection algorithms
- Class imbalance algorithms
- Decision tree algorithms
作为计算机视觉的初学者,我们可以也可以列出自己的Image classification, Image segmentation, Image Annotation, Image Retrieval的各个步骤常见算法。
比如Image Classification algorithms: Feature Representation: (1) bow-of-word : k-means, IFV, vlad, (2) deep learning. Classification Methods: svm, logistic regression, boosting, random forest.....
3. 采用图表方法直观显示测试结果。
4. 及时添加新的算法到自动脚本中。