99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀數(shù)據(jù)分析中的缺失值處理
數(shù)據(jù)分析中的缺失值處理
2017-12-01
收藏

數(shù)據(jù)分析中的缺失值處理

沒有高質量的數(shù)據(jù),就沒有高質量的數(shù)據(jù)挖掘結果,數(shù)據(jù)值缺失是數(shù)據(jù)分析中經(jīng)常遇到的問題之一。當缺失比例很小時,可直接對缺失記錄進行舍棄或進行手工處理。但在實際數(shù)據(jù)中,往往缺失數(shù)據(jù)占有相當?shù)谋戎?。這時如果手工處理非常低效,如果舍棄缺失記錄,則會丟失大量信息,使不完全觀測數(shù)據(jù)與完全觀測數(shù)據(jù)間產(chǎn)生系統(tǒng)差異,對這樣的數(shù)據(jù)進行分析,你很可能會得出錯誤的結論。

造成數(shù)據(jù)缺失的原因

現(xiàn)實世界中的數(shù)據(jù)異常雜亂,屬性值缺失的情況經(jīng)常發(fā)全甚至是不可避免的。造成數(shù)據(jù)缺失的原因是多方面的:

信息暫時無法獲取。例如在醫(yī)療數(shù)據(jù)庫中,并非所有病人的所有臨床檢驗結果都能在給定的時間內得到,就致使一部分屬性值空缺出來。

信息被遺漏。可能是因為輸入時認為不重要、忘記填寫了或對數(shù)據(jù)理解錯誤而遺漏,也可能是由于數(shù)據(jù)采集設備的故障、存儲介質的故障、傳輸媒體的故障、一些人為因素等原因而丟失。

有些對象的某個或某些屬性是不可用的。如一個未婚者的配偶姓名、一個兒童的固定收入狀況等。

有些信息(被認為)是不重要的。如一個屬性的取值與給定語境是無關。

獲取這些信息的代價太大。

系統(tǒng)實時性能要求較高。即要求得到這些信息前迅速做出判斷或決策。

缺失值的處理要具體問題具體分析,為什么要具體問題具體分析呢?因為屬性缺失有時并不意味著數(shù)據(jù)缺失,缺失本身是包含信息的,所以需要根據(jù)不同應用場景下缺失值可能包含的信息進行合理填充。下面通過一些例子來說明如何具體問題具體分析,仁者見仁智者見智,僅供參考:

“年收入”:商品推薦場景下填充平均值,借貸額度場景下填充最小值;

“行為時間點”:填充眾數(shù);

“價格”:商品推薦場景下填充最小值,商品匹配場景下填充平均值;

“人體壽命”:保險費用估計場景下填充最大值,人口估計場景下填充平均值;

“駕齡”:沒有填寫這一項的用戶可能是沒有車,為它填充為0較為合理;

”本科畢業(yè)時間”:沒有填寫這一項的用戶可能是沒有上大學,為它填充正無窮比較合理;

“婚姻狀態(tài)”:沒有填寫這一項的用戶可能對自己的隱私比較敏感,應單獨設為一個分類,如已婚1、未婚0、未填-1。

缺失的類型

在對缺失數(shù)據(jù)進行處理前,了解數(shù)據(jù)缺失的機制和形式是十分必要的。將數(shù)據(jù)集中不含缺失值的變量稱為完全變量,數(shù)據(jù)集中含有缺失值的變量稱為不完全變量。從缺失的分布來將缺失可以分為完全隨機缺失,隨機缺失和完全非隨機缺失。

完全隨機缺失(missing completely at random,MCAR):指的是數(shù)據(jù)的缺失是完全隨機的,不依賴于任何不完全變量或完全變量,不影響樣本的無偏性。如家庭地址缺失。

隨機缺失(missing at random,MAR):指的是數(shù)據(jù)的缺失不是完全隨機的,即該類數(shù)據(jù)的缺失依賴于其他完全變量。例如財務數(shù)據(jù)缺失情況與企業(yè)的大小有關。

