热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

研究机器学习(MachineLearning)的程序员必知的10大算法

毫无疑问,机器学习/人工智能的子领域在过去几年越来越流行。由于大数据是目前科技领域最热门的趋势,基于这些大规模的数据,机器学习在预测和计算建议方面变得不可思议的强大。最常见的机器学习的例子就是 Netflix(一家在线影片租赁提供商)的算法,它能基于你过去看过的电影来推荐电影,或着 Amazon 的算法,它能基于你过去买的书,来推荐书给你。

那么如果你想进一步了解机器学习,你应该怎样开始呢?对我来说,我的入门是我在哥本哈大学留学时,参加的一个人工智能的课程。我的讲师是丹麦科技大学的一个全职的应用数学和计算机科学的教授,他主要研究逻辑学和人工智能,主要致力于使用逻辑学来对人类的计划,推理,和求解问题的过程进行建模。这个课程是针对理论/核心概念和动手解决问题的讨论。我们所用的课本是人工智能的经典之一: Peter Norvig’s Artificial Intelligence — A Modern Approach,其中涵盖的主题主要包括:智能代理,问题求解,敌对搜索,概率论,多智能体系统,社会AI,哲学/伦理学/人工智能的未来。课程的最后,三个人一组,我们实现了一个简单的基于搜索的代理,能够在虚拟环境下解决运输任务来作为编程项目。

多亏这个课,我学会了大量的知识,并决定继续学习这个专业的主题。在过去的几周里,我参加了旧金山的多个技术讲座,主要是关于深度学习,神经网络,数据结构的。还有一个机器学习的会议,很多该领域的专业人士都在场。最重要的是,我六月初的时候参加了Udacity的介绍机器学习(Intro to Machine Learning )的在线课程,并在前几天刚刚完成。在这篇文章中,我想分享一些我从课程中学习到的最常见的机器学习算法。

机器学习算法可以被分为三大类—监督学习,非监督学习,和强化学习。有监督的学习在数据集(训练集)的属性(标签)已知的条件下是有用的,但是在没有标签时,就失去作用了,需要使用其他方法来进行预测。当我们面临的是没有标记的数据(属性没有预先赋值),并且需要我们发现其中隐含的关系时,非监督学习就会很有用。增强学习介于这两个极端之间——对于每一个预测步骤或动作,都会有某种形式的反馈,但是没有确切的标签或着错误信息。因为这是一个入门课,我并不了解强化学习。但我希望这10个有监督和无监督学习算法就足够引起你的兴趣。

有监督的学习

1.决策树:决策树是一个使用类树图形,或者决策模型和其可能结果的决策支持工具,包括偶然事件的结果,资源成本和效用。看一下下面的图片感受一下它是什么样的。

研究机器学习(Machine Learning)的程序员必知的10大算法

从商业决策的角度来看,大多数时候,一个决策树就是使用最小数量的必须要问的是或不是的问题,来评估做出正确决策的可能性。作为一个方法,它允许你以一个结构化的和系统的方式来处理这个问题,从而得到一个合乎逻辑的结论。

2. 朴素贝叶斯分类:朴素贝叶斯分类是一族基于贝叶斯定理和特征之间的强独立性(朴素)的简单分类器。显著特点是方程式—— P(A|B) 是后验概率,P(B|A) 是似然概率,P(A) 是类的先验概率,P(B) 是预测的先验概率。

研究机器学习(Machine Learning)的程序员必知的10大算法

一些现实中的例子:

  • 标记一个电子邮件为垃圾邮件或非垃圾邮件
  • 将新闻文章分为技术类、政治类或体育类
  • 检查一段文字表达积极的情绪,或消极的情绪?
  • 用于人脸识别软件

3. 普通的最小二乘回归:如果你了解统计学,你以前可能听说过线性回归。最小二乘法是一种进行线性回归的方法。你可以把线性回归当作使用一条直线来拟合一系列的点的任务。有多种可能的方法来做到这一点,最小二乘的策略是这样的——你可以画一条线,然后对于每一个数据点,计算数据点和这条线的垂直距离,然后把它们加起来;拟合的线就是那个总和的距离尽可能小的线。

研究机器学习(Machine Learning)的程序员必知的10大算法

线性是指你用来拟合数据的模型,而最小二乘指的是你正在最小化的误差的度量。

4. 逻辑回归:逻辑回归是一种强大的统计方法,它使用一个或者更多的解释变量对一个二项式结果建模。它通过使用logistic 函数估计概率,这是累积 logistic 分布,来度量分类变量和一个或者更多的自变量之间的关系。

研究机器学习(Machine Learning)的程序员必知的10大算法

通常,回归可以被用于在现实世界的应用,如:

  • 信用评分
  • 度量营销活动的成功率
  • 预测某一产品的收入
  • 在一个特定的日子里会发生地震吗?

