首页 头条 十大机器学习需要了解的算法

十大机器学习需要了解的算法

Dec 18, 2017 am 10:38 AM
学习 机器 需要

毫无疑问,近些年机器学习和人工智能领域受到了越来越多的关注。随着大数据成为当下工业界最火爆的技术趋势,机器学习也借助大数据在预测和推荐方面取得了惊人的成绩。比较有名的机器学习案例包括Netflix根据用户历史浏览行为给用户推荐电影,亚马逊基于用户的历史购买行为来推荐图书。本文主要介绍了浅谈机器学习需要的了解的十大算法,具有一定借鉴价值,需要的朋友可以参考下。

那么,如果你想要学习机器学习的算法,该如何入门呢?就我而言,我的入门课程是在哥本哈根留学时选修的人工智能课程。老师是丹麦科技大学应用数学和计算机专业的全职教授,他的研究方向是逻辑学和人工智能,主要是用逻辑学的方法来建模。课程包括了理论/核心概念的探讨和动手实践两个部分。我们使用的教材是人工智能的经典书籍之一:PeterNorvig教授的《人工智能——一种现代方法》,课程涉及到了智能代理、基于搜索的求解、对抗搜索、概率论、多代理系统、社交化人工智能,以及人工智能的伦理和未来等话题。在课程的后期,我们三个人还组队做了编程项目,实现了基于搜索的简单算法来解决虚拟环境下的交通运输任务。

我从课程中学到了非常多的知识,并且打算在这个专题里继续深入学习。在过去几周内,我参与了旧金山地区的多场深度学习、神经网络和数据架构的演讲——还有一场众多知名教授云集的机器学习会议。最重要的是,我在六月初注册了Udacity的《机器学习导论》在线课程,并且在几天前学完了课程内容。在本文中,我想分享几个我从课程中学到的常用机器学习算法。

机器学习算法通常可以被分为三大类——监督式学习,非监督式学习和强化学习。监督式学习主要用于一部分数据集(训练数据)有某些可以获取的熟悉(标签),但剩余的样本缺失并且需要预测的场景。非监督式学习主要用于从未标注数据集中挖掘相互之间的隐含关系。强化学习介于两者之间——每一步预测或者行为都或多或少有一些反馈信息,但是却没有准确的标签或者错误提示。由于这是入门级的课程,并没有提及强化学习,但我希望监督式学习和非监督式学习的十个算法足够吊起你的胃口了。

监督式学习

1.决策树:

决策树是一种决策支持工具,它使用树状图或者树状模型来表示决策过程以及后续得到的结果,包括概率事件结果等。请观察下图来理解决策树的结构。

从商业决策的角度来看,决策树就是通过尽可能少的是非判断问题来预测决策正确的概率。这种方法可以帮你用一种结构性的、系统性的方法来得出合理的结论。

2.朴素贝叶斯分类器:

朴素贝叶斯分类器是一类基于贝叶斯理论的简单的概率分类器,它假设特征之前是相互独立的。下图所示的就是公式——P(A|B)表示后验概率,P(B|A)是似然值,P(A)是类别的先验概率,P(B)代表预测器的先验概率。

现实场景中的一些例子包括:

检测垃圾电子邮件

将新闻分为科技、政治、体育等类别

判断一段文字表达积极的情绪还是消极的情绪

用于人脸检测软件

3.最小平方回归:

如果你学过统计课程,也许听说过线性回归的概念。最小平方回归是求线性回归的一种方法。你可以把线性回归想成是用一条直线拟合若干个点。拟合的方法有许多种,“最小平方”的策略相当于你画一条直线,然后计算每个点到直线的垂直距离,最后把各个距离求和;最佳拟合的直线就是距离和最小的那一条。

线性指的是用于拟合数据的模型,而最小平方指的是待优化的损失函数。

4.逻辑回归:

逻辑回归模型是一种强大的统计建模方式,它用一个或多个解释性变量对二值输出结果建模。它用逻辑斯蒂函数估计概率值,以此衡量分类依赖变量和一个或多个独立的变量之间的关系,这属于累积的逻辑斯蒂分布。

通常来说,逻辑回归模型在现实场景中的应用包括:

信用评分

预测商业活动的成功概率

预测某款产品的收益

预测某一天发生地震的概率

