《机器学习实战1》

2017.2.27
第一章 《机器学习基础》

思维导图

在这里插入图片描述

1、关键术语的解释

特征:测量所有可测属性,而后再挑选出重要部分,也可以称作属性
分类:机器学习的主要任务就是分类,即根据目标变量对特征进行分类
训练集:通常我们为算法输人大量已分类数据作为算法的训练集。训练集是用于训练机器学习算法的数据样本集合
训练样本:特征或者属性通常是训练样本集的列,它们是独立测量得到的结果,多个特征联系在一起共同组成一个训练样本
目标变量:目标变量是机器学习算法的预测结果,在分类算法中目标变量的类型通常是标称型的,而在回归算法中通常是连续型的
测试集:当机器学习程序开始运行时,使用训练样本集作为算法的输人,训练完成之后输人测试样本。测试过程提供的样本集合即为测试集
知识表示:假定分类程序,经过测试满足精确度要求,是否我们就可以看到机器巳经学会了如何区分不同的鸟类了呢?这个过程称为知识表示,知识表示可以采用规则集的形式,也可以采用概率分布的形式。

监督学习:机器只需从输入数据中预测合适的模型,并从中计算出目标变量的结果。主要任务是将实例黎据划分到合适的分类中。机器学习的另一项任务是回归,它主要用于预测数值型数据。大多数人可能都见过回归的例子— 数据拟合曲鉍:通过给定数据点的最优拟合曲线。分类和回归属于监督学习,之所以称之为监督学习,是因为这类算法必须知道预测什么,即目标变量的分类信息。

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

2、学习算法分类

在这里插入图片描述
选择算法的方法:

首先考虑使用机器学习算法的目的
如果想要预测目标变量的值,则可以选择监督学习算法,否则可以选择无监督学习算法。确定选择监督学习算法之后,需要进一步确定目标变量类型,如果目标变量是离散型,如是/否、1/2/3、― 冗或者红/黄/黑等,则可以选择分类器算法;如果目标变量是连续型的数值,如0.0~ 100.00、-999999或者+00-00等,则需要选择回归算法。

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

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

收集数据:使用很多方法收集样本数据,如:制作网络爬虫从网站上抽取数据等
准备输入数据:得到数据之后,还必须确保数据格式符合要求,采用的python标志的list列表的
格式,使用这种标准数据格式可以融合算法和数据源,方便匹配操作
分析输入数据:此步骤主要是人工分析以前得到的数据。为了确保前两步有效,最简单
的方法是用文本编辑器打开数据文件,査看得到的数据是否为空值。此外,还可以进一步浏览数
据,分析是否可以识别出模式;数据中是否存在明显的异常值,如某些数据点与数据集中的其他
值存在明显的差异
训练算法:将前两步得到的格式化数据输入到算法,从中抽取知识或信息。这里得到的知识需要
存储为计算机可以处理的格式,方便后续步骤使用。如果使用无监督学习算法,由于不存在目标变量值,故而也不需要训练算法,所有与算法相关的内容都集中在第5步。
测试算法:这一步将实际使用第4步机器学习得到的知识信息。为了评估算法,必须测试算
法工作的效果。对于监督学习,必须已知用于评估算法的目标变量值;对于无监督学习,也必须用
其他的评测手段来检验算法的成功率。无论哪种情形,如果不满意算法的输出结果,则可以回到第
4步,改正并加以测试。问题常常会跟数据的收集和准备有关,这时你就必须跳回第1步重新开始。
使用算法:将机器学习算法转换为应用程序,执行实际任务,以检验上述步骤是否可以
在实际环境中正常工作。此时如果碰到新的数据问题,同样需要重复执行上述的步骤。

4、总结:

学习机器学习算法,必须了解数据实例,每个数据实例由多个特征值组成。分类是基本的机
器学习任务,它分析未分类数据,以确定如何将其放人已知群组中。为了构建和训练分类器,必
须首先输人大量巳知分类的数据,我们将这些数据称为训练样本集。