5. 支持向量机(SVM):支持向量机是一个二分类算法。给出N维空间的一组二分类的点,支持向量机产生一个 N-1 维的超平面将这些点分成两组。假设你在一张纸上有一些线性可分的二分类的点,支持向量机将会找到一条直线,将这些点分成两类,并位于离所有这些点尽可能远的位置。

研究机器学习(Machine Learning)的程序员必知的10大算法

就规模而言,其中一些最主要的问题已经使用支持向量机解决了(通过适当的修改),如,入广告显示,人类的剪接位点识别,基于图像的性别检测,大规模图像分类等等。

6. 集成方法:集成方法是构建一组分类器,然后通过对预测结果进行加权投票来对新的数据点进行分类。原始的集成方法是贝叶斯平均,但最近的算法包括纠错输出编码,bagging, 和boosting。

研究机器学习(Machine Learning)的程序员必知的10大算法

那么集成方法是怎样工作的,为什么他们会优于单个的模型?

  • 他们拉平了输出偏差:如果你将具有***党倾向的民意调查和具有共和党倾向的民意调查取平均,你将得到一个中和的没有倾向一方的结果。
  • 它们减小了方差:一堆模型的聚合结果和单一模型的结果相比具有更少的噪声。在金融领域,这被称为多元化——多只股票的混合投资要比一只股票变化更小。这就是为什么数据点越多你的模型会越好,而不是数据点越少越好。
  • 它们不太可能产生过拟合:如果你有一个单独的没有过拟合的模型,你是用一种简单的方式(平均,加权平均,逻辑回归)将这些预测结果结合起来,然后就没有产生过拟合的空间了。

非监督学习

7. 聚类算法:聚类是将一组对象进行分组,使得同一组(簇)内的对象相似性远大于不同组之间的相似性。

每一种聚类算法都不太一样,这里有一些:

  • 基于质心的算法
  • 基于连通性的算法
  • 基于密度的算法
  • 概率聚类
  • 降维
  • 神经网络/深度学习

研究机器学习(Machine Learning)的程序员必知的10大算法

8. 主成分分析(PCA):主成分分析是一个统计过程,它使用正交变换,将一组可能相关的变量的一组观测值变换成线性不相关的变量,这些变量称为主成分。

PCA的应用包括压缩,简化数据使它们更容易学习,可视化。注意,选择是否使用主成分分析,领域知识是非常重要的。当数据充满噪声时,主成分分析是不合适的(主成分分析的所有成分都有很高的方差)。

研究机器学习(Machine Learning)的程序员必知的10大算法

9. 奇异值分解(SVD):在线性代数中,SVD是分解一个实数的比较复杂的矩阵。对于一个给定的m*n的矩阵M,存在一个分解M = UΣV,这里U和V是酉矩阵,Σ是一个对角矩阵。

PCA 是 SVD 的一个简单应用,在计算机视觉中,第一个人脸识别算法,就运用了 PCA 和 SVD 算法。使用这两个算法可以将人脸表示为 “特征脸”线性组合,降维,然后通过简单的方法匹配人脸的身份;虽然现代的方法复杂得多,但许多仍然依赖于类似的技术。

研究机器学习(Machine Learning)的程序员必知的10大算法

10. 独立成分分析(ICA):独立成分分析是一种统计方法,用来揭示随机变量集测试,信号集中的隐藏因素。独立成分分析为观测到的多变量的集合定义生成模型,它通常作为大型的样本数据数据库。在这个模型中,数据变量被假定为与一些潜在的未知变量的线性混合,混合系统也不知道。潜在变量被假设为非高斯并且相互独立的,它们被称为所观察到的数据的独立成分。

研究机器学习(Machine Learning)的程序员必知的10大算法

ICA 和 PCA 是相关的,但是它是一种更强大的技术,当那些经典的方法完全失效的时候,它能够从数据源中发现潜在的因素。它的应用包括数字图像,文档数据库,经济指标和心理测量。

现在,继续向前,运用你所理解的算法创造机器学习应用,为各个地方的人们人们提供更好的体验。


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • Windows7企业版怎样存储安全新功能详解
    本文介绍了电脑公司发布的GHOST WIN7 SP1 X64 通用特别版 V2019.12,软件大小为5.71 GB,支持简体中文,属于国产软件,免费使用。文章还提到了用户评分和软件分类为Win7系统,运行环境为Windows。同时,文章还介绍了平台检测结果,无插件,通过了360、腾讯、金山和瑞星的检测。此外,文章还提到了本地下载文件大小为5.71 GB,需要先下载高速下载器才能进行高速下载。最后,文章详细解释了Windows7企业版的存储安全新功能。 ... [详细]
  • 本文介绍了一道经典的状态压缩题目——关灯问题2,并提供了解决该问题的算法思路。通过使用二进制表示灯的状态,并枚举所有可能的状态,可以求解出最少按按钮的次数,从而将所有灯关掉。本文还对状压和位运算进行了解释,并指出了该方法的适用性和局限性。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
author-avatar
小永劲_289
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有