5.支持向量机:

支持向量机是一种二分类算法。在N维空间中给定两类点,支持向量机生成一个(N-1)维的超平面将这些点分为两类。举个例子,比如在纸上有两类线性可分的点。支持向量机会寻找一条直线将这两类点区分开来,并且与这些点的距离都尽可能远。

利用支持向量机(结合具体应用场景做了改进)解决的大规模问题包括展示广告、人体结合部位识别、基于图像的性别检查、大规模图像分类等……

6.集成方法:

集成方法是先构建一组分类器,然后用各个分类器带权重的投票来预测新数据的算法。最初的集成方法是贝叶斯平均,但最新的算法包括误差纠正输出编码和提升算法。

那么集成模型的原理是什么,以及它为什么比独立模型的效果好呢?

它们消除了偏置的影响:比如把民主党的问卷和共和党的问卷混合,从中得到的将是一个不伦不类的偏中立的信息。

它们能减小预测的方差:多个模型聚合后的预测结果比单一模型的预测结果更稳定。在金融界,这被称为是多样化——多个股票的混合产品波动总是远小于单个股票的波动。这也解释了为何增加训练数据,模型的效果会变得更好。

它们不容易产生过拟合:如果单个模型不会产生过拟合,那么将每个模型的预测结果简单地组合(取均值、加权平均、逻辑回归),没有理由产生过拟合。

非监督学习

7.聚类算法:

聚类算法的任务是将一群物体聚成多个组,分到同一个组(簇)的物体比其它组的物体更相似。

每种聚类算法都各不相同,这里列举了几种:

基于类心的聚类算法

基于连接的聚类算法

基于密度的聚类算法

概率型算法

降维算法

神经网络/深度学习

8.主成分分析:

主成分分析属于统计学的方法,过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。

主成分分析的一些实际应用包括数据压缩,简化数据表示,数据可视化等。值得一提的是需要领域知识来判断是否适合使用主成分分析算法。如果数据的噪声太大(即各个成分的方差都很大),就不适合使用主成分分析算法。

9.奇异值分解:

奇异值分解是线性代数中一种重要的矩阵分解,是矩阵分析中正规矩阵酉对角化的推广。对于给定的m*n矩阵M,可以将其分解为M=UΣV,其中U和V是m×m阶酉矩阵,Σ是半正定m×n阶对角矩阵。

主成分分析其实就是一种简单的奇异值分解算法。在计算机视觉领域中,第一例人脸识别算法使用了主成分分析和奇异值分解将人脸表示为一组“特征脸(eigenfaces)”的线性组合,经过降维,然后利用简单的方法匹配候选人脸。尽管现代的方法更加精细,许多技术还是于此很相似。

10.独立成分分析:

独立成分分析是一种利用统计原理进行计算来揭示随机变量、测量值或者信号背后的隐藏因素的方法。独立成分分析算法给所观察到的多变量数据定义了一个生成模型,通常这些变量是大批量的样本。在该模型中,数据变量被假定为一些未知的潜变量的线性混合,而且混合系统也未知。潜变量被假定是非高斯和相互独立的,它们被称为所观察到的数据的独立分量。

独立成分分析与主成分分析有关联,但它是一个更强大的技术。它能够在这些经典方法失效时仍旧找到数据源的潜在因素。它的应用包括数字图像、文档数据库、经济指标和心理测量。

现在,请运用你所理解的算法,去创造机器学习应用,改善全世界人们的生活质量吧。

相关推荐:

微信小程序机器人自动客服功能

php开发微信支付与聊天机器人

PHP机器学习库php-ml的实例教程

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

学会彻底卸载pip,使用Python更加高效 学会彻底卸载pip,使用Python更加高效 Jan 16, 2024 am 09:01 AM

不再需要pip?快来学习如何有效卸载pip!引言:pip是Python的包管理工具之一,它可以方便地安装、升级和卸载Python包。然而,有时候我们可能需要卸载pip,可能是因为我们希望使用其他的包管理工具,或者因为我们需要完全清除Python环境。本文将介绍如何有效地卸载pip,并提供具体的代码示例。一、卸载pip的方法下面将介绍两种常见的卸载pip的方法

深入研究matplotlib的色彩映射表 深入研究matplotlib的色彩映射表 Jan 09, 2024 pm 03:51 PM