非隨機缺失(missing not at random,MNAR):指的是數(shù)據(jù)的缺失與不完全變量自身的取值有關。如高收入人群的不原意提供家庭收入。

對于隨機缺失和非隨機缺失,刪除記錄是不合適的,隨機缺失可以通過已知變量對缺失值進行估計;而非隨機缺失還沒有很好的解決辦法。

說明:對于分類問題,可以分析缺失的樣本中,類別之間的比例和整體數(shù)據(jù)集中,類別的比例

缺失值處理的必要性

數(shù)據(jù)缺失在許多研究領域都是一個復雜的問題。對數(shù)據(jù)挖掘來說,缺省值的存在,造成了以下影響:

系統(tǒng)丟失了大量的有用信息;

系統(tǒng)中所表現(xiàn)出的不確定性更加顯著,系統(tǒng)中蘊涵的確定性成分更難把握;

包含空值的數(shù)據(jù)會使挖掘過程陷入混亂,導致不可靠的輸出。

數(shù)據(jù)挖掘算法本身更致力于避免數(shù)據(jù)過分擬合所建的模型,這一特性使得它難以通過自身的算法去很好地處理不完整數(shù)據(jù)。因此,缺省值需要通過專門的方法進行推導、填充等,以減少數(shù)據(jù)挖掘算法與實際應用之間的差距。

缺失值處理方法的分析與比較

處理不完整數(shù)據(jù)集的方法主要有三大類:刪除元組、數(shù)據(jù)補齊、不處理。

刪除元組

也就是將存在遺漏信息屬性值的對象(元組,記錄)刪除,從而得到一個完備的信息表。這種方法簡單易行,在對象有多個屬性缺失值、被刪除的含缺失值的對象與初始數(shù)據(jù)集的數(shù)據(jù)量相比非常小的情況下非常有效,類標號缺失時通常使用該方法。

然而,這種方法卻有很大的局限性。它以減少歷史數(shù)據(jù)來換取信息的完備,會丟棄大量隱藏在這些對象中的信息。在初始數(shù)據(jù)集包含的對象很少的情況下,刪除少量對象足以嚴重影響信息的客觀性和結果的正確性;因此,當缺失數(shù)據(jù)所占比例較大,特別當遺漏數(shù)據(jù)非隨機分布時,這種方法可能導致數(shù)據(jù)發(fā)生偏離,從而引出錯誤的結論。

說明:刪除元組,或者直接刪除該列特征,有時候會導致性能下降。

數(shù)據(jù)補齊

這類方法是用一定的值去填充空值,從而使信息表完備化。通?;诮y(tǒng)計學原理,根據(jù)初始數(shù)據(jù)集中其余對象取值的分布情況來對一個缺失值進行填充。數(shù)據(jù)挖掘中常用的有以下幾種補齊方法:

人工填寫(filling manually)

由于最了解數(shù)據(jù)的還是用戶自己,因此這個方法產(chǎn)生數(shù)據(jù)偏離最小,可能是填充效果最好的一種。然而一般來說,該方法很費時,當數(shù)據(jù)規(guī)模很大、空值很多的時候,該方法是不可行的。

特殊值填充(Treating Missing Attribute values as Special values)

將空值作為一種特殊的屬性值來處理,它不同于其他的任何屬性值。如所有的空值都用“unknown”填充。這樣將形成另一個有趣的概念,可能導致嚴重的數(shù)據(jù)偏離,一般不推薦使用。

平均值填充(Mean/Mode Completer)

將初始數(shù)據(jù)集中的屬性分為數(shù)值屬性和非數(shù)值屬性來分別進行處理。

如果空值是數(shù)值型的,就根據(jù)該屬性在其他所有對象的取值的平均值來填充該缺失的屬性值;

如果空值是非數(shù)值型的,就根據(jù)統(tǒng)計學中的眾數(shù)原理,用該屬性在其他所有對象的取值次數(shù)最多的值(即出現(xiàn)頻率最高的值)來補齊該缺失的屬性值。與其相似的另一種方法叫條件平均值填充法(Conditional Mean Completer)。在該方法中,用于求平均的值并不是從數(shù)據(jù)集的所有對象中取,而是從與該對象具有相同決策屬性值的對象中取得。

