拉依達準則去除異常資料

2021-10-08 12:33:07 字數 1825 閱讀 8677

拉依達準側(pau』ta criteron)是先假設一組資料中只含有隨機誤差,首先按照一定準側計算標準偏差,按照一定概率確定一定區間,認為不在這個區間的為異常值。

使用資料型別:資料呈正太分布或者近似正太分布。

該實驗中使用正太分布函式確定區間,認為剩餘誤差超過3 σ

\sigma

σ為異常值。

python **實驗:

# encoding:utf-8

'''@author:noodles

2020-7-25 17:00:48

'''import math

import matplotlib.pyplot as plt

import numpy as np

plt.rcparams['font.sans-serif'] = ['simhei'] # 用來正常顯示中文標籤

plt.rcparams['axes.unicode_minus'] = false # 用來正常顯示負號

def pdf(x, mu, sigma):

y = (1.0 / math.sqrt(2 * math.pi * sigma)) * np.exp(-(x - mu) ** 2 / (2 * sigma ** 2))

return y

if __name__ == '__main__':

# generate random num tested

src_data = np.random.randn(100)

src_data[99] = 5 # add one outliers

x = np.sort(src_data)

# step1: get mean

mu = x.mean()

# step2: get standard deviation

sigma = x.std()

# plot histgram of its distribution

y = pdf(x, mu, sigma)

# step3: residual error

re = abs(x - mu)

# step4: remove outliers

good_x =

outliers =

for i, j in zip(re, x):

if i < 3 * sigma:

else:

good_x = np.array(good_x)

good_mu = good_x.mean()

good_sigma = good_x.std()

good_y = pdf(good_x, good_mu, good_sigma)

plt.plot(x, y, c='b', label=u'原始值')

plt.plot(good_x, good_y, c='r', label=u'去除異常值後資料')

plt.title('normalization distribution curve')

plt.legend()

plt.show()

print('the outliers removed:',outliers)

實驗結果:

使用pauta準側第一步你要能夠確定你的資料符合正太分布,或者能夠轉化為正太分布,其次根據自己的需要合理選擇不同的概率分布函式。

python中非法的準則 拉依達準則去除異常資料

1.concept 拉依達準側 pau ta criteron 是先假設一組資料中只含有隨機誤差,首先按照一定準側計算標準偏差,按照一定概率確定一定區間,認為不在這個區間的為異常值。使用資料型別 資料呈正太分布或者近似正太分布。2.舉例實驗 該實驗中使用正太分布函式確定區間,認為剩餘誤差超過3 si...

C 委託拉姆達

using system using system.collections.generic using system.linq using system.text using system.threading.tasks using system.threading namespace 委託拉姆達 ...

達拉崩吧魔改版

久很久以前 演算法突然出現 帶來導論 帶走了智商又消失不見 程式設計十分危險 世間誰最勇敢 一位懵逼兒趕來 大聲喊 我要寫出最高的樹 打出最大的表 搜進最深的遞迴 把ac帶回到面前 老師非常高興 忙問他的技能 年輕人想了想 他說 老師我會 非確定性有窮狀態決策自動機 再來一次 非確定性有窮狀態決策自...