机器学习之算法选择

举报
运气男孩 发表于 2021/01/17 21:47:45 2021/01/17
【摘要】 常用的机器学习算法分为分类、聚类、时序预测、异常检测、关联分析推荐等如下图5-1所示,下面将分别按照任务维度简要介绍一些常用的算法,旨在为开发者提供算法选择的参考。    在分类任务中,逻辑回归算法实现简单,经常被作为性能基线与其他算法比较逻辑回归算法也可以被看作是一层神经网络,由于其计算复杂度低,经常被拓展到更加复杂的问题上,如大规模推荐,而支持向量机擅长解决高维度非线性分类问题,支持向量...

常用的机器学习算法分为分类、聚类、时序预测、异常检测、关联分析推荐等如下图5-1所示,下面将分别按照任务维度简要介绍一些常用的算法,旨在为开发者提供算法选择的参考。
    在分类任务中,逻辑回归算法实现简单,经常被作为性能基线与其他算法比较逻辑回归算法也可以被看作是一层神经网络,由于其计算复杂度低,经常被拓展到更加复杂的问题上,如大规模推荐,而支持向量机擅长解决高维度非线性分类问题,支持向量机模型的计算复杂度是数据集大小的二次方,因此不适合处理大规模数据。逻辑回归、支持向量机在多分类场景下的应用需要依赖一些额外的技巧,如与集成学习相结合等。
    最初的KNN算法不需要训练,它直接根据邻近的有标签数据的投票来对未知签数据进行分类,然而,在实际应用中,由于数据样本的距离度量方式是不可知的,所以KNN算法需要在常用的几个距离度量方式中去选择并学习合适的度量方式,这时就需要训练,度量学习的目的是学习一个度量矩阵,使得在某度量方式下,数据中同类样本之间的距离尽可能减小,而不同类别样本之间的距离尽可能增大,常用的度量学习方法分为全局度量学习和局部度量学习,深度学习也可以与度量学习相结合,利用深度神经网络自适应学习特征表达,当数据量较多时,推荐使用深度度量学习深度度量学习已经成功用于人脸识别等领域。
    决策树通过递归划分样本特征空间并在每个得到的特征空间区域定义局部模型来做预测,决策树方法的优点是易于理解,数据预处理过程比较简单,同时在相对短的时间内就可以在大数据集上得到可行且效果良好的结果,决策树是非常基础的算法,可解释性强,但它缺点也比较明显,对连续性的特征比较难预测,当数据特征关联性比较强时,决策树的表现不会太好,通常,决策树需要与集成学习方法一起使用,才会有较好的精度,随机森林、GBDT等算法已经在工业界广泛使用。
    由上可知,当处理的问题是二分类问题且数据集规模不大时,支持向量机是首选算法:如果支持向量机的效果不是很理想,则可能是因为该矩阵不能很好地度量样本之间的相似性,因此可以尝试度量学习算法,对于数据集比较大的情况,则首先选择基于决策树的集成学习方法来解决,当然,其他不同的模型也都可以与不同的集成学习策略(如 Bagging、 Boosting、 Stacking)相结合,进一步提升模型效果,但集成学习通
常也会使模型更加复杂,增加训练和推理的计算成本。

