日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据预处理过程

發布時間:2023/12/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据预处理过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? 數據預處理過程會占用很多時間,雖然麻煩但也是必不可少且非常重要的一步。在數據能用于計算的前提下,我們希望數據預處理過程能夠提升分析結果的準確性、縮短計算過程,這是數據預處理的目的。本文只說明這些預處理方法的用途及實施的過程,并不涉及編程方面內容,預處理的過程可以用各種各樣的語言編程實現來實現。我個人始終是秉持著這樣的觀點:沒有任何一種方法可以一成不變的被應用于任何任務中,依據實際任務選擇、調整處理方法是最佳的。

? ? ? ? 數據預處理方法可以大致分為四類:數據清理、數據集成、數據變換和數據規約。

1.數據清理

? ? ? ? 數據清理主要針對數據數值上的各種異常情況的處理,根據數值異常情況的不同,數據清理常見的有以下:缺失值處理、離群和噪聲值處理、異常范圍及類型值處理。

1.1 缺失值處理

? ? ? ?缺失值使數據記錄丟失了部分信息,一些魯棒性不佳的模型也會因為缺失值而導致無法計算數據。缺失值的處理,一般有以下兩種思路:丟棄和估計。

  • 丟棄

? ? ? ?你可以只丟棄缺失項處的值,也可以丟棄包含缺失項的整條數據記錄,這得看該條數據記錄上其它的數據是否有價值,尤其是在數據樣本較少的情況下,需要權衡一番。

  • 估計? ? ?

? ? ? ?不想丟棄缺失值時,對缺失值進行估計是必要的。估計的方法有多種,最直接的是讓有經驗的人員手工填寫,除此之外其它的常見方法有如下幾種:

? ? ? ?(1)? 替代。用缺失值所處屬性上全部值的平均值(此時也可以加權重)、某個分位值代替。對于時間序列,則可以用相鄰數據記錄處值(或平均值)替代。

? ? ? ?(2) 填充。 可以用與缺失值記錄“相似”記錄上的值來填充缺失值,不過這里需要先定義“相似”,這可能會是一個棘手的問題,用K最鄰近、聚類等方法估計缺失值都是這種思想。對于時間序列,則可以用插值的方法,包括線性和非線性插值。

? ? ? ?(3) 基于統計模型的估計。基于非缺失的值構建統計模型,并對模型參數進行估計,然后再預測缺失處的值。

1.2 離群和噪聲值處理

? ? ? ?實際上噪聲含括的范圍比較廣泛,對計算過程無用或造成干擾的都可以稱為噪聲,像1.1節中所說的缺失值、1.3節中說的異常范圍及類型值均屬于噪聲的范疇,之所以在這里和離群點放在一起討論,是想說一下噪聲和離群點間的關系。

? ? ? ?離群點則是指與數據總體特征差別較大的。離群點是否是噪聲需要在實際的應用場景中判斷,比如像建立系統總體的模型,那么離群點就可以視為噪聲,它對模型的創建毫無用處,甚至會影響模型的準確性。而在一些模式識別領域中,那么就要考慮離群點是噪聲,還是對模式創建有用的點,因為模式總是針對少量樣本的。

? ? ? ?上面關于離群點的說明中,我覺得應該有一個“離群點數據量”的問題,個別與數據總體特征差別較大的點我們可以稱為離群點,但如果有相當一部分量與數據總體特征差別較大的點,那此時就要考慮這些點能不能被稱為離群點了。

? ? ? ?相比于處理離群點,識別離群點是一個更重要的問題。識別離群點的方法有很多,比如基于統計學的方法、基于距離的檢測、基于密度的監測(如DBSCAN聚類法)等,本文中不涉及這方面的內容,故不作詳解介紹。

? ? ? ?噪聲的處理可以針對具體情況進行,離群點處理前先要判斷該點是否是有用的,若是無用點則可以當做噪聲處理,若是有用的則保留。

1.3 異常范圍及類型值處理

? ? ? ?異常范圍類型是指記錄數據超過了當前場景下屬性可取值的范圍,比如記錄一個人的身高為300cm,或者月收入為負值,這顯然也是不合理的。異常類型值是指屬性取值類型記錄錯誤,比如記錄一個人的身高為“超重”。

? ? ? ?對于以上兩種情況,如果數據記錄異常是有規律的,比如身高記錄下的數據依次為“312,365,373...”那么可能原紀錄是“112,165,173...”。如果異常值是隨機的,那么可以將這些異常值當做缺失值處理。

2.數據集成

? ? ? ?數據集成主要是增大樣本數據量。

2.1 數據拼接

? ? ?? 數據拼接在數據庫操作中較為常見,它將多個數據集合為一個數據集。數據拼接依賴的是不同數據集間有相同的屬性(或關鍵字或其它的特征)(不同類型數據庫下拼接的原則可能不同,如關系型數據庫、半關系型數據庫和非關系型數據庫下)。