5、问题

非监督学习还是不懂,什么是非监督学习,如果说是不需要有一个最终结果,那么它这种学习方式又有什么用呢???

机器(计算机)学习分为有监督和无监督两个类,基本上可以从他们会不会得到一个特定的标签(label)输出来区分。
这里标签指的是用来描述某一个物体属性的话语。比如人类有两种,我们要区分这两种人,就根据生理特征,分别对两种人打上标签,一种是[男人],另一种是[女人]。

有监督学习(Supervised Learning)
先来问题化地解释一下有监督学习:你有一些问题和他们的答案,你要做的有监督学习就是学习这些已经知道答案的问题。然后你就具备了经验了,这就是学习的成果。然后在你接受到一个新的不知道答案的问题的时候,你可以根据学习得到的经验,得出这个新问题的答案。(试想一下高考不正是这样,好的学习器就能有更强的做题能力,考好的分数,上好的大学…)。
我们有一个样本数据集,如果对于每一个单一的数据根据它的特征向量我们要去判断它的标签(算法的输出值),那么就是有监督学习。通俗的说,有监督学习就是比无监督学习多了一个可以表达这个数据特质的标签。

我们再来看有监督学习,分为两个大类:
1.回归分析(Regression Analysis):回归分析,其数据集是给定一个函数和它的一些坐标点,然后通过回归分析的算法,来估计原函数的模型,求出一个最符合这些已知数据集的函数解析式。然后它就可以用来预估其它未知输出的数据了,你输入一个自变量它就会根据这个模型解析式输出一个因变量,这些自变量就是特征向量,因变量就是标签。 而且标签的值是建立在连续范围的。

2.分类(Classification):其数据集,由特征向量和它们的标签组成,当你学习了这些数据之后,给你一个只知道特征向量不知道标签的数据,让你求它的标签是哪一个?其和回归的主要区别就是输出结果是离散的还是连续的。**

无监督学习(Unsupervised Learning)
“Because we don’t give it the answer, it’s unsupervised learning”。
还是先来问题化地解释一下无监督学习:我们有一些问题,但是不知道答案,我们要做的无监督学习就是按照他们的性质把他们自动地分成很多组,每组的问题是具有类似性质的(比如数学问题会聚集在一组,英语问题会聚集在一组,物理…)。

所有数据只有特征向量没有标签,但是可以发现这些数据呈现出聚群的结构,本质是一个相似的类型的会聚集在一起。把这些没有标签的数据分成一个一个组合,就是聚类(Clustering)。比如Google新闻,每天会搜集大量的新闻,然后把它们全部聚类,就会自动分成几十个不同的组(比如娱乐,科技,政治…),每个组内新闻都具有相似的内容结构。

无监督学习还有一个典型的例子就是鸡尾酒会问题(声音的分离),在这个酒会上有两种声音,被两个不同的麦克风在不同的地方接收到,而可以利用无监督学习来分离这两种不同的声音。注意到这里是无监督学习的原因是,事先并不知道这些声音中有哪些种类(这里的种类就是标签的意思)。

而且鸡尾酒问题的代码实现只要一行,如下:
在这里插入图片描述
[注]:内容参考吴恩达在Coursera上的机器学习课程。

自己的思考(举例)

监督学习,比如上述的高考,每天学习指定的书本上的知识点,知道高考会考的这些知识点,那么我通学习课本的知识,就知道对应知识点的答案,就能在高考上写出正确的答案出来。

非监督学习,依旧是高考,但是不是学习课本上的知识,学习的是课外知识,看课外的书,并不知道这些课外知识高考会不会考到,也就是学习的途中不能给出高考会考的知识点的答案,但是这些课外知识存在可能性对结果产生影响,这种数据直接内在的联系,就是所谓的非监督学习。

猜你喜欢

转载自blog.csdn.net/u012414189/article/details/84953803