关于数据预处理的7个重要知识点,全在这儿了!
導讀:今天這篇文章是「大數據」內容合伙人周蘿卜關于《Python數據分析與數據化運營》的一篇讀書筆記。在大數據公眾號后臺對話框回復合伙人,免費讀書、與50萬「大數據」同行分享你的洞見。
作者:周蘿卜來源:大數據(ID:hzdashuju)數據預處理是數據化運營過程中的重要環節,它直接決定了后續數據工作的質量和價值輸出。那么數據預處理有哪些鐵則或者經驗呢?我這里整理如下,與君共勉!
01 數據清洗:4種處理缺失數據的方法
所謂數據清洗,主要處理的就是缺失值、異常值和重復值。清洗,就是對數據集通過丟棄、填充、替換、去重等操作,達到去除異常、糾正錯誤、補足缺失的目的。
數據缺失通常有兩種情況:
一種是數據行記錄的缺失,這通常是數據記錄丟失,很難找回;
另一種是數據列值的缺失,可能由于某些原因,導致的數據不完整。
這里主要討論數據列植的缺失情況,通常有如下4種處理思路:
1. 丟棄
這種方法最簡單明了,直接刪除整行或者整列帶有缺失值的記錄。但是這種丟棄意味著會減少數據特征,弊端也十分明顯。
如下情況,不宜直接使用丟棄的方法:
數據集總體存在大量數據記錄不完整情況而且比例較大,比如超過10%,此時刪除這些缺失值,就意味著會損失過多的有用信息。
帶有缺失值的數據記錄大量存在著明顯的數據分布規律或特征,比如帶有缺失值的數據記錄是我們的目標標簽主要集中在一類或者幾類中,如果此時刪除這些數據記錄,將會使得對應類別的數據樣本丟失大量數據,導致模型過擬合或者分類不準確。
2. 補全
相對于丟棄而言,補全則是一種更加合理的處理方法。通過一定的方法將缺失的數據補上,從而形成完整的數據記錄。
常用的補全方法有:
統計法:對于數值型數據,可以使用均值、加權平均值、中位數等方法補全;而對于分類型數據,一般會是用類別眾數最多的數值補足。
模型法:更多的時候,我們會基于其他字段,將缺失字段作為目標變量進行預測,從而達到最為可能的補全值。
專家補全:對于一些專業性非常強的數據,可以通過自學業界專家,來補全缺失數據,這種方法在很多情況下也是一種非常重要的補全途徑。
其他方法:例如隨機法、特殊值法,多重填補法等。
3. 真值轉換法
在某些情況下,我們可能無法得知缺失值的分布規律,而且也無法應用上面的方法進行補全;或者我們認為當前的缺失記錄也是數據的一種規律,不應該輕易的對缺失數據進行處理,那么此時就可以使用真值轉換法來處理。
這種方法的觀點是,我們承認缺失值的存在,并且把數據缺失也作為數據分布規律的一部分看待,將變量的實際值和缺失值都作為輸入維度參與后續的數據處理和模型計算中。但是真實值是可以直接參與計算的,缺失值通常無法參與運算,因此需要對缺失值進行真值轉換。
例如對于性別一列,現在存在男、女和未知(空值)三個狀態,我們就可以把該列轉換為性別_男(0),性別_女(1)和性別_未知(2)。
4.不處理
對于缺失值,不做任何處理,也是一種處理缺失值的思路。這種方式主要取決于后續的模型運算,很多模型對于缺失值有容忍度或靈活的處理方法,因此在數據預處理階段可以不作處理。
02 數據轉換
分類數據和順序數據是常見的數據類型,需要很好的轉換這兩種類型數據。
分類數據:分類數據是值某些數據屬性只能歸于某一類別的非數值型數據,例如性別中的男,女就是分類數據。
順序數據:順序數據只能歸于某一類有序類別的非數值型數據,例如用戶的價值度分為高、中、低等。
分類數據和順序數據要參與模型運算,通常都會轉化為數值類數據。而將非數值型數據轉換為數值型數據的最佳方法是:將所有分類或順序變量的值域從一列多值的形態轉換為多列只包含真值的形態,其中國真值可以用 True、False 或0、1的方式來表示。
比如:
| 01 | 男 |
| 02 | 女 |
轉換后:
| 01 | 1 | 0 |
| 02 | 0 | 1 |
而之所以不能直接用數字來表示不同的分類和順序數據,是因為我們無法準確還原不同類別信息之間的信息差異和相互關聯性。
03 數據降維
數據降維就是降低數據的維度數量,從而簡化我們的訓練難度和減小特征之間的關聯性產生的影響。
1. 基于特征選擇的降維
基于特征選擇的降維指的是根據一定規則和經驗,直接選取原有維度的一部分參與后續的計算和建模過程,用選擇的維度代替所有的維度,整個過程不產生新的維度。
經驗法:根據業務專家或數據專家的以往經驗、實際數據情況、業務理解程度等進行綜合考慮,從而達到降低數據維度的目的。
測算法:通過不斷測試多種維度選擇參與計算,通過結果來反復驗證和調整,并最終找到最佳特征方案。
基于統計分析的方法:通過相關性分析不同維度間的線性相關性,在相關性高的維度中進行人工去除或篩選;或通過計算不同維度間的互信息量,找到具有較高互信息量的特征集,然后去除或留下其中的一個特征。
機器學習算法:通過機器學習算法得到不同特征的特征值或權重,然后再根據權重來選擇較大的特征。
2. 基于特征轉換的降維
基于特征轉換的降維是按照一定的數學變換方法,把給定的一組相關變量通過數學模型將高緯空間的數據點映射到低維度空間中,然后利用映射后變量的特征來表示原有變量的總體特征,最主要的方法就是主成分分析法。
PCA(主成分分析):主成分分析的基本方法是按照一定的數學變換方法,把給定的一組相關變量通過線性變換轉成另一組不相關的變量,這些新的變量按照方差依次遞減的順序排列。
3. 基于特征組合的降維
基于特征組合的降維,實際上是將輸入特征與目標預測變量做擬合的過程,它將輸入特征經過運算,并得出能對目標變量做出很好解釋的復合特征,這些特征不是原有的單一特征,而是經過組合和變換后的新特征。
但是其實特征組合的方法,很多時候并不能減少特征的數量,反而可能會增加特征。因此從嚴格意義上講,特征組合不屬于降維的過程,而是特征工程中與降維并行的模塊。
04 解決樣本分布不均衡
所謂的不均衡指的是不同類別的樣本量差異非常大,樣本類別分布不均衡主要出現再與分類相關的建模問題上。
樣本類別分布不均衡從數據規模上可以分為大數據分布不均衡和小數據分布不均衡兩種。
大數據分布不均衡:這種情況下整體數據規模不大,只是其中的小樣本類的占比較少。但是從每個特征的分布來看,小樣本也覆蓋了大部分或全部的特征。
小數據分布不均衡:這種情況下整體數據規模小,并且占據少量樣本比例的分類數量也少,這會導致特征分布的嚴重不均衡。
可以通過過抽樣和欠抽樣的方法來解決樣本不均衡的問題:
過抽樣:又稱為上采樣,其通過增加分類中少數類樣本的數量來實現樣本均衡,最直接的方法是簡單復制少數類樣本以形成多條記錄。
欠抽樣:又稱為下采樣,其通過減少分類中多數類樣本的數量來實現樣本均衡,最直接的方法是隨機去掉一些多數類樣本來減少多數類的規模。
05 解決數據的共線性問題
所謂共線性問題指的就是輸入的自變量之間存在較高的線性相關度,共線性問題會導致回歸模型的穩定性和準確性大大降低。此外過多無關的維度參與計算也會浪費大量的計算資源。
解決共線性的常用方法有如下幾種:
1. 增大樣本量
通過增加樣本量來消除由于數據量不足而出現的偶然共線性現象,在可行的前提下這種方法是需要優先考慮的。
2. 嶺回歸法
嶺回歸分析是一種專用于共線性問題的有偏估計回歸方法,實質上是一種改良的最小二乘估計法。它通過放棄最小二乘法的無偏性,以損失部分信息、降低精度為代價來獲得更實際和可靠性更強的回歸系數。
3. 逐步回歸法
逐步回歸法是每次引入一個自變量并進行統計檢驗,然后逐步引入其他變量,同時對所有變量的回歸系數進行檢驗。如果原理引入的變量由于后面變量的引入而變得不再顯著,那么就將其剔除,逐步得到最優回歸方程。
4. 主成分回歸
通過主成分分析,將原始參與建模的變量轉換為少數幾個主成分,每個主成分是原變量的線性組合,然后基于主成分做回歸分析,這樣也可以在不丟失重要數據特征的前提下避開共線性問題。
5. 人工去除
直接結合人工經驗,進行去除操作。
06 標準化數據
數據標準化是一個常用的數據預處理操作,目的是處理不同規模和量綱的數據,使其縮放到相同的數據區間和范圍,以減少規模、特征、分布差異等對模型的影響。
1. Z-Score 標準化
Z-Score 標準化是基于原始數據的均值和標準差進行的標準化。這種方法適合大多數數據類型的數據,也是很多工具的默認標準化方法。標準化之后的數據是以0為均值,方差為1的正態分布。
2. Max-Min 標準化
Max-Min 標準化方法是對原始數據進行線性變換,這種標準化的方法應用廣泛,得到的數據會完全落入[0,1]區間內。
07 數據離散化
數據離散化就是把無限空間中有限的個體映射到有限的空間中。數據離散化操作大多是針對連續數據進行的,處理之后的數據值域分布將從連續屬性變為離散屬性,這種屬性一般包含2個或2個以上的值域。
1. 針對時間數據
針對時間數據的離散化主要用于以時間為主要特征的數據集中粒度轉換,離散化處理后將分散的時間特征轉換為更高層次的時間特征。
比如:?
將時間戳轉換為分鐘、小時或上下午等
將日期轉換為周數、月或工作日休息日等
2. 針對多值離散數據
針對多值離散數據的離散化指的是要進行離散化處理的數據本身不是數值型數據,而是分類或順序數據。
例如可以將用戶的收入劃分為10個區間等。
3. 針對連續數據
針對連續數據的離散化是主要的離散化應用,在分類或關聯分析中應用尤其廣泛。主要分為兩種,一類是將連續數據劃分為特定區間的集合,一類是將連續數據劃分為特定類。
以上就是今天的分享,希望對于正在學習數據分析的伙伴兒們有所幫助。
關于作者:周蘿卜,目前就職于一家大數據人工智能公司,喜歡爬蟲和數據分析,樂于總結和分享!微信公眾號「蘿卜大雜燴」運營者。
延伸閱讀《Python數據分析與數據化運營》(第2版)轉載請聯系微信:DoctorData推薦語:這是一本將數據分析技術與數據使用場景深度結合的著作,從實戰角度講解了如何利用Python進行數據分析和數據化運營。本書與同類書大的不同在于,并不只有純粹的關于數據分析技術和工具的講解,而且還與數據使用場景深度結合,在業務上真正可指導落地。此外,本書作者提供微信、郵箱等,可通過實時和離線兩種方式及時為讀者在線傳道、受業、解惑。
有話要說?Q:這些知識點,你已經get了多少?歡迎留言與大家分享猜你想看?轉載 / 投稿請聯系:baiyu@hzbook.com更多精彩,請在后臺點擊“歷史文章”查看
點擊閱讀原文,了解更多
總結
以上是生活随笔為你收集整理的关于数据预处理的7个重要知识点,全在这儿了!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智能驾驶系统是怎样看懂交通标志的?3张流
- 下一篇: Numpy统计计算、数组比较,看这篇就够