如何选择合适的算法

来源:互联网 发布:心事谁人知原唱 编辑:程序博客网 时间:2024/05/07 05:22
FROM 《机器学习实战》
        必须考虑下面两个问题:一、使用机器学习算法的目的,想要算法完成何种任务,比如是预测明天下雨的概率还是对投标者按照兴趣分组;二、需要分析或收集的数据是什么。
        首先考虑使用机器学习算法的目的。如果想要预测目标变量 的值,则可以选择监督学习算法,否则可以选择无监督学习算法。确定选择监督学习算法之后 ,需要进一步确定目标变量类型,如果目标变量是离散型,如是/否、1/2/3、A/B/C等,则可以选择分类器算法;如果目标变量是连续型 的数值,如0.0~100.00、-999~999等,则需要选择回归算法。
如果不想预测目标变量的值,则可以选择无监督学习算法。进一步分析是否需要将数据划分为离散的组。如果这是唯一的需求,则使用聚类算法;如果还需要估计数据与每个分组的相似程度,则需要使用密度估计算法。
       在大多数情况下,上面给出的选择方法都能够帮助选择恰当的机器学习算法,但这也并非一成不变。第9章我们就会使用分类算法来处理回归问题,显然这将与上面监督学习中处理回归问题的原则不同。
       其次需要考虑的是数据问题。我们应该充分了解数据,对实际数据了解得越充分,越容易创建符合实际需求的应用程序。主要应该了解数据的以下特性:特征值是离散型变量还是连续型变量,特征值中是否存在缺失的值,何种原因造成缺失值,数据中是否存在异常值,某个特征发生的频率如何(是否罕见得如同海底捞针),等等。充分了解上面提到的这些数据我可以缩短选择机器学习算法的时间。
       我们只能在一定程度上缩小算法的选择范围,一般并不存在最好的算法或者可以给出最好结果的算法,同时还要尝试不同算法的执行效果。对于所选的每种算法,都可以使用其他的机器学习技术来改进其性能。在处理输入数据之后,每个算法的相对性能也可能会发生变化。一般说来发现最好算法的关键环节是反复试错的迭代过程。
0 0