• 机器学习简介


    简单介绍一下机器学习:

      简单理解一下“机器学习”:从字面上,可以想到,让机器去学习,学习什么呢?简单来说其实就是从数据中学习得到一些信息。机器学习能让我们从数据集中受到启发,意思就是,利用计算机来彰显数据背后的真实含义,这就是机器学习的真实含义。机器学习对于任何需要解释并操作数据的领域都

    是很有用的。

      机器学习主要分为两类:监督学习和非监督学习。顾名思义,由名称可以简单理解,监督学习也就是有相应已知数据支持情况下的机器学习,而非监督学习是没有任何知识所支持的机器学习。这样说可能不是那么明白,接着往下理解。

      监督学习又分为两个问题,一个问题是分类,另一个是回归。分类就是利用已知类别的数据来学习一个分类标准,然后利用该分类标准去分类那些未被标识类别的数据;回归主要指的是预测数值型数据,大多数人可能都见过回归的例子——数据拟合曲线:通过给定数据点的最优拟合曲线。由此可以看出,分类和回归都需要有已知数据的支持的,分类算法都要求输入大量已被标识好类别的数据作为算法的训练集,对于机器学习算法都有一个目标变量分类算法中的目标变量就是类别的集合,通常是标称型的数据。而回归算法通常是连续型的

      与监督学习相对应的无监督学习,此时数据没有类别信息,也不会给定目标值。无监督学习也主要包含两类,其一:将数据集合划分成几个由相似对象组成的群组(或类别),这个过程称为聚类;其二是:将寻找描述数据统计值的过程称之为密度估计。此外,无监督学习还可以减少数据特征的位度,以便我们可以使用二维图或三维图更加直地展示数据信息。

      下面贴出一张表格来显示处理这四个问题的机器学习算法:

        

      其中解决某个问题的算法都有好几种,那么就引出了一个问题,该选择何种算法来解决问题呢?

      在选择实际可用的算法时,要考虑两个方面:

    • 目的是什么?也就是说要解决什么问题,解决什么问题就找到相对应的方法。

    • 要分析或收集的数据是什么(数值型或标称型等等)。

      在考虑这两个问题的时候,就可以初步确定要用的算法了。

      首先考虑目的如果要预测目标变量的值,就选择监督学习,否则则选择非监督学习。选择了监督学习之后,思考要分析的数据类型是什么类型的数据,如果目标变量是离散型数据则选择分类算法,如果目标变量是连续型数据则选择回归算法。如果不预测目标变量的值,则选择非监督学习,然后进一步分析是否需要将数据划分为离散的组。如果这是唯一的要求,则选择聚类算法;如果还需要估计数据与每个分组的相似程度,则需要使用密度估计算法。不过这不是一成不变的,比如有时也会使用分类算法来处理回归问题。

      考虑完目的,其次就要考虑数据的问题,要充分了解数据,对实际数据越了解,越容易找到符合实际需求的应用程序。主要该了解数据的特性如下:特征值是离散型变量还是连续型变量特征值是否存在缺失的值,什么原因造成了数据的缺失数据中是否包含异常的值,某个特征发生的频率是怎样的(是否很罕见如大海捞针一样)。了解了这些就可以很好的缩短选择算法的时间。

      通过以上方法只是能最大程度的缩小选择算法的范围,但一般并不存在最好的算法或者可以给出最好结果的算法,同时还要尝试其他的算法去查看效果的好坏。一般来说发现最好算法的关键环节就是反复试错的迭代过程

      接下来说一下开发机器学习应用程序的基本步骤:

    1. 收集数据。机器学习算法都离不开数据,只有有了数据才可以做分类,回归,聚类以及密度估计。
    2. 准备输入数据。再有了数据之后,还要让数据符合机器学习算法的格式要求,根据格式的要求对数据进行处理。
    3. 分析输入数据。这个步骤主要是人工分析得到的数据。主要分析数据是否有空值;数据是否分析出相应的模式或知识;数据中是否存在异常值。这里可以通过一维、二维或三维图形展示来查看数据的差异等。这一步主要作用是确保数据中没有垃圾数据,以便后续步骤更好的进行。
    4. 训练算法。将前面得到的数据输入到机器学习的算法, 从数据中得到相应的信息或知识模式。这里需要将得到的知识存储为计算机可以处理的格式,方便后续步骤使用。如果使用无监督学习,由于不存在目标变量值,因此这一步可以省掉。
    5. 预测算法。这一步是使用步骤4中得到知识模式,来检验算法的性能,评估算法。如果不满意算法的输出结果,可以回到步骤4继续调试来获取好的结果。
    6. 使用算法。将机器学习算法转换为应用程序,去解决实际的问题。这里也要不断地从实际情况中去检验算法的好坏,碰到新的问题,同样需要重复以上步骤进行改进。

    机器学习,主要为了理解数据背后的含义。学习数据中所隐藏着的知识模式,用得到的知识模式反馈到现实的问题中。

         

  • 相关阅读:
    [leetcode]49. Group Anagrams变位词归类
    [leetcode]40. Combination Sum II组合之和(每元素限用一次)
    [leetcode]39. Combination Sum组合之和
    [leetcode]35. Search Insert Position寻找插入位置
    [leetcode]28. Implement strStr()实现strStr()
    [leetcode]25. Reverse Nodes in k-Group每k个节点反转一下
    [leetcode]24. Swap Nodes in Pairs交换节点对
    SVG基础知识 Adobe Illustrator绘制SVG
    Java静态方法和实例方法 java中的数组作为形参传入
    SVG可伸缩的矢量图形
  • 原文地址:https://www.cnblogs.com/kkkwoniu/p/7719462.html
Copyright © 2020-2023  润新知