根据不同的计算结果要求,机器学习可分成若干种。这些不同的目的决定了机器学习在实际应用中可分成不同模型和分类。
前面已经提到,机器学习还是一门涉及多个领域的交叉学科,也是多个领域的新兴学科,因此,它在实践中会用到不同学科中经典的研究方法,即算法。
3.2.1 机器学习的算法流程
首先需要知道的是,对于机器学习来说,一个机器学习的过程是一个完整的项目周期,其中包括数据的采集、数据的特征提取与分类,以及之后采用何种算法去创建机器学习模型,从而获得预测数据。整个机器学习的算法流程如图3-2所示。
图3-2 机器学习的算法流程
在一个机器学习的完整流程中,整个机器学习程序会使用数据去创建一个能够对数据进行有效处理的学习“模型”。这个模型可以动态地对本身进行调整和反馈,从而较好地对未知数据进行分类和处理。
一个完整的机器学习项目包含以下内容:
l 输入数据:通过自然采集的数据集,包含被标识的和未被标识的部分,作为机器学习的最基础部分。
l 特征提取:通过多种方式对数据的特征值进行提取。一般而言,包含特征越多的数据,机器学习设计出的模型就越精确,处理难度也越大。因此恰当地寻找一个特征大小的平衡点是非常重要的。
l 模型设计:模型设计是机器学习中最重要的部分,根据现有的条件,选择不同的分类,采用不同的指标和技术。模型的训练更多的是依靠数据的收集和特征的提取,这点需要以上各部分的支持。
l 数据预测:通过对已训练模式的认识和使用,使得学习机器能够用于研究开发、模拟和扩展人的多重智能的方法、理论和技术。
整个机器学习的流程是一个完整的项目生命周期,每一步都是以上一步为基础进行的。
3.2.2 基本算法的分类
根据输入的不同数据和对数据的处理要求,机器学习会选择不同种类的算法对模型进行训练。算法训练的选择没有特定的模式,一般而言,只需要考虑输入的数据形式和复杂度以及使用者模型的使用经验,之后据此进行算法训练,从而获得更好的学习结果。
根据基本算法的训练模式,可将算法分成以下几类(图3-3):
l 无监督学习:完全黑盒训练的一种训练方法,对于输入的数据在运行结束前没有任何区别和标识,也无法进行分类。完全由机器对数据进行识别和分类,形成特有的分析模型。训练过程完全没有任何指导,分析结果也是不可控的。
l 有监督学习:输入的数据被人为地分类,被人为地标记和识别。通过对人为标识的数据进行学习,不断修正和改进模型,使模型能够对给定的标识后的数据进行正确分类,达到分类的标准。
l 半监督学习:通过混合有标识数据和无标识数据,创建同一模型对数据进行分析和识别,算法的运行介于有监督和无监督之间,最终使得全部输入数据能够被区分。半监督学习主要用于有特征值缺失的数据分析。
l 强化学习:通过输入不同的标识数据,使用已有的机器学习数据模型,进行学习、反馈并修正现有模型,从而建立一个新的能够识别输入数据的模型算法。
不同的算法有不同的目的和要求。机器学习在实际使用时有很多算法可供选择,而不同的算法又有很多的修正和改变。对于某个特定的问题,选择一个符合数据规则的算法是很困难的。
一般目前用得比较多的是有监督学习和无监督学习,但是由于大数据的普及,更多的数据会产生大量的特征值缺失,因此未来的一段时间,半监督学习逐渐变得热门起来。