image.png

    聚类任务中最常用的算法是 K Means、基于图的聚类算法及混合模型, K Means算法存在两个问题:不同的初始中心点对最后聚类结果的影响非常大:聚类簇数量不容易提取判断。 K Means+通过改进初始中心点的选择来改善K Means算法的聚类效果基于密度的聚类算法,如 DBSCAN算法,不需要提前知道聚类簇数量。基于图的聚类算法有谱聚类和近邻传播。谱聚类利用相似度矩阵的特征向量进行聚类,近邻传算法的基本思想是将数据样本点看作网络的节点,然后通过网络中各边的消息传递计算出各样本的聚类中心。与传统的聚类算法相比,近邻传播算法特别适合高维、多类数据的快速聚类,在聚类性能和效率方面都有大幅度的提升。基于混合模型的聚类方法则是假设每组数据都可以通过一个模型来拟合,该方法的好处是最后的聚类结果会给出样本属于每个聚类簇的概率。常见的混合模型有GMM( Gaussian Mixture Model,高斯混合模型)和LDA( Latent Dirichlet Allocation隐狄利克雷分布模型)。以上聚类算法在处理高维数据时会面临很多问题。为了解决这些问题,建议采用子空间聚类和多视角聚类的方法。由上可知,在提前知道聚类簇的数量时,以上聚类算法都可适用,否则可选的算法只有 DBSCAN和近邻传播算法如果聚类结果需要知道样本属于每个聚类簇的概率,则选择基于混合模型的聚类方法:对于高维数据的聚类,子空间聚类和多视角聚类是首选方法。
    时序预测任务中的传统算法有ARMA和 NARMA等,随着机器学习和深度学习的发展,基于SVM、神经网络等的方法也开始流行起来。近几年基于深度学习的时间序列预测主要以循环神经网络为主(例如 DeepAK等),其提高了多变量时间序列的精度,但是在大规模分布式并行方面有不少的挑战。基于CNN架构的时间卷积网络TCN( Temporal Convolutional Net)的计算复杂度要更低,性能更好,另外,如果要解决长时间的序列预测问题,建议采用基于注意力机制的 Transformer模型。
    概率图模型通过在模型中引入隐变量,增强了模型的建模能力,混合高斯模型隐马尔可夫模型、条件随机场都属于概率图模型。概率图模型可以用于分类、聚类、时序预测任务,如相关向量机和朴素贝叶斯可以用于分类任务:隐马尔可夫模型和线性动力系统可以对序列化数据进行建模:而混合高斯模型常用于聚类任务。概率图模型可以为模型和预测结果提供概率解释由于经典机器学习在实际应用过程中需要结
合业务领域知识构建特征工程,这个过程中有很多手工作,因此深度学习方法在不同任务的算法中使用深度多层神经网络从原始数据中学习更好的特征表示,如分类任务中的深度度量学习,聚类任务中的深度学习聚类方法等,取得了比原始算法更好的效果传统决策树也可以与深度学习思想(不是深度神经网)相结合,如DeepPorest,机器学习领域目前正在朝着AAN.的方向发展,很多著名的机器学算法库(如 Saiki earn)都演进出了自动版(如 Auto skeat等。
    其他机器学习任务还包括关联规则分析异常检测和个性化推荐等,关联规析常用的经典算法主要有Amn算法和 FP Growth(Frequent Pattern,wh,项增长)算法,后者在计算速度上更快,异常检测、新样本检测算法用于发理新的数点和异常数据点,常用算法有OneClassSVM、Local Qutlier Factor等, OneClassSVM适用于数据量少的情况,对于高维度特征和非线件问题可以体现其优势Local Qutlier Factor算法对数据分布的假设较弱,对于数据分布不满足假设(如高斯分每等)的情况,建议使用这种算法,推荐场景下,般都是高维稀疏数据,可以采用特征学习与逻辑回归相结合的方法,也可以尝试FM( Factorization Machine,因式分解机)及其深度学习版本 DeepEN。
    此外,还需要从数据标注量的角度来考虑采用哪些算法在有些场景下,标签数据是自动可以获取的,例如,销售量预估场景下,随着时间的推移,真实的销量结果会不断产生,可以用于时序模型的持续选代。在很多场景下,标注未必是准确的,比如对于某网站的评论区文本分类问题,用户的反馈可能是带有不准确性的,还有很多时候,标注量严重不足,尤其在医疗等行业中,针对这些问题,就需要采用半监督、弱监督学习方法。但是,半监督、弱监督也都代表的是学习策略,本质上还是要与每类算法(机器学习,计算机视觉,自然语言处理等)相结合才可以发挥作用。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。