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