日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python离群点检测方法分几类_数据分析 第五篇:离群点检测

發布時間:2023/12/20 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python离群点检测方法分几类_数据分析 第五篇:离群点检测 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

離群點(outlier)是指和其他觀測點偏離非常大的數據點,離群點是異常的數據點,但是不一定是錯誤的數據點。確定離群點對于數據分析會帶來不利的影響,比如,增大錯誤方差、影響預測和影響正態性。

從散點圖上可以直觀地看到離群點,離群點是孤立的一個數據點;從分布上來看,離群點遠離數據集中其他數據點。

在數據處理過程中,檢測離斷點的方法,通常有Z-score 和 IQR。

一,Z-score方法

在介紹Z-score方法之前,先了解一下3?原則,這個原則有個前提條件:數據需要服從正態分布。

在3?原則下,如果觀測值與平均值的差值超過3倍標準差,那么可以將其視為異常值。正負3?的概率是99.7%,那么距離平均值3?之外的值出現的概率為P(|x-u| > 3?) <= 0.003,屬于極個別的小概率事件。

如果數據不服從正態分布,那么可以用遠離平均值的多少倍標準差來描述,倍數就是Z-score。Z-score以標準差為單位去度量某一原始分數偏離平均數的距離,它回答了一個問題:"一個給定分數距離平均數多少個標準差?",Z-score的公式是:

Z-score = (Observation — Mean)/Standard Deviation

z = (X — μ) / σ

Z-score需要根據經驗和實際情況來決定,通常把遠離標準差3倍距離以上的數據點視為離群點,也就是說,把Z-score大于3的數據點視作離群點,Python代碼的實現如下:

importnumpy as npimportpandas as pd

defdetect_outliers(data,threshold=3):

mean_d=np.mean(data)

std_d=np.std(data)

outliers=[]for y indata_d:

z_score= (y - mean_d)/std_dif np.abs(z_score) >threshold:

outliers.append(y)return outliers

二,IQR方法

四分位點內距(Inter-Quartile Range,IQR),是指在第75個百分點與第25個百分點的差值,或者說,上、下四分位數之間的差,計算IQR的公式是:

IQR = Q3 ? Q1

IQR是統計分散程度的一個度量,分散程度通過需要借助箱線圖來觀察,通常把小于 Q1 - 1.5 * IQR 或者大于 Q3 + 1.5 * IQR的數據點視作離群點,探測離群點的公式是:

outliers =? value < ( Q1 - 1.5 * IQR )? or value > ( Q3 + 1.5 * IQR )

這種探測離群點的方法,是箱線圖默認的方法,箱線圖提供了識別異常值/離群點的一個標準:

異常值通常被定義為小于?QL- l.5 IQR?或者 大于?Qu+ 1.5 IQR的值,QL稱為下四分位數,?Qu稱為上四分位數,IQR稱為四分位數間距,是Qu上四分位數和QL下四分位數之差,其間包括了全部觀察值的一半。

箱線圖的各個組成部分的名稱及其位置如下圖所示:

箱線圖可以直觀地看出數據集的以下重要特性:

中心位置:中位數所在的位置就是數據集的中心,從中心位置向上或向下看,可以看出數據的傾斜程度。

散布程度:箱線圖分為多個區間,區間較短時,表示落在該區間的點較集中;

對稱性:如果中位數位于箱子的中間位置,那么數據分布較為對稱;如果極值離中位數的距離較大,那么表示數據分布傾斜。

離群點:離群點分布在箱線圖的上下邊緣之外。

使用Python實現,參數sr是Series類型的變量:

defdetect_outliers(sr):

q1= sr.quantile(0.25)

q3= sr.quantile(0.75)

iqr= q3-q1 #Interquartile range

fence_low = q1-1.5*iqr

fence_high= q3+1.5*iqr

outliers= sr.loc[(sr < fence_low) | (sr >fence_high)]return outliers

參考文檔:

總結

以上是生活随笔為你收集整理的python离群点检测方法分几类_数据分析 第五篇:离群点检测的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。