本文转载自:http://www.javaxxz.com/thread-359531-1-1.html

机器学习】参数和非参数机器学习算法

什么是参数机器学习算法并且它与非参数机器学习算法有什么不同?

本文中你将了解到参数和非参数机器学习算法的区别。

让我们开始吧。

学习函数

机器学习可以总结为学习一个函数(f)(f),其将输入变量(X)(X)映射为输出变量(Y)(Y)。

Y=f(x)Y=f(x)

算法从训练数据中学习这个映射函数。

函数的形式未知,于是我们机器学习从业者的任务是评估不同的机器学习算法,然后选择好的能拟合潜在的目标函数的算法。

不同的算法对目标函数的形式和学习的方式有不同的估计和偏差。

参数机器学习算法

假设可以极大地简化学习过程,但是同样可以限制学习的内容。简化目标函数为已知形式的算法就称为参数机器学习算法。

通过固定大小的参数集(与训练样本数独立)概况数据的学习模型称为参数模型。不管你给与一个参数模型多少数据,对于其需要的参数数量都没有影响。
— Artificial Intelligence: A Modern Approach,737页

参数算法包括两部分:

选择目标函数的形式。
从训练数据中学习目标函数的系数。

对于理解目标函数来讲,最简单的就是直线了,这就是线性回归里面采用的形式:

b_0+b_1<em>x_1+b_2</em>x_2=0b0+b1<em>x1+b2</em>x2=0

其中b_0b0、b_1b1和b_2b2是直线的系数,其影响直线的斜度和截距,x_1x1和x_2x2是两个输入变量。

把目标函数的形式假设为直线极大地简化了学习过程。那么现在,我们需要做的是估计直线的系数并且对于这个问题预测模型。

通常来说,目标函数的形式假设是对于输入变量的线性联合,于是参数机器学习算法通常被称为“线性机器学习算法”。

那么问题是,实际的未知的目标函数可能不是线性函数。它可能接近于直线而需要一些微小的调节。或者目标函数也可能完全和直线没有关联,那么我们做的假设是错误的,我们所做的近似就会导致差劲的预测结果。

参数机器学习算法包括:

  • 逻辑回归

  • 线性成分分析

  • 感知机


参数机器学习算法有如下优点:

  • 简洁:理论容易理解和解释结果

  • 快速:参数模型学习和训练的速度都很快

  • 数据更少:通常不需要大量的数据,在对数据的拟合不很好时表现也不错


参数机器学习算法的局限性:

  • 约束:以选定函数形式的方式来学习本身就限制了模型

  • 有限的复杂度:通常只能应对简单的问题

  • 拟合度小:实际中通常无法和潜在的目标函数吻合


非参数机器学习算法

对于目标函数形式不作过多的假设的算法称为非参数机器学习算法。通过不做假设,算法可以自由的从训练数据中学习任意形式的函数。

当你拥有许多数据而先验知识很少时,非参数学习通常很有用,此时你不需要关注于参数的选取。
— Artificial Intelligence: A Modern Approach,757页

非参数理论寻求在构造目标函数的过程中对训练数据作最好的拟合,同时维持一些泛化到未知数据的能力。同样的,它们可以拟合各自形式的函数。

对于理解非参数模型的一个好例子是k近邻算法,其目标是基于k个最相近的模式对新的数据做预测。这种理论对于目标函数的形式,除了相似模式的数目以外不作任何假设。

一些非参数机器学习算法的例子包括:

  • 决策树,例如CART和C4.5

  • 朴素贝叶斯

  • 支持向量机

  • 神经网络


非参数机器学习算法的优势:

  • 可变性:可以拟合许多不同的函数形式。

  • 模型强大:对于目标函数不作假设或者作微小的假设

  • 表现良好:对于预测表现可以非常好。


非参数机器学习算法局限性:

  • 需要更多数据:对于拟合目标函数需要更多的训练数据

  • 速度慢:因为需要训练更多的参数,训练过程通常比较慢。

  • 过拟合:有更高的风险发生过拟合,对于预测也比较难以解释。