PySpark入門十二 資料清洗之離群值

2021-10-24 09:24:27 字數 2225 閱讀 7435

構造資料

# 導包

from pyspark import sparkcontext

from pyspark.sql.session import sparksession

# 連線

sc = sparkcontext.getorcreate(

)spark = sparksession(sc)

# 生成資料

df_outliers = spark.createdataframe([(

1,144.5

,5.9,33

,),(

2,167.2

,5.4,45

,),(

3,124.1

,5.5,99

,),(

4,342.3

,5.9,21

,),(

5,133.2

,5.7,54

,),]

,['id'

,'weight'

,'height'

,'age'

])

離群值:通俗講 就是與樣本資料顯著偏離的資料,這些資料的存在,對機器學習建立模型是非常不友好的,所以在資料建模之前,會對這些資料做些處理,我一般是會把這些離群值直接捨棄掉 哈哈哈。

找到離群值

離群值的閾值選擇有多種方式,均值、四分位數等等,最普遍的做法是下分位(q1) - 1.5個分位差和上分位(q3)+1.5個分位差,即:

q1 - 1.5iqr 和q3 + 1.5iqr,

其中iqr為q3-q1,q3為第75個百分點,q1為第25個百分點

# 計算每個特徵的上下截斷點

cols =

['weight'

,'height'

,'age'

]bounds =

for col in cols:

col,

[0.25

,0.75],

0.05

)

iqr = quantiles[1]

- quantiles[0]

bounds[col]=[

quantiles[0]

-1.5

* iqr,

quantiles[1]

+1.5

* iqr

]

) 引數解讀

第乙個引數: 列名,

第二個引數: 閾值,0到1之前的數, 當然也可以是個列表, 其中0.5表示為計算中位數

第三個引數: 可以接受的錯誤程度,如果為0 則表示計算乙個準確值,但是代價較大

離群值的界限都繫結在了bounds中,看一眼長啥樣

是乙個字典資料,接下來需要標記離群值

# 標記離群值

在源資料中顯示離群值

列出離群值

PySpark入門十三 資料清洗之描述性統計

描述性統計是熟悉資料的最直接的方法之一,可以讓我們很輕鬆就知道資料中有多少個缺失的觀測資料 平均值 標準差 最大最下值 導包和建立連線的 我就不寫了 載入資料型別模組 import pyspark.sql.types as typ 載入資料 fraud sc.textfile ccfraud.csv...

PySpark入門二 認識RDD

彈性分布式資料集,簡稱為rdd,是不可變jvm物件的分布式集合,spark 就是圍繞rdd而構建的。rdd對物件的作業是非常快速的執行的,這依賴於rdd的計算是依據快取和儲存在記憶體中的模式進行。rdd有兩組並行操作 轉換和動作。轉換是指返回指向新rdd的指標 動作是指在執行計算後返回值。同時,rd...

資料清洗之資料清洗概述

從廣泛的意義上來講,資料是乙個寬泛的概念,包括但不限於 我們要了解資料清洗,就需理解資料的內涵和外延 常見的資料有 其中,比較重要比較常見的分析資料是 資料。這裡重點介紹一些關於 資料的內容。資料 資料物件由屬性 attributes 及其值 value 構成 資料的特徵 什麼是資料清洗 資料清洗是...