3.數據變換

? ? ? ?數據變換包含的方法眾多,作用也不盡相同。數據變換的目的可以簡單的概括為改變數據的特征,方便計算及發現新的信息(這個概括可能不太合適。。。)。常見的數據變換過程包含以下方法:離散化、區間化、二元化、規范化(有的地方也成稱為標準化)、特征轉換與創建、函數變換。

3.1 離散化

? ? ? ?當我們不太關心值的小范圍變化,或者想要將連續屬性當成離散屬性處理時,可以使用離散化方法,這可以簡化計算,提高模型準確率。? ? ? ?

? ? ? ? 一般來說離散化是將排序數據劃分為多個空間,例如將 [0,10] 離散為[0,2),[2,4),[4,6),[6,8),[8,10],這樣可以將一個連續取值的屬性轉換為離散取值的屬性來處理。

? ? ? ?我們還可以將一個取值比較“密”的離散屬性進一步離散化,這是離散化中的另外一種情況,例如一個離散屬性的取值集合為{0,1,2,3,4,5,6,7,8,9,10},那么此時可以將該取值集合進一步離散化為{0,1,2},{3,4,5},{6,7,8},{9,10}。

? ? ? ?在實際應用時,對于標量型取值,可以將每個離散區間用一個新的值表示,不管是采用取中位值還是求平均等方法;而對于標稱型取值,可以重新定義一組標稱取值表示,例如 {極差,差,較差},{一般},{較好,好,極好},可以重新定義成{下},{中},{下},也可以選取其中一個值來代替整體,如 {差},{一般},{好}

? ? ? ?離散化過程需要考慮兩點:(1)如何確定離散區間(集合)的個數 (2)如何將取值映射到離散化后的區間(集合)中。為了方便以下不再單獨強調集合,統一稱為區間。

? ? ? ?針對第一個問題,可以采用非監督和監督的離散化方法來確定離散區間的個數,一旦離散集合劃分完畢,那么對于第二個問題,直接將數據映射到其分類值上即可。監督和非監督的區別在于區間劃分過程是否利用樣本類別信息,一般來說利用類別信息能達到更好的區間劃分結果,但計算量也會大一些。

? ? ? ?非監督的離散方法主要包括等寬離散化、等頻率離散化、聚類離散化等,離散過程不利用樣本的分類信息。

  • 等寬離散化。使每個離散區間據有相同的寬度。類似于將 [0,10] 離散為[0,2),[2,4),[4,6),[6,8),[8,10]的過程
  • 等頻離散化。等頻離散化過程確保每個區間內包含相同的樣本數。
  • 聚類離散化。利用算法自身優化目標進行,聚類完成后每個簇就對應著一個區間,常用的如K均值聚類。

? ? ? ?監督的離散化方法主要包括,基于熵(或信息增益)的區間離散化、卡方分裂算法離散化等。這里只介紹基于一種簡單的基于熵的離散過程。

  • 基于熵的離散化。設是樣本集中包含的樣本個數,是樣本集中類別的總數,是劃分的第個區間中的樣本個數,是第個區間中屬于類別的個數,則第個區間的熵可以定義為:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ?其中,是第個區間中類別所占樣本的比例。區間劃分完成后,總的熵是各個區間熵的加權平均,即

?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ?其中,是各個區間中樣本的占比,n為劃分的區間個數。依據以上的定義,一種連續屬性區間離散化過程為:

(1) 把區間上每個值看做分割點,將樣本集劃分為兩部分,尋找使得總體熵最小的一種劃分方式。

(2) 選擇已劃分的兩個區間中熵最大的一個,繼續步驟(1)

(3)當劃分區間達到指定數目,或者滿足指定終止條件(如區間劃分后總體的熵變化小于指定閾值)時停止區間劃分

