简述机器学习

        • 什么是机器学习
        • 机器学习的主要任务
          • 分类
          • 知识表示
          • 回归
          • 非监督学习
            • 聚类
            • 密度估计
          • 机器学习的几个主要算法
        • 如何选择合适的算法
        • 开发机器学习应用程序的步骤
          • 收集数据
          • 准备输入数据
          • 分析输入数据
          • 训练算法
          • 测试算法
          • 使用算法

什么是机器学习

机器学习不是让一些结构披上“人皮”来模仿人的动作,或是人类的感情仿生人。机器学习能让我们从数据集中得到启发,也就是说,用计算机来彰显数据背后真正的含义,我感觉这才是真正的机器学习。
我在某处看到过这样一个假想,具体是在哪看到过的,也记不得了。下面就是假想的一日:假想你想起今天是某位朋友的生日,打算通过邮局给她邮寄一张生日贺卡。你打开浏览器搜索趣味卡片,搜索引擎显示了10个最相关的链接。你认为第2个链接最符合你的要求,点击了这个链接,搜索引擎将记住这次点击,并从中学习以优化下次搜索结果。然后,你检查电子邮件系统,此时垃圾邮件过滤器已经在后台自动过滤垃圾广告邮件,并将其放在垃圾桶内。接着你去商店购买这张生日卡片,并给你朋友的孩子挑选了一些尿不湿。结账时,收银员给了你一张一美元的优惠卷,可以用于购买6罐装的啤酒。之所以你会得到这张优惠卷,是因为款台收费软件基于以前的统计知识,认为买尿布的人往往会买啤酒。然后你去邮局邮局这张贺卡,手写识别软件识别出邮寄地址,并将贺卡发送给正确的邮车。当天你还去了贷款申请机构,查看自己是否能够申请贷款,办事员并不是直接给出结果,而是将你最近的金融活动信息输入计算机,由软件来判断你是否合格。最后,你还去了赌场想找些乐子,步入门前时,尾随你进来的一个家伙被突然出现的保安给拦下。“对不起,先生,我们不得不请您离开赌场,我们不欢迎老千。”
上述提到的场景,都有机器学习软件的存在。

机器学习的主要任务

分类

有很多机器学习算法非常善于分类。首先需要做的是算法训练,及学习如何分类。通常我们为算法输入大量已分类数据作为算法的训练集。训练集是用于训练机器学习算法的数据样本集合。目标变量是机器学习算法的预测结果,在分类算法中,目标变量通常是离散的,而在回归算法中通常是连续型的。训练样本集必须确定目标变量的值,以便机器学习算法可以发现特征和目标变量的关系。我们通常将分类中的目标变量称为类别,并假定分类问题中只存在有限个数的类别。 (注意:特征或属性通常是训练样本集的列,它们是独立测量得到的结果,多个特征联系在一起组成一个训练样本。)

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

知识表示

假如分类程序经过测试满足精确度的要求,是否我们就可以看到机器已经学会了如何区分了呢?这部分工作称为知识表示。

回归

机器学习的另一项任务是回归,它主要用于预测数据型数据。大多数人可能都见过回归的例子—数据拟合曲线:通过给定数据点的最优拟合曲线。分类和回归属于监督学习,之所以称为监督学习,是因为这类算法必须知道预测什么,即目标变量的分类信息。

非监督学习

上述的两种属于监督学习,与监督学习相对应的是非监督学习,此时数据没有类别信息,也不会给定目标值。非监督学习可以减少数据特征的维度,以便我们可以使用二维或三维图形更加直观地展示数据信息。

聚类

在非监督学习中,将数据集合分成由类似的对象组成的多个类的过程被称为聚类

密度估计

将寻找描述数据统计值的过程称之为密度估计。

机器学习的几个主要算法

监督学习算法:
1.k-近邻算法
2.线性回归
3.朴素贝叶斯算法
4.局部加权线性回归算法
5.支持向量机
6.Ridge回归
7.决策树
8.Lasso最小回归系数估计

非监督算法:
1.k-均指
2.最大期望算法
3.DBSCAN
4.Parzen窗设计

如何选择合适的算法

必须考虑下面的两个问题:
1.使用机器学习算法的目的,想要算法完成何种任务
2.需要分析和收集的数据是什么
首先,考虑使用机器学习算法的目的。如果想要预测目标变量的值,则可以选择监督算法,确定选择监督算法后,需进一步确定目标变量类型,如果目标变量是离散型,则可以选分类算法;如果目标变量是连续型的数值,则需要选择回归算法。
如果不想预测目标变量的值,则可选非监督学习算法,进一步分析是否需要将数据划分为离散的组。如果这是唯一的要求,则使用聚类算法;如果还需要估计数据与每个分组的相似程度,则需要使用密度估计算法。一般可根据上述选择恰当的算法,但并非一成不变。

其次,需要考虑的是数据问题。我们应充分了解数据,主要应该了解数据的以下特征:
1.特征值是离散型变量还是连续型变量
2.特征值中是否存在缺失的值,何种原因造成缺失值
3.数据中是否存在异常值,某个特征发生的频率如何(是否罕见的像海底捞针一般)等等。
机器学习算法虽各不相同,但使用算法创建应用程序的步骤却基本类似!!!

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

1.收集数据。

我们可以使用很多方法收集样本数据,如:制作网络爬虫从网站上抽取数据,从RSS反馈或者API中得到信息,设备发送过来的实测数据(风速,血糖等)。提取数据的方法非常的多,为了节省时间和精力,可以使用公开可用的数据源。

2.准备输入数据

得到数据之后,还必须确保数据格式符合要求。此外,还需要为机器学习算法准备特定数据格式,如某些算法要求特征值使用特定的格式,一些算法要求目标变量和特征值是字符串类型,而另一些算法则可能要求是整数类型。与收集数据的格式相比,处理特殊算法要求的格式相对简单得多。

3.分析输入数据

此步骤主要是人工分析以前得到的数据。为了确保前两步有效,最简单的方法是用文本编辑器打开数据文件,查看得到的文件是否为空值。此外,还可以进一步浏览数据,分析是否可以识别出模式;数据中是否存在明显的异常值,如某些数据点与数据集中的其他值存在明显差异。
这一步的作用是确保数据集中没有垃圾数据。如果是在产品化系统中使用机器学习算法并且算法可以处理系统产生的数据格式,或者我们信任数据来源,可以直接跳过第3步。

4.训练算法

机器学习算法从这一步才真正开始学习。根据算法的不同,第4步和第5步是机器学习算法的核心。我们将前两步得到的格式化数据输入到算法,从中抽取知识和信息。这里得到的知识需要存储为计算机可以处理的格式,方便后续步骤使用。
如果使用非监督学习算法,由于不存在目标变量值,故而也不需要训练算法,所有与算法相关的内容都集中在第五步。

5.测试算法

这一步将实际使用第4步机器学习得到的知识信息。为了评估算法,必须测试算法工作的效果。对于监督学习,必须已知用于评估算法的目标变量值;对于非监督学习,也必须用其他色评测手段来检测算法成功率。无论哪种情形,如果不满意算法的输出结果,则可以返回到第4步,改正并加以测试。问题常常会跟数据的收集和准备有关,这时你就跳回第1步重新开始。

6.使用算法

将机器学习算法转换成应用程序,执行实际任务,以检验上述步骤是否可以在实际环境中正常工作。此时如果碰到新的数据问题,同样需要执行上述步骤。

你可能感兴趣的:(简述机器学习)