一、需要掌握哪些大数据算法
原发布者:ninahe916
大数据常用的算法(分类、回归分析、聚类、关联规则)
二、计算机视觉 常用 哪些 机器学习算法
常用的聚类分类算法都有用到
例如神经网络、支持向量机等
时下最火的算法还是deep learning
三、算法的主流研究方向以及分类方法
深入研究算法的主流研究方向,我们首先关注AI算法。AI算法是一个研究领域,旨在通过理论、方法、技术及应用系统来模拟、扩展和延伸人类智能。人工智能作为计算机科学的分支,致力于理解智能本质,并开发出能够以类人智能执行任务的机器。AI算法的特点在于可以从历史数据中学习,自动更新信息,无需人工编程来指定任务执行方式。常见AI算法包括决策树、粒子群算法、随机森林、逻辑回归、支持向量机、遗传算法、朴素贝叶斯、K近邻算法、贪婪算法、K均值算法、Adaboost算法、蚁群算法、神经网伏让络和马尔可夫等。
机器学习(Machine Learning)是另一个核心研究方向,它侧重于设计泛型算法,无需特定编程代码即可从数据中得出结论。机器学习通过算法自动分析数据,构建逻辑模型,从而揭示数据的潜在规律。它是人工智能的基石,使计算机具有学习能力,能够识别模式、分类数据,并进行预测。常见的机器学习算法包括支持向量机、决策树、K近邻算法、神经网络、朴素贝叶斯、梯度提升树、集成学习方法等。
表征学习(Representation Learning)则是通过减少原始数据的冗余信息,提取有效特征,以便进行后续任务处理。这一过程对于处理大量复杂数据尤为重要。表征学习试图模仿人类大脑如何编码和存储信息,探索如何通过缺备局有限样本实现知识的灵活学习和应用。它对于语音、图像识别等任务具有重要意义。
深度学习(Deep Learning)是机器学习的一个子领域,旨在模仿人类大脑的层次结构,自动学习数据的复杂表示。深度学习通过多层神经网络实现,能够解决复杂的模式识别问题,如语音识别、滚蠢图像分类等。深度学习在搜索技术、数据挖掘、自然语言处理、推荐系统等领域展现出强大的应用潜力。
算法的分类可以从多个维度进行,例如按基本算法分类(如枚举、搜索、迭代加深搜索、启发式搜索等),以及按学习方式分类(如监督学习、无监督学习、半监督学习)。每种分类方法都有其特定的应用场景和优势,共同推动了算法领域的深入发展。
四、干货 | 基础机器学习算法
本篇内容主要是面向机器学习初学者,介绍常见的机器学习算法,当然,欢迎同行交流。
哲学要回答的基本问题是从哪里来、我是谁、到哪里去,寻找答案的过程或许可以借鉴机器学习的套路:组织数据->挖掘知识->预测未来。组织数据即为设计特征,生成满足特定格式要求的样本,挖掘知识即建模,而预测未来就是对模型的应用。
特征设计依赖于对业务场景的理解,可分为连续特征、离散特征和组合高阶特征。本篇重点是机器学习算法的介绍,可以分为监督学习和无监督学习两大类。
无监督学习算法很多,最近几年业界比较关注主题模型,LSA->PLSA->LDA 为主题模型三个发展阶段的典型算法,它们主要是建模假设条件上存在差异。LSA假设文档只有一个主题,PLSA 假设各个主题的概率分布不变(theta 都是固定的),LDA 假设每个文档和词的主题概率是可变的。
LDA 算法本质可以借助上帝掷骰子帮助理解,详细内容可参加 Rickjin 写的《 LDA 数据八卦》文章,浅显易懂,顺便也科普了很多数学知识,非常推荐。
监督学习可分为分类和回归,感知器是最简单的线性分类器,现在实际应用比较少,但它是神经网络、深度学习的基本单元。
线性函数拟合数据并基于阈值分类时,很容易受噪声样本的干扰,影响分类的准确性。逻辑回归(Logistic Regression)利用 sigmoid 函数将模型输出约束在 0 到 1 之间,能够有效弱化噪声数据的负面影响,被广泛应用于互联网广告点击率预估。
逻辑回归模型参数可以通过最大似然求解,首先定义目标函数 L ( theta ),然后 log 处理将目标函数的乘法逻辑转化为求和逻辑(最大化似然概率 -> 最小化损失函数),最后采用梯度下降求解。
相比于线性分类去,决策树等非线性分类器具有更强的分类能力,ID3 和 C4.5 是典型的决策树算法,建模流程基本相似,两者主要在增益函数(目标函数)的定义不同。
线性回归和线性分类在表达形式上是类似的,本质区别是分类的目标函数是离散值,而回归的目标函数是连续值。目标函数的不同导致回归通常基于最小二乘定义目标函数,当然,在观测误差满足高斯分布的假设情况下,最小二乘和最大似然可以等价。
当梯度下降求解模型参数时,可以采用 Batch 模式或者 Stochastic 模式,通常而言,Batch 模式准确性更高,Stochastic 模式复杂度更低。
上文已经提到,感知器虽然是最简单的线性分类器,但是可以视为深度学习的基本单元,模型参数可以由自动编码( Auto Encoder )等方法求解。
深度学习的优势之一可以理解为特征抽象,从底层特征学习获得高阶特征,描述更为复杂的信息结构。例如,从像素层特征学习抽象出描述纹理结构的边缘轮廓特征,更进一步学习获得表征物体局部的更高阶特征。
俗话说三个臭皮匠赛过诸葛亮,无论是线性分类还是深度学习,都是单个模型算法单打独斗,有没有一种集百家之长的方法,将模型处理数据的精度更进一步提升呢?当然,Model Ensembe l就是解决这个问题。Bagging 为方法之一,对于给定数据处理任务,采用不同模型/参数/特征训练多组模型参数,最后采用投票或者加权平均的方式输出最终结果。
Boosting为Model Ensemble 的另外一种方法,其思想为模型每次迭代时通过调整错误样本的损失权重提升对数据样本整体的处理精度,典型算法包括 AdaBoost 、GBDT 等。
不同的数据任务场景,可以选择不同的 Model Ensemble 方法,对于深度学习,可以对隐层节点采用 DropOut 的方法实现类似的效果。
介绍了这么多机器学习基础算法,说一说评价模型优劣的基本准则。欠拟合和过拟合是经常出现的两种情况,简单的判定方法是比较训练误差和测试误差的关系,当欠拟合时,可以设计更多特征来提升模型训练精度,当过拟合时,可以优化特征量降低模型复杂度来提升模型测试精度。
特征量是模型复杂度的直观反映,模型训练之前设定输入的特征量是一种方法,另外一种比较常用的方法是在模型训练过程中,将特征参数的正则约束项引入目标函数/损失函数,基于训练过程筛选优质特征。
模型调优是一个细致活,最终还是需要能够对实际场景给出可靠的预测结果,解决实际问题。期待学以致用! 作者 晓惑 本文转自阿里技术,转载需授权