? ? ? ? 對于多維屬性,可以將其每一維上的值進行離散化,然后組合起來得到離散的多維空間。實際上離散化方法分類遠不止監督和非監督這兩種,感興趣的同學可以參考這篇文章(https://blog.csdn.net/CalCuLuSearch/article/details/52751218)進行更詳細的了解,后面如果有需要的話再單獨寫文章介紹離散化過程。

3.2?二元化

? ? ? 有一些算法中要求屬性為二元屬性(例如關聯模式算法),即屬性的取值只能為0或1(當然其它二元取值形式都可以,如Yes和No,只是都可以轉化為0和1表示),此時就要用到屬性二元化的過程。??

? ? ? 二元化的過程是用多個二元屬性來表示一個多元屬性。假設屬性取值有個,則將整數區間?中的每個值唯一的賦予該屬性的每個取值,如果該屬性的取值是有序的,則賦值的過程也必須按順序賦值,然后將這個值用二進制表示,共需要?(結果向上取整)個二進制位。例如一個具有5個取值的屬性{awful,poor,ok,good,great}可以用3個二元屬性、、表示

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? 以上的二元化過程可能會導致屬性間關系復雜化,例如上表中屬性和是相關的,因為“good”值需要這兩個屬性來表示。這種情況下可以為每一個取值引入一個二元屬性,比如下表中的方式

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ?當一個屬性取值數量較多時,這種做法會引入過多的屬性值,此時可以在二元化之前先進行離散化,減少屬性取值。

3.3?規范化

? ? ??數據規范化是調整屬性取值的一些特征,比如取值范圍、均值或方差統計量等,這在一些算法中很重要。常見的規范化方位有:最小-最大規范化、z-score規范化、小數定標規范化。

  • 最小-最大規范化

? ? ? 該方法是對原始數據的線性變換,將數值映射到[0,1]上,如身高(cm)和體重(kg)的取值范圍相差較大,在鄰近度分析中就需要進行最小-最大規范化,消除量綱(單位)的影響。該過程為

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? 其中、分別為屬性取值的最小值和最大值

  • z-score規范化

? ? ?該方法也成為標準差規范化,處理后屬性取值的均值為0,方差為1。該過程為

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ?其中、分別為屬性的均值和標準差。當數據中存在一些離群點時,上述的規范化方式受離群點影響較大,此時可以用中位數代替均值,用絕對偏差代替標準差,弱化離群點的影響。絕對偏差的定義為

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

  • 小數定標規范化

? ? ?該方法通過移動小數點的位置,將數值映射到[-1,1]上。該過程為

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ?其中表示小數點移動的位數,它取決于屬性取值絕對值中的最大值。如屬性取值的最大、最小值分別為-987、678,則應該為3。

3.4?特征轉換與創建

? ? ? 對有一些時間序列,可以通過傅里葉變換、小波變換、EMD分解等方法得到數據的頻域或其它類型特征,這能幫助我們從另一個角度分析問題,例如EMD分解在經濟學上就有較多的應用。采用這一類方法時,一個比較重要的問題是如何解釋在頻域或時域上得到的新特征。

? ? ? 假如屬性集中包含“質量”和"體積”這兩種屬性,那么可以利用“密度=質量/體積“的方法得到密度屬性,這樣就創建了一個新的屬性。當然,需不需要這么做完全取決于目的。

3.5?函數變換

? ? ??函數變換是一個比較寬泛的說法,上面的規范化過程也是一種函數變換過程。我們可以依據需求,選擇函數來處理數據,例如當屬性取值比較大時,可以用log函數來處理數據。

4.數據規約

? ? ? ?數據規約的目的是減少數據量,降低數據的維度,刪除冗余信息,提升分析準確性,減少計算量。數據規約包含的方法有:數據聚集、抽樣、維規約。

4.1 數據聚集

? ? ? ?數據聚集是將多個數據對象合并成一個數據對象,目的是為了減少數據及計算量,同時也可以得到更加穩定的特征。聚集時需要考慮的問題是如何合并所有數據記錄上每個屬性上的值,可以采用對所有記錄每個屬性上的值求和、求平均(也可以加權重)的方式,也可以依據應用場景采用其它方式。比如一家全球零售商,如果統計一天之中全球范圍內所有店的全部銷售數據,那么數據量會比較大且不是很有必要,此時可以將一個店內一天的銷售數據進行聚集,得到一條或有限條銷售數據,然后再匯總。

? ? ? ?進行數據聚集時可能會丟失數據細節,也許這些細節正是你所關注的,這點尤為需要注意。

4.2 數據抽樣

? ? ? ?在數據預處理中提抽樣,實際上就是重抽樣了,目的就是為了獲取數據樣本中的一部分用于計算,減少計算負擔。重抽樣的方式與一般抽樣一致。

4.3?維規約

? ? ? ?維規約方法是為了減少屬性的個數,上面提到的由質量和體積得到密度是一種維規約方式。當屬性為標稱類型時,沒有“密度、質量、體積”這種數值上的聯系,但是也可能存在其它的聯系來進行維規約,例如將“機械學科、自動化學科、材料學科”同一歸為“工程學”。

? ? ? ?更一般的,是采用一些數據降維的方法。數據降維的方法有很多,本文不打算在此處詳細說明降維的方法,后面會單獨寫一篇文章來說明數據降維的方法。有興趣的同學可以先看看這篇文章https://www.cnblogs.com/guoyaohua/p/8855636.html

小結? ?

? ?數據預處理是為了得到 tidy data ,但預處理過程絕不僅僅只是以上的內容,很多處理過程與數據分析目的緊密結合的,本文只是簡要的介紹一些常見的數據預處理過程。

總結

以上是生活随笔為你收集整理的数据预处理过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。