zoukankan      html  css  js  c++  java
  • RANSAC(随机一致性采样)原理

    @


    RANSAC主要解决样本中的外点问题,最多可处理50%的外点情况。

    一、基本思想:

    RANSAC通过反复选择数据中的一组随机子集来达成目标。被选取的子集被假设为局内点,并用下述方法进行验证:

    1. 有一个模型适用于假设的局内点,即所有的未知参数都能从假设的局内点计算得出。
    2. 用1中得到的模型去测试所有的其它数据,如果某个点适用于估计的模型,认为它也是局内点。
    3. 如果有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。
    4. 然后,用所有假设的局内点去重新估计模型,因为它仅仅被初始的假设局内点估计过。
    5. 最后,通过估计局内点与模型的错误率来评估模型。

    这个过程被重复执行固定的次数,每次产生的模型要么因为局内点太少而被舍弃,要么因为它比现有的模型更好而被选用。

    在这里插入图片描述

    二、基本步骤

    举个例子:使用RANSAC——拟合直线。假设有N个样本点,采样M次,每次采样K个点(K为求解模型所需的最少的点的个数),求解步骤如下:

    1. 随机选取K个点,因为是直线模型,所以K=2.
      在这里插入图片描述

    2. 使用选取的K个点建模,拟合一条直线
      在这里插入图片描述

    3. 计算其他点到所拟合的模型的距离,距离小于一定阈值的点就作为内点。统计内点个数。
      在这里插入图片描述

    4. 重复1~3步骤M次,找到内点个数最大的模型,即为最优的模型
      在这里插入图片描述

    5. 利用最优模型的所有内点重新估计模型
      在这里插入图片描述

    三、采样次数确定

    打赏

    如果对您有帮助,就打赏一下吧O(∩_∩)O

  • 相关阅读:
    C++利用SOAP开发WebService
    C++中使用soap toolkit访问webService详解
    第一次课堂作业之Circle
    第四次作业(计算器第二步)
    第三次作业之Calculator项目随笔
    C++视频课程小结(3)
    C++视频课程小结(2)
    C++视频课程小结(1)
    第二次作业之视频课程题
    第二次作业之编程题
  • 原文地址:https://www.cnblogs.com/long5683/p/14091507.html
Copyright © 2011-2022 走看看