這兩種數(shù)據(jù)的補齊方法,其基本的出發(fā)點都是一樣的,以最大概率可能的取值來補充缺失的屬性值,只是在具體方法上有一點不同。與其他方法相比,它是用現(xiàn)存數(shù)據(jù)的多數(shù)信息來推測缺失值。

熱卡填充(Hot deck imputation,或就近補齊)

對于一個包含空值的對象,熱卡填充法在完整數(shù)據(jù)中找到一個與它最相似的對象,然后用這個相似對象的值來進行填充。不同的問題可能會選用不同的標準來對相似進行判定。該方法概念上很簡單,且利用了數(shù)據(jù)間的關系來進行空值估計。這個方法的缺點在于難以定義相似標準,主觀因素較多。

K最近距離鄰法(K-means clustering)

先根據(jù)歐式距離或相關分析來確定距離具有缺失數(shù)據(jù)樣本最近的K個樣本,將這K個值加權平均來估計該樣本的缺失數(shù)據(jù)。

使用所有可能的值填充(Assigning All Possible values of the Attribute)

用空缺屬性值的所有可能的屬性取值來填充,能夠得到較好的補齊效果。但是,當數(shù)據(jù)量很大或者遺漏的屬性值較多時,其計算的代價很大,可能的測試方案很多。

組合完整化方法(Combinatorial Completer)

用空缺屬性值的所有可能的屬性取值來試,并從最終屬性的約簡結果中選擇最好的一個作為填補的屬性值。這是以約簡為目的的數(shù)據(jù)補齊方法,能夠得到好的約簡結果;但是,當數(shù)據(jù)量很大或者遺漏的屬性值較多時,其計算的代價很大。

回歸(Regression)

基于完整的數(shù)據(jù)集,建立回歸方程。對于包含空值的對象,將已知屬性值代入方程來估計未知屬性值,以此估計值來進行填充。當變量不是線性相關時會導致有偏差的估計。

期望值最大化方法(Expectation maximization,EM)

EM算法是一種在不完全數(shù)據(jù)情況下計算極大似然估計或者后驗分布的迭代算法。在每一迭代循環(huán)過程中交替執(zhí)行兩個步驟:E步(Excepctaion step,期望步),在給定完全數(shù)據(jù)和前一次迭代所得到的參數(shù)估計的情況下計算完全數(shù)據(jù)對應的對數(shù)似然函數(shù)的條件期望;M步(Maximzation step,極大化步),用極大化對數(shù)似然函數(shù)以確定參數(shù)的值,并用于下步的迭代。算法在E步和M步之間不斷迭代直至收斂,即兩次迭代之間的參數(shù)變化小于一個預先給定的閾值時結束。該方法可能會陷入局部極值,收斂速度也不是很快,并且計算很復雜。

多重填補(Multiple Imputation,MI)

多重填補方法分為三個步驟:

為每個空值產(chǎn)生一套可能的填補值,這些值反映了無響應模型的不確定性;每個值都被用來填補數(shù)據(jù)集中的缺失值,產(chǎn)生若干個完整數(shù)據(jù)集合。

每個填補數(shù)據(jù)集合都用針對完整數(shù)據(jù)集的統(tǒng)計方法進行統(tǒng)計分析。

對來自各個填補數(shù)據(jù)集的結果進行綜合,產(chǎn)生最終的統(tǒng)計推斷,這一推斷考慮到了由于數(shù)據(jù)填補而產(chǎn)生的不確定性。該方法將空缺值視為隨機樣本,這樣計算出來的統(tǒng)計推斷可能受到空缺值的不確定性的影響。該方法的計算也很復雜。

C4.5方法

通過尋找屬性間的關系來對遺失值填充。它尋找之間具有最大相關性的兩個屬性,其中沒有遺失值的一個稱為代理屬性,另一個稱為原始屬性,用代理屬性決定原始屬性中的遺失值。這種基于規(guī)則歸納的方法只能處理基數(shù)較小的名詞型屬性。

