色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > 檢測和處理異常值的極簡指南

          檢測和處理異常值的極簡指南

          發(fā)布人:數據派THU 時間:2022-05-15 來源:工程師 發(fā)布文章

          來源DeepHub IMBA

          本文是關于檢測和處理數據集中的異常值,主要包含以下四部分內容:


          • 什么是異常值?
          • 為什么檢測異常值很重要?
          • 如何檢測異常值?
          • 如何處理異常值?

          什么是異常值?


          異常值是與其他觀察結果顯著不同的數據點。如下圖所示,橙色數據點與一般分布相去甚遠。我們將此點稱為異常值。
          圖片

          為什么檢測異常值很重要?


          在數據科學項目、統(tǒng)計分析、機器學習應用中檢測異常值非常重要:

          • 異常值會導致分布偏斜。
          • 異常值會嚴重影響數據集的均值和標準差。這些可能會在統(tǒng)計上給出錯誤的結果。
          • 可能導致偏差或影響估計。
          • 大多數機器學習算法在存在異常值的情況下都不能很好地工作。
          • 異常值在欺詐檢測等異常檢測中非常有用,其中欺詐交易與正常交易非常不同。


          特別是在線性問題中,異常值更能顯示出它們的影響。例如下面的例子;左邊的圖片中當 x 變量的值增加時,y 變量的值減小。但是由于異常值,觀察到隨著變量 x 的值增加,變量 y 的值也增加。異常值扭曲了我們的分析結果。
          圖片
          在上面的示例中,如果從數據集中移除異常值,可以獲得更準確、不會被誤導的測試結果。

          如何檢測異常值?


          可以通過許多不同的方式檢測異常值。下面總結了一些常用的方法:

          • 領域的知識
          • 標準差法
          • Z-Score法
          • 箱線圖(四分位距 - IQR)法


          領域的知識
          借助行業(yè)知識,可以了解數據集中的哪個觀察結果可能是異常值。例如; 假設一名房地產經紀人,平均房屋租金為 700 美元。如果房屋租金為 5000 美元,就可以說這是一個異常值。
          標準差法
          在統(tǒng)計學中,標準偏差是衡量一組值的變化量或離散度的量度。低標準差表示這些值趨向于接近集合的平均值,而高標準差表示這些值分布在更寬的范圍內。
          正態(tài)分布如下圖所示。在正態(tài)分布中,數據應該在一個小范圍的值內,高值和低值的異常值較少。
          圖片
          如圖上圖所示,

          • 68.27% 的值在平均值的 +1、-1 標準差范圍內,
          • 95.45% 的值在平均值的 +2、-2 標準差范圍內,
          • 99.73 % 的值在平均值的 +3、-3 標準差范圍內。


          在正態(tài)分布中,預計我們的數據應該遠離平均值 -3、+3 個標準差。因此,有了這些信息,可以指定下限和上限;



          Lower Limit = Mean - 3 * Standart DeviationUpper Limit = Mean + 3 * Standart Deviation

          Z-Score法
          Z-Score也稱為標準分數。該分數有助于了解數據點與平均值之間的標準差。Z-Score是測量單位,它告訴我們數據點與平均值的距離。例如:數據點 A 與平均值相差 2 個標準差。這個 2 就是Z-Score。


          Z score = (x -mean) / std. deviation

          那么如何確定異常值的閾值呢?
          下面再次檢查正態(tài)分布以確定閾值。讓我們看一下標準偏差方法部分中的正態(tài)分布圖。正如上面前提到的,99.7% 的數據在正態(tài)分布的 -3、+3 標準差范圍內,因此我們可以將超出此范圍的數據點視為異常值。
          如果上面語言比較難懂,用下面代碼進行演示可能會更加直觀:























          # Suppose we have a dataset that represents number of siblings.data = [1, 2, 2, 3, 4, 1, 1, 15, 2, 4, 3, 2, 1, 1, 2]
          # In this data set we want to find outliers. Firstly we calculate Z-Score for them.
          import numpy as npmean = np.mean(data) # Find meanstd = np.std(data)   # Find standart deviation
          upper_limit = 3lower_limit = -3outlier = []
          for i in data:  # Find Z-Score  z = (i-mean)/std  print(f'Z-Score of {i} = {z}')  # Check z value is within or not in our range  if (lower_limit > z) or (z > upper_limit):      outlier.append(i)
          print('Outlier in dataset is', outlier)s

          結果如下:
          圖片
          箱線圖(四分位距 - IQR)法

          在統(tǒng)計學中,四分位距 (IQR) 描述了從最低到最高排序的中間 50% 的數據。要找到 IQR,需要先將數據從最低到最高排序。然后將數據分成 4 個相等的部分,并指定 Q1、Q2、Q3 稱為第一、第二和第三四分位數。IQR 是 Q3 和 Q1 之間的差。我們 50% 的數據介于這些四分位數之間。
          圖片
          上圖中:

          • Q1 代表數據的第 25 個百分位。
          • Q2 代表數據的第 50 個百分位。
          • Q3 代表數據的第 75 個百分位。


          例如我們有這樣的數據:[1, 2, 2, 4, 5, 15, 6, 7, 8, 9, 10, 11, 17, 24, 33],我們想要找到 IQR。首先對這個數組進行排序;[1、2、2、4、5、6、7、8、9、10、11、15、17、24、33],然后我們找到四分位數;

          Q1 25th , 4.5Q2 50th , 8.0Q3 75th , 13.0


          計算IQR


          IQR = Q3 - Q1

          現在使用箱線圖法用IQR 值計算上限和下限



          Lower Limit = Q1 - 1.5 * IQRUpper Limit = Q3 + 1.5 * IQR

          之后,如果數據低于下限或高于上限,就可以將此數據點稱為異常值。
          圖片

          如何處理異常值?


          異常值可能是由于數據的內在可變性產生的,所以應該使用一些分析仔細檢查這種類型的異常值, 另外的一些異常值可能是實驗錯誤或數據輸入錯誤等產生的,這些異常值是可以直接刪除的。
          刪除值
          如果異常值是由于輸入或測量數據不正確,無法獲得異常值的真實值,我們可以去除異常值。
          例如在一個記錄人們身高的數據集中,遇到了一個 1.8 厘米的數據。我們知道這在物理上是不可能的??赡苷鎸嵣砀?180 厘米、1.8 米或 185 厘米,但由于我們不知道是哪一個,所以可以將異常值刪除。
          修改值
          如果包含異常值的行中的其他列包含重要信息,可能刪除該行不是一個很好的選擇,所以可以將異常值替換為閾值或中值(異常值對中值影響不大)。
          異常值的對數轉換
          對數轉換,就是將每個變量 x 都替換為 log(x),其中對數的基數被認為是常見的使用基數 10、基數 2 和自然對數 ln。
          而對數轉換與異常值有什么關系呢?
          當異常值是由于數據的內在可變性引起的,我們可能不想刪除或替換它們。因為這些是我們可能需要的數據。但是由于這些異常值,我們無法獲得正態(tài)分布,得到的是偏態(tài)分布。例如,一個包含人們收入數據的數據集。雖然大多數人的收入在 30k 到 100k 之間,但有些人賺了數十億美元。當可視化這樣一個數據集時,觀察到的分布向右傾斜。
          圖片
          在這種情況下,對數轉換可以幫助我們。對數變換不再強調異常值并允許我們潛在地獲得正態(tài)分布。在上圖中的 X 軸上應用對數函數,則偏態(tài)分布接近正態(tài)分布。

          圖片
          在應用對數轉換之前,應該需要再次考慮下是否需要, 因為如果每個變量之間的距離很重要,那么取變量的對數會使距離傾斜,可能產生更大的問題。

          使用其他模型
          我們可以使用基于樹的方法,如隨機森林、決策樹,因為樹型方法只考慮值得分割點,而不考慮兩個值之間得距離,所以相比于線性模型受異常值影響較小。

          總結


          本文介紹了異常值的相關知識,還有如果檢測、處理異常值,在閱讀完本文以后,希望你對異常值有一個大概的了解,并且能夠檢測和處理一般情況下遇到的異常值。


          *博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



          關鍵詞: AI

          相關推薦

          技術專區(qū)

          關閉