偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

快速找到離群值的三種方法

開(kāi)發(fā) 前端
離群值(Outliers)是指在數(shù)據(jù)集中與其他數(shù)據(jù)點(diǎn)明顯不同或者異常的數(shù)據(jù)點(diǎn)。這些數(shù)據(jù)點(diǎn)可能比其他數(shù)據(jù)點(diǎn)要遠(yuǎn)離數(shù)據(jù)集的中心,或者具有異常的數(shù)值。離群值可能是由于數(shù)據(jù)采集錯(cuò)誤、異常事件、測(cè)量誤差或者其他未知因素引起的。

本文將介紹3個(gè)在數(shù)據(jù)集中查找離群值的Python方法。

離群值(Outliers)是指在數(shù)據(jù)集中與其他數(shù)據(jù)點(diǎn)明顯不同或者異常的數(shù)據(jù)點(diǎn)。這些數(shù)據(jù)點(diǎn)可能比其他數(shù)據(jù)點(diǎn)要遠(yuǎn)離數(shù)據(jù)集的中心,或者具有異常的數(shù)值。離群值可能是由于數(shù)據(jù)采集錯(cuò)誤、異常事件、測(cè)量誤差或者其他未知因素引起的。

離群值的存在可以對(duì)數(shù)據(jù)分析和統(tǒng)計(jì)建模產(chǎn)生重要影響,因?yàn)樗鼈兛赡軐?dǎo)致模型不準(zhǔn)確或者產(chǎn)生誤導(dǎo)性的結(jié)果。

我們先創(chuàng)建一個(gè)演示的數(shù)據(jù)

import pandas as pd
 import matplotlib.pyplot as plt
 
 name = ['John', 'Victor', 'Carlos', 'Leo', 'Kevin', 'Silva', 'Johnson', 'Lewis', 'George', 'Daniel', 'Harry', 'Jordan', 'James']
 salary = [4000, 1000, 2000, 100000, 3500, 6000, 1500, 3000, 2500, 3600, 2100, 1700, 1600]
 
 df = pd.DataFrame({'Name': name, 'Salary': salary})
 
 plt.boxplot(df['Salary'])
 plt.show()

可以看到上面的點(diǎn)就是離群值,下面我們將介紹快速找到它的方法。

四分位極差法

首先找到第一和第三個(gè)四分位數(shù)值,通常記為Q1和Q3。然后用Q3減去Q1計(jì)算四分位差(IQR)。

通過(guò)減去/增加1.5倍IQR來(lái)計(jì)算下界和上界。上下邊界外的值就是離群值

q1 = df['Salary'].quantile(0.25)
 q3 = df['Salary'].quantile(0.75)
 iqr = q3 - q1
 
 lower_bound = q1 - 1.5 * iqr
 upper_bound = q3 + 1.5 * iqr
 
 outliers = df[(df['Salary'] < lower_bound) | (df['Salary'] > upper_bound)]

1.5倍IQR的閾值通常是一種常用的標(biāo)準(zhǔn),閾值的選擇可以根據(jù)具體情況進(jìn)行調(diào)整。有時(shí)候,也可以選擇更嚴(yán)格或更寬松的閾值,以適應(yīng)特定的數(shù)據(jù)分析需求。

標(biāo)準(zhǔn)偏差法

標(biāo)準(zhǔn)偏差法(Standard Deviation Method)使用數(shù)據(jù)的標(biāo)準(zhǔn)差來(lái)判斷數(shù)據(jù)點(diǎn)是否偏離了數(shù)據(jù)。上界和下界是均值和3倍標(biāo)準(zhǔn)差的加減。

他的方法如下:

計(jì)算平均值和標(biāo)準(zhǔn)偏差: 首先,計(jì)算數(shù)據(jù)的平均值(Mean)和標(biāo)準(zhǔn)偏差(Standard Deviation)。平均值代表了數(shù)據(jù)的中心位置,標(biāo)準(zhǔn)偏差衡量了數(shù)據(jù)的分散程度。

確定閾值: 定義一個(gè)閾值,通常是標(biāo)準(zhǔn)偏差的倍數(shù)(通常為2或3倍標(biāo)準(zhǔn)偏差)。這個(gè)閾值決定了什么樣的數(shù)據(jù)點(diǎn)被認(rèn)為是離群值。

識(shí)別離群值: 計(jì)算每個(gè)數(shù)據(jù)點(diǎn)與平均值之間的差值,然后將這個(gè)差值與閾值比較。如果差值超過(guò)了閾值,數(shù)據(jù)點(diǎn)被認(rèn)為是離群值。

mean = df.Salary.mean()
 std = df.Salary.std()
 
 upper_bound = mean + 3 * std
 lower_bound = mean - 3 * std
 
 outliers = df[(df['Salary'] < lower_bound) | (df['Salary'] > upper_bound)]