就幾種基于統(tǒng)計的方法而言,刪除元組法和平均值法差于熱卡填充法、期望值最大化方法和多重填充法;回歸是比較好的一種方法,但仍比不上hot deck和EM;EM缺少MI包含的不確定成分。值得注意的是,這些方法直接處理的是模型參數(shù)的估計而不是空缺值預測本身。它們合適于處理無監(jiān)督學習的問題,而對有監(jiān)督學習來說,情況就不盡相同了。譬如,你可以刪除包含空值的對象用完整的數(shù)據(jù)集來進行訓練,但預測時你卻不能忽略包含空值的對象。另外,C4.5和使用所有可能的值填充方法也有較好的補齊效果,人工填寫和特殊值填充則是一般不推薦使用的。

不處理

補齊處理只是將未知值補以我們的主觀估計值,不一定完全符合客觀事實,在對不完備信息進行補齊處理的同時,我們或多或少地改變了原始的信息系統(tǒng)。而且,對空值不正確的填充往往將新的噪聲引入數(shù)據(jù)中,使挖掘任務產(chǎn)生錯誤的結果。因此,在許多情況下,我們還是希望在保持原始信息不發(fā)生變化的前提下對信息系統(tǒng)進行處理。

不處理缺失值,直接在包含空值的數(shù)據(jù)上進行數(shù)據(jù)挖掘的方法包括貝葉斯網(wǎng)絡和人工神經(jīng)網(wǎng)絡等。

貝葉斯網(wǎng)絡提供了一種自然的表示變量間因果信息的方法,用來發(fā)現(xiàn)數(shù)據(jù)間的潛在關系。在這個網(wǎng)絡中,用節(jié)點表示變量,有向邊表示變量間的依賴關系。貝葉斯網(wǎng)絡僅適合于對領域知識具有一定了解的情況,至少對變量間的依賴關系較清楚的情況。否則直接從數(shù)據(jù)中學習貝葉斯網(wǎng)的結構不但復雜性較高(隨著變量的增加,指數(shù)級增加),網(wǎng)絡維護代價昂貴,而且它的估計參數(shù)較多,為系統(tǒng)帶來了高方差,影響了它的預測精度。

人工神經(jīng)網(wǎng)絡可以有效的對付缺失值,但人工神經(jīng)網(wǎng)絡在這方面的研究還有待進一步深入展開。

知乎上的一種方案:

4.把變量映射到高維空間。比如性別,有男、女、缺失三種情況,則映射成3個變量:是否男、是否女、是否缺失。連續(xù)型變量也可以這樣處理。比如Google、百度的CTR預估模型,預處理時會把所有變量都這樣處理,達到幾億維。這樣做的好處是完整保留了原始數(shù)據(jù)的全部信息、不用考慮缺失值、不用考慮線性不可分之類的問題。缺點是計算量大大提升。

而且只有在樣本量非常大的時候效果才好,否則會因為過于稀疏,效果很差。

總結

大多數(shù)數(shù)據(jù)挖掘系統(tǒng)都是在數(shù)據(jù)挖掘之前的數(shù)據(jù)預處理階段采用第一、第二類方法來對空缺數(shù)據(jù)進行處理。并不存在一種處理空值的方法可以適合于任何問題。無論哪種方式填充,都無法避免主觀因素對原系統(tǒng)的影響,并且在空值過多的情形下將系統(tǒng)完備化是不可行的。從理論上來說,貝葉斯考慮了一切,但是只有當數(shù)據(jù)集較小或滿足某些條件(如多元正態(tài)分布)時完全貝葉斯分析才是可行的。而現(xiàn)階段人工神經(jīng)網(wǎng)絡方法在數(shù)據(jù)挖掘中的應用仍很有限。值得一提的是,采用不精確信息處理數(shù)據(jù)的不完備性已得到了廣泛的研究。不完備數(shù)據(jù)的表達方法所依據(jù)的理論主要有可信度理論、概率論、模糊集合論、可能性理論,D-S的證據(jù)理論等。


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師考試動態(tài)
數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調,回調的第一個參數(shù)驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }