根据高斯分布的偏度去除数据

问题描述 投票:0回答:0

我有一个树簇点云数据集,其中一些点云有墙与之相连。我注意到这些连接到墙壁的树的直方图经常在一侧倾斜,并且当它靠近墙壁数据点时曲线变得平坦。我创建了一个方法来删除倾斜数据,但它也会从具有完美数据传播的集群中删除一些数据,当曲线几乎接触到 x 轴时。 这就是我现在做的。

  1. 取数据的均值和标准差。
  2. 计算z分数。
  3. 检查 z 分数是否大于 2 或小于 -2。
  4. 如果条件满足获取坐标并将其附加到列表中,直到所有集群都被检查过

是否有任何其他方法可以消除数据中的偏斜,同时保持集群具有良好的数据分布?

这是我试过的。该代码用于 x 轴,但我在 y 轴上应用相同的方法并合并结果

xlist <- list()
ylist <- list()
i = 1
idx = base::unique(lasThinned$treeID)
il <- length(idx)
while (i<il){
  check <- filter_poi(lasThinned,treeID == i)
  XMean<-mean(check$X)
  Xstd<-sd(check$X)
  xz <- (check$X-XMean)/ Xstd
  j = 1
  xZindex = list()
  while (j <= length(xz)){
    if (xz[j] < -2 || xz[j] > 2) {
      xZindex[[j]] <- j
    }
    j = j + 1
  }
  xzList <- xZindex[lengths(xZindex) != 0]
  testx <- list()
  testy <- list()
  for (xidx in xzList){
    testx <- append(testx,check$X[xidx])
    testy <- append(testy,check$Y[xidx])
  }
  xlist <- append(xlist,testx)
  ylist <- append(ylist,testy)
  i = i + 1
}

xaxis <- filter_poi(lasThinned, (!X %in% xlist) & (!Y %in% ylist))
r normal-distribution lidar gaussian-mixture-model
© www.soinside.com 2019 - 2024. All rights reserved.