深入学习matplotlib颜色表,需要具体代码示例一、引言matplotlib是一个功能强大的Python绘图库,它提供了丰富的绘图函数和工具,可以用于创建各种类型的图表。而颜色表(colormap)是matplotlib中一个重要的概念,它决定了图表的配色方案。深入学习matplotlib颜色表,将帮助我们更好地掌握matplotlib的绘图功能,使绘

Pygame入门指南:全面安装和配置教程 Pygame入门指南:全面安装和配置教程 Feb 19, 2024 pm 10:10 PM

从零开始学习Pygame:完整的安装和配置教程,需要具体代码示例引言:Pygame是一个使用Python编程语言开发的开源游戏开发库,它提供了丰富的功能和工具,使得开发者可以轻松创建各种类型的游戏。本文将带您从零开始学习Pygame,并提供完整的安装和配置教程,以及具体的代码示例,让您快速入门。第一部分:安装Python和Pygame首先,确保您的计算机上已

一起学习word根号输入办法 一起学习word根号输入办法 Mar 19, 2024 pm 08:52 PM

在word中编辑文字内容时,有时会需要输入公式符号。有的小伙们不知道在word根号输入的方法,小面就让小编跟小伙伴们一起分享下word根号输入的方法教程。希望对小伙伴们有所帮助。首先,打开电脑上的Word软件,然后打开要编辑的文件,并将光标移动到需要插入根号的位置,参考下方的图片示例。2.选择【插入】,再选择符号里的【公式】。如下方的图片红色圈中部分内容所示:3.接着选择下方的【插入新公式】。如下方的图片红色圈中部分内容所示:4.选择【根式】,再选择合适的根号。如下方的图片红色圈中部分内容所示:

揭秘C语言的吸引力: 发掘程序员的潜质 揭秘C语言的吸引力: 发掘程序员的潜质 Feb 24, 2024 pm 11:21 PM

学习C语言的魅力:解锁程序员的潜力随着科技的不断发展,计算机编程已经成为了一个备受关注的领域。在众多编程语言中,C语言一直以来都备受程序员的喜爱。它的简单、高效以及广泛应用的特点,使得学习C语言成为了许多人进入编程领域的第一步。本文将讨论学习C语言的魅力,以及如何通过学习C语言来解锁程序员的潜力。首先,学习C语言的魅力在于其简洁性。相比其他编程语言而言,C语

从零开始学习Go语言中的main函数 从零开始学习Go语言中的main函数 Mar 27, 2024 pm 05:03 PM

标题:从零开始学习Go语言中的main函数Go语言作为一种简洁、高效的编程语言,备受开发者青睐。在Go语言中,main函数是一个入口函数,每个Go程序都必须包含main函数作为程序的入口点。本文将从零开始介绍如何学习Go语言中的main函数,并提供具体的代码示例。一、首先,我们需要安装Go语言的开发环境。可以前往官方网站(https://golang.org

实现流畅运行CAD所需的配置是什么? 实现流畅运行CAD所需的配置是什么? Jan 01, 2024 pm 07:17 PM

流畅使用cad需要什么配置要想顺利运用CAD软件,需要满足以下配置要求:处理器要求:为了能够流畅运行《文字玩出花》,您需要至少配备一台IntelCorei5或AMDRyzen5以上的处理器。当然,如果您选择更高性能的处理器,将能够获得更快的处理速度和更好的性能。内存是计算机中一个非常重要的组件,它对于电脑的性能和使用体验有着直接的影响。一般来说,我们推荐至少8GB的内存,这样可以满足大部分日常使用的需求。但是,为了获得更好的性能和更流畅的使用体验,建议选择16GB或以上的内存配置。这样可以确保在

快速学会pip安装,从零开始掌握技巧 快速学会pip安装,从零开始掌握技巧 Jan 16, 2024 am 10:30 AM

从零开始学习pip安装,快速掌握技巧,需要具体代码示例概述:pip是Python包管理工具,能够方便地安装、升级和管理Python包。对于Python开发者来说,掌握pip的使用技巧是非常重要的。本文将从零开始介绍pip的安装方法,并给出一些实用的技巧和具体的代码示例,帮助读者快速掌握pip的使用。一、安装pip在使用pip之前,首先需要安装pip。pip的