zoukankan      html  css  js  c++  java
  • 参数和非参数机器学习算法(转)

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

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

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

    让我们开始吧。

    学习函数

    机器学习可以总结为学习一个函数(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_0b0b_1b1b_2b2是直线的系数,其影响直线的斜度和截距,x_1x1x_2x2是两个输入变量。

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

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

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

    参数机器学习算法包括:

    • 逻辑回归

    • 线性成分分析

    • 感知机

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

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

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

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

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

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

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

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

    非参数机器学习算法

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

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

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

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

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

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

    • 朴素贝叶斯

    • 支持向量机

    • 神经网络

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

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

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

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

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

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

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

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

      转自:http://wwwbuild.net/DataScienceWeMedia/219846.html

  • 相关阅读:
    前台线程与后台线程的区别
    触发器
    Asp.net AutopostBack 属性
    Spring实战拆书--SpringBean
    侣行APP
    用android去写一个小程序
    java如何使用JUnit进行单元测试
    JDK的安装与配置以及eclipse的使用
    软件工程第一次作业(1)
    软件工程第一次作业(2)
  • 原文地址:https://www.cnblogs.com/shixisheng/p/7656519.html
Copyright © 2011-2022 走看看