標(biāo)準(zhǔn)偏差法的優(yōu)點(diǎn)在于簡(jiǎn)單易懂,而且不需要假設(shè)數(shù)據(jù)分布的形狀。但需要注意以下幾點(diǎn):

  • 通常情況下,閾值使用2或3倍標(biāo)準(zhǔn)偏差作為閾值,但這個(gè)值可能需要根據(jù)具體情況進(jìn)行調(diào)整。
  • 這種方法對(duì)于正態(tài)分布的數(shù)據(jù)集效果較好,但對(duì)于偏斜分布的數(shù)據(jù),可能會(huì)導(dǎo)致誤判。
  • 標(biāo)準(zhǔn)偏差法可能不適用于小樣本,因?yàn)闃?biāo)準(zhǔn)偏差在小樣本中可能不夠穩(wěn)定。

Z-分?jǐn)?shù)法

Z-分?jǐn)?shù)(Z-Score)法測(cè)量了數(shù)據(jù)點(diǎn)與數(shù)據(jù)集平均值之間的偏差,以標(biāo)準(zhǔn)化方式表示這個(gè)偏差。對(duì)于每個(gè)數(shù)據(jù)點(diǎn),計(jì)算它與平均值之間的差值,然后將這個(gè)差值除以標(biāo)準(zhǔn)偏差,得到Z-分?jǐn)?shù)。如果z-score大于3.0或小于-3.0,則該值可歸類(lèi)為離群值。

我們可以直接使用scipy提供的函數(shù)來(lái)進(jìn)行計(jì)算

from scipy import stats
 
 df['Salary_zscore'] = stats.zscore(df['Salary'])
 filtered_df = df[(df['Salary_zscore'] <= 3) & (df['Salary_zscore'] >= -3)]

Z-分?jǐn)?shù)法適用于各種類(lèi)型的數(shù)據(jù)分布,不需要假設(shè)數(shù)據(jù)分布的形狀。并且提供了標(biāo)準(zhǔn)化的度量,使得不同數(shù)據(jù)集之間的離群值比較更加容易。

總結(jié)

以上是可以快速找到離群值的統(tǒng)計(jì)學(xué)方法,除此以外,還有一些機(jī)器學(xué)習(xí)的方法例如:

DBSCAN(Density-Based Spatial Clustering of Applications with Noise): DBSCAN是一種密度聚類(lèi)算法,也可用于檢測(cè)離群值。它根據(jù)數(shù)據(jù)點(diǎn)的密度來(lái)識(shí)別離群值,將密度較低的點(diǎn)視為離群值。

LOF(Local Outlier Factor): LOF是一種局部離群值因子方法,用于檢測(cè)局部區(qū)域內(nèi)的離群值。它考慮了每個(gè)數(shù)據(jù)點(diǎn)周?chē)木植棵芏扰c相鄰點(diǎn)的密度之間的比率,從而識(shí)別離群值。

Isolation Forest: Isolation Forest是一種基于隨機(jī)森林的離群值檢測(cè)方法,它通過(guò)構(gòu)建樹(shù)結(jié)構(gòu)來(lái)識(shí)別離群值。由于使用了隨機(jī)性,它對(duì)高維數(shù)據(jù)和大數(shù)據(jù)集非常有效。

但是這些方法執(zhí)行的速度會(huì)很慢,如果對(duì)于速度要求比較嚴(yán)格還是需要謹(jǐn)慎選擇。

責(zé)任編輯:華軒 來(lái)源: DeepHub IMBA
相關(guān)推薦

2009-07-08 12:56:32

編寫(xiě)Servlet

2021-09-11 22:54:32

Windows 11Windows微軟

2010-09-14 15:10:49

CSS注釋

2022-07-13 16:06:16

Python參數(shù)代碼

2009-12-11 18:49:39

預(yù)算編制博科資訊

2024-11-15 07:00:00

Python發(fā)送郵件

2011-04-18 15:32:45

游戲測(cè)試測(cè)試方法軟件測(cè)試

2023-08-14 17:58:13

RequestHTTP請(qǐng)求

2011-06-10 10:43:12

Ubuntu應(yīng)用安裝

2009-06-23 10:45:18

Hibernate支持

2021-07-13 12:31:27

IT組織改進(jìn)首席技術(shù)官

2023-05-16 16:07:07

大數(shù)據(jù)數(shù)據(jù)管理工具

2009-07-23 15:17:54

JDBC連接Acces

2016-09-09 13:07:56

CentOSJDKLinux

2021-09-10 18:09:42

SQL注入漏洞網(wǎng)絡(luò)攻擊

2021-10-09 06:59:36

技術(shù)MyBatis數(shù)據(jù)

2010-10-20 13:52:07

SQL Server數(shù)

2021-12-20 07:11:26

Java List排序 Java 基礎(chǔ)

2022-04-27 08:01:15

FastAPI配置日志

2010-09-08 13:29:48

CSS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)