光滑噪声数据常用的方法_数据挖掘中常用的数据清洗方法
是新朋友嗎?記得先點藍字關注我哦~
數據挖掘中
常用的數據清洗方法
在數據挖掘過程中,數據清洗主要根據探索性分析后得到的一些結論入手,然后主要對四類異常數據進行處理,分別是缺失值(missing value),異常值(離群點),去重處理(Duplicate Data)以及噪音數據的處理。
1.?探索性分析
探索性分析部分,對于整個數據來講是獲得對數據一個初步的認識以及對先驗知識的一個探索分析過程,在我做相關數據挖掘的過程中,主要是利用python相關的科學計算庫進行數據初步的探索,例如數據類型,缺失值,數據集規模,各特征下的數據分布情況等,并利用第三方繪圖庫進行直觀的觀察,以獲取數據的基本屬性與分布情況,另外,通過單變量分析與多變量分析,可以初步探索數據集中各特征之間的關系,以驗證在業務分析階段所提出的假設。
2.?缺失值
數據集中缺失值的獲取方法可以直接通過pandas的自帶的多種方法獲取,在大多數數據集中缺失值都普遍會存在,因此,對于缺失值的處理好壞會直接影響到模型的最終結果。如何處理缺失值,主要依據在缺失值所在屬性的重要程度以及缺失值的分布情況。
①.在缺失率少且屬性重要程度低的情況下,若屬性為數值型數據則根據數據分布情況簡單的填充即可,例如:若數據分布均勻,則使用均值對數據進行填充即可;若數據分布傾斜,使用中位數填充即可。若屬性為類別屬性,則可以用一個全局常量‘Unknow’填充,但是,這樣做往往效果很差,因為算法可能會將其識別為一個全新的類別,因此很少使用。
②.當缺失率高(>95%)且屬性重要程度低時,直接刪除該屬性即可。然而在缺失值高且屬性程度較高時,直接刪除該屬性對于算法的結果會造成很不好的影響。
③.缺失值高,屬性重要程度高:主要使用的方法有插補法與建模法
(1)插補法主要有隨機插補法,多重插補法,熱平臺插補法,以及拉格朗日插值法與牛頓插值法
1>隨機插補法--從總體中隨機抽取某幾個樣本代替缺失樣本
2>多重插補法--通過變量之間的關系對缺失數據進行預測,利用蒙特卡洛方法生成多個完整的數據集,在對這些數據集進行分析,最后對分析結果進行匯總處理
3>熱平臺插補----指在非缺失數據集中找到一個與缺失值所在樣本相似的樣本(匹配樣本),利用其中的觀測值對缺失值進行插補。
優點:簡單易行,準確率較高
缺點:變量數量較多時,通常很難找到與需要插補樣本完全相同的樣本。但我們可以按照某些變量將數據分層,在層中對缺失值實用均值插補
4>拉格朗日差值法和牛頓插值法
(2)建模法
??可以用回歸、貝葉斯、隨機森林、決策樹等模型對缺失數據進行預測。例如:利用數據集中其他數據的屬性,可以構造一棵判定樹,來預測缺失值的值。
一般而言,數據缺失值的處理沒有統一的流程,必須根據實際數據的分布情況,傾斜程度,缺失值所占比例等來選擇方法。在我做數據預處理過程中,除了使用簡單的填充法外與刪除外,更多情況下采用建模法進行填充,主要在于建模法根據已有的值去預測未知值,準確率較高。但建模法也可能造成屬性之間的相關性變大,可能影響最終模型的訓練。
3.?異常值(離群點)
判斷離群點除了可視化分析外(一般箱線圖),還有很多基于統計背景下的方法,且可視化觀察不適合用數據量較多的情況。
3.1?簡單的統計分析
這一步在EDA中完成,只需要利用pandas的describe方法就可以實現,通過數據集描述性統計,發現是否存在不合理的值,即異常值
3.2?3?原則--基于正態分布的離群點檢測
如果數據服從正態分布,在3?原則下,異常值為一組測定值中與平均值的偏差超過3倍標準差的值。如果數據服從正態分布,距離平均值3?之外的值出現的概率為P(|x-u| > 3?) <= 0.003,屬于極個別的小概率事件。如果數據不服從正態分布,也可以用遠離平均值的多少倍標準差來描述。
3.3?基于模型檢測
首先建立一個數據模型,異常是那些同模型不能完美擬合的對象;如果模型是簇的集合,則異常是不顯著屬于任何簇的對象;在使用回歸模型時,異常是相對遠離預測值的對象
3.4?基于距離
通過在對象之間定義臨近性度量,異常對象是那些遠離其它對象的對象
優點:簡單易操作
缺點:時間復雜度為O(m^2),不適用于大數據集情況,參數選擇較為敏感,不能處理具有不同密度區域的數據集,因為它使用全局閾值,不能考慮這種密度的變化
3.5?基于密度
當一個點的局部密度顯著低于它的大部分近鄰時才將其分類為離群點。適合非均勻分布的數據。
優點:給出了對象是離群點的定量度量,并且即使數據具有不同的區域也能夠很好的處理
缺點:時間復雜度O(m^2);參數選擇困難,雖然算法通過觀察不同的k值,取得最大離群點得分來處理該問題,但是,仍然需要選擇這些值的上下界。
3.6?基于聚類
基于聚類的離群點:一個對象是基于聚類的離群點,如果該對象不強屬于任何簇。離群點對初始聚類的影響:如果通過聚類檢測離群點,則由于離群點影響聚類,存在一個問題:結構是否有效。為了處理該問題,可以使用如下方法:對象聚類,刪除離群點,對象再次聚類。
優點:
①?基于線性和接近線性復雜度(k均值)的聚類技術來發現離群點可能是高度有效的 ② 簇的定義通常是離群點的補,因此可能同時發現簇和離群點
缺點:
①?產生的離群點集和它們的得分可能非常依賴所用的簇的個數和數據中離群點的存在性
②?聚類算法產生的簇的質量對該算法產生的離群點的質量影響非常大
處理異常點的方法:
1>刪除異常值----明顯看出是異常且數量較少可以直接刪除
2>不處理---如果算法對異常值不敏感則可以不處理,但如果算法對異常值敏感,則最好不要用這種方法,如基于距離計算的一些算法,包括kmeans,knn之類的。
3>平均值替代----損失信息小,簡單高效。
4>視為缺失值----可以按照處理缺失值的方法來處理
4.?去重處理
對于重復項的判斷,基本思想是“排序與合并”,先將數據集中的記錄按一定規則排序,然后通過比較鄰近記錄是否相似來檢測記錄是否重復。這里面其實包含了兩個操作,一是排序,二是計算相似度。目前在做競賽過程中主要是用duplicated方法進行判斷,然后將重復的樣本進行簡單的刪除處理。
這塊目前看到的博客與國外一些比賽的案例基本都采用直接刪除進行處理,沒有看到過比較有新意的方法。
5.?噪音處理
噪音是被測變量的隨機誤差或者方差,主要區別于離群點。由公式:觀測量(Measurement) = 真實數據(True Data) + 噪聲 (Noise)。離群點屬于觀測量,既有可能是真實數據產生的,也有可能是噪聲帶來的,但是總的來說是和大部分觀測量之間有明顯不同的觀測值。噪音包括錯誤值或偏離期望的孤立點值,但也不能說噪聲點包含離群點,雖然大部分數據挖掘方法都將離群點視為噪聲或異常而丟棄。然而,在一些應用(例如:欺詐檢測),會針對離群點做離群點分析或異常挖掘。而且有些點在局部是屬于離群點,但從全局看是正常的。
對于噪音的處理主要采用分箱法于回歸法進行處理:
(1)?分箱法
分箱方法通過考察數據的“近鄰”來光滑有序數據值。這些有序的值被分布到一些“桶”或箱中。由于分箱方法考察近鄰的值,因此它進行局部光滑。
l 用箱均值光滑:箱中每一個值被箱中的平均值替換。
l 用箱中位數平滑:箱中的每一個值被箱中的中位數替換。
l 用箱邊界平滑:箱中的最大和最小值同樣被視為邊界。箱中的每一個值被最近的邊界值替換。
一般而言,寬度越大,光滑效果越明顯。箱也可以是等寬的,其中每個箱值的區間范圍是個常量。分箱也可以作為一種離散化技術使用.
(2)?回歸法
可以用一個函數擬合數據來光滑數據。線性回歸涉及找出擬合兩個屬性(或變量)的“最佳”直線,使得一個屬性能夠預測另一個。多線性回歸是線性回歸的擴展,它涉及多于兩個屬性,并且數據擬合到一個多維面。使用回歸,找出適合數據的數學方程式,能夠幫助消除噪聲。
原文鏈接:https://blog.csdn.net/jiazericky/java/article/details/8032222
?點“在看”給我一個小心心
總結
以上是生活随笔為你收集整理的光滑噪声数据常用的方法_数据挖掘中常用的数据清洗方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓开发文档_鸿蒙2.0,Harmony
- 下一篇: des和aes相比较有哪些特点_栓流气力