700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 《机器学习实战》学习笔记(一):机器学习基础

《机器学习实战》学习笔记(一):机器学习基础

时间:2018-12-09 16:45:20

相关推荐

《机器学习实战》学习笔记(一):机器学习基础

欢迎关注WX公众号:【程序员管小亮】

【机器学习】《机器学习实战》读书笔记及代码 总目录

/TeFuirnever/article/details/99701256

GitHub代码地址:

/TeFuirnever/Machine-Learning-in-Action

——————————————————————————————————————————————————————

目录

欢迎关注WX公众号:【程序员管小亮】本章内容1、何谓机器学习2、关键术语3、机器学习的主要任务4、如何选择合适的算法5、开发机器学习应用程序的步骤6、Python 语言的优势7、NumPy 函数库基础8、总结参考文章

本章内容

机器学习的简单概述机器学习的主要任务学习机器学习的原因Python语言的优势

1、何谓机器学习

什么是机器学习?书中举了一个很有意思的例子,我们来听一下,就当开胃菜了。

最近我和一对夫妇共进晚餐,他们问我从事什么职业,我回应道:“机器学习。”妻子回头问丈夫:“亲爱的,什么是机器学习?”她的丈夫答道:“T-800型终结者。”在《终结者》系列电影中,T-800是人工智能技术的反面样板工程。

哈哈,承包了我一天的笑点,极其学习的概念到底是什么,这个我们在很多博客中都又提到过。

【机器学习】林轩田《机器学习基石》课程学习笔记:第1章 - The Learning Problem中说到【那么什么是机器学习?就是让计算机拥有学习的能力,也就是根据数据积累/计算经验等训练,获得分析解决问题的能力。】【机器学习】《机器学习》周志华西瓜书读书笔记:第1章 - 绪论中说到【正如我们根据过去的经验来判断明天的天气,吃货们希望从购买经验中挑选一个好瓜,那能不能让计算机帮助人类来实现这个呢?机器学习正是这样的一门学科,人的“经验”对应计算机中的“数据”,让计算机来学习这些经验数据,生成一个算法模型,在面对新的情况中,计算机便能作出有效的判断,这便是机器学习。】【深度学习】一篇文章看懂人工智能(Artificial Intelligence)、机器学习(Machine Learning)、深度学习(Deep Learning)中说到【机器学习是实现人工智能的一种方法。大体来讲,机器学习就是用算法真正解析数据,不断学习,然后对世界中发生的事做出判断和预测。此时,研究人员不会亲手编写软件、确定特殊指令集、然后让程序完成特殊任务,相反,研究人员会用大量数据和算法“训练”机器,让机器学会如何执行任务。】

如果你还是不清楚的话,实在是很过分了 😐,在深度学习大火的如今,机器学习也正是出现在人们视野中,现今,机器学习已应用于多个领域,远超出大多数人的想象,比如NLP,再比如推荐系统。

机器学习在日常生活中的应用,从左上角按照顺时针方向依次使用到的机器学习技术分别为:人脸识别、手写数字识别、垃圾邮件过滤和亚马逊公司的产品推荐。

在本书中,给出的定义是:【简单地说,机器学习就是把无序的数据转换成有用的信息。】

传感器和海量数据

虽然已从互联网上获取了大量的人为数据,但最近却涌现了更多的非人为数据。传感器技术并不时髦,已经发展了好多年的传统行业,但是如何将它们接入互联网这确实是新的挑战。地震预测是一个很好的例子,传感器手机了海量的数据,但是如何从这些数据中抽取出有价值的信息是一个非常值得研究的课题。

机器学习非常重要

在过去的半个世纪里,发达国家的多数工作岗位都已从体力劳动转化为脑力劳动。过去的工作基本上都有明确的定义,类似于把物品从A处搬到B处,或者在这里打个洞,但是现在这类工作都在逐步消失。现今的情况具有很大的二义性,类似于“最大化利润”,“最小化风险”、“找到最好的市场策略”……诸如此类的任务要求都已成为常态。虽然可从互联网上获取到海量数据,但这并没有简化知识工人的工作难度。针对具体任务搞懂所有相关数据的意义所在,这正成为基本的技能要求。

2、关键术语

通过构建下面的鸟类分类系统,来对机器学习领域的常用术语进行一个总结。

机器学习的主要任务就是分类。如何判断飞入进食器的鸟是不是象牙喙啄木鸟呢?(任何发现活的象牙喙啄木鸟的人都可以得到5万美元的奖励。)这个任务就是分类,有很多机器学习算法非常善于分类。本例中的类别就是鸟的物种,更具体地说,就是区分是否为象牙喙啄木鸟。

我们决定使用某个机器学习算法进行分类,首先需要做的是算法训练,即学习如何分类。通常我们为算法输入大量已分类数据作为算法的训练集训练集是用于训练机器学习算法的数据样本集合,表1-1是包含六个训练样本的训练集,每个训练样本有4种特征(体重、翼展、脚蹼和后背颜色)、一个目标变量(种属),目标变量是机器学习算法的预测结果,在分类算法中目标变量的类型通常是标称型的,而在回归算法中通常是连续型的。训练样本集必须确定知道目标变量的值,以便机器学习算法可以发现特征目标变量之间的关系。正如前文所述,这里的目标变量是种属,也可以简化为标称型的数值。我们通常将分类问题中的目标变量称为类别,并假定分类问题只存在有限个数的类别

为了测试机器学习算法的效果,通常使用两套独立的样本集:训练数据测试数据。当机器学习程序开始运行时,使用训练样本集作为算法的输入,训练完成之后输入测试样本。输入测试样本时并不提供测试样本目标变量,由程序决定样本属于哪个类别。比较测试样本预测的目标变量值与实际样本类别之间的差别,就可以得出算法的实际精确度。

假定这个鸟类分类程序,经过测试满足精确度要求,是否我们就可以看到机器已经学会了如何区分不同的鸟类了呢?这部分工作称之为知识表示,某些算法可以产生很容易理解的知识表示,而某些算法的知识表示也许只能为计算机所理解。知识表示可以采用规则集的形式,也可以采用概率分布的形式,甚至可以是训练样本集中的一个实例。在某些场合中,人们可能并不想建立一个专家系统,而仅仅对机器学习算法获取的信息感兴趣。此时,采用何种方式表示知识就显得非常重要了。

3、机器学习的主要任务

分类问题的主要任务是将实例数据划分到合适的分类中;回归问题的主要任务是预测数值型数据。分类和回归属于监督学习,之所以称之为监督学习,是因为这类算法必须知道预测什么,即目标变量的分类信息,也就是label。

监督学习相对应的是无监督学习,此时数据没有类别信息,也不会给定目标值。在无监督学习中,将数据集合分成由类似的对象组成的多个类的过程被称为聚类;将寻找描述数据统计值的过程称之为密度估计。此外,无监督学习还可以减少数据特征的维度,以便我们可以使用二维或三维图形更加直观地展示数据信息。

4、如何选择合适的算法

从上面的表格中可以看出,如果我们能确定算法的目的,想要算法完成何种任务,再加上确定需要分析或手机的数据是什么,就能大概确定哪一个算法更适合了。

首先考虑使用机器学习算法的目的。

如果想要预测目标变量的值,则可以选择监督学习算法 如果目标变量是离散型,则可以选择分类器算法如果目标变量是连续型的数值,则需要选择回归算法 如果不想预测目标变量的值,则可以选择无监督学习算法 进一步分析是否需要将数据划分为离散的组。如果这是唯一的需求,则使用聚类算法;如果还需要估计数据与每个分组的相似程度,则需要使用密度估计算法。

其次需要考虑的是数据问题。主要应该了解数据的以下特性:特征值是离散型变量还是连续型变量,特征值中是否存在缺失的值,何种原因造成缺失值,数据中是否存在异常值,某个特征发生的频率如何(是否罕见得如同海底捞针),等等。

一般说来发现最好算法的关键环节是反复试错的迭代过程。

5、开发机器学习应用程序的步骤

机器学习算法开发应用程序通常遵循以下的步骤。

(1) 收集数据

(2) 准备输入数据

(3) 分析输入数据

(4) 训练算法

(5) 测试算法

(6) 使用算法

6、Python 语言的优势

选择Python作为实现机器学习算法的编程语言的原因:

(1) Python的语法清晰;

(2) 易于操作纯文本文件;

(3) 使用广泛,存在大量的开发文档。

7、NumPy 函数库基础

机器学习算法涉及很多线性代数知识,因此在使用Python语言构造机器学习应用时,会经常使用NumPy函数库。如果不熟悉线性代数也不用着急,这里用到线性代数只是为了简化不同的数据点上执行的相同数学运算。将数据表示为矩阵形式,只需要执行简单的矩阵运算而不需要复杂的循环操作。

8、总结

尽管现在引起很多人的注意,但是机器学习算法其实还是一个专业的学科,很多人都是道听途说,仍然有很长的路要走。随着每天我们需要处理的数据在不断地增加,能够深入理解数据背后的真实含义,是数据驱动产业必须具备的基本技能。如果你想走这个方向,就要下定决心,走到黑,加油,共勉。

下一章我们将介绍第一个分类算法——k-近邻算法。

参考文章

《机器学习实战》

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。