數據挖掘中的數據預處理:步驟、缺失值插補、數據標準化

已發表: 2020-12-30

數據科學家工作中最耗時的部分是準備和預處理手頭的數據。 我們在現實生活場景中獲得的數據並不干淨,不適合建模。 在輸入機器學習模型之前,需要對數據進行清理、轉換為某種格式並進行轉換。

在本教程結束時,您將了解以下內容

  • 為什麼要進行數據預處理
  • 數據清洗
  • 缺失值插補
  • 數據標準化
  • 離散化

目錄

為什麼要進行數據預處理?

當通過抓取網站並從其他數據源收集數據來檢索數據時,通常會充滿差異。 它可能是格式問題、缺失值、垃圾值和文本,甚至是數據中的錯誤。 需要完成幾個預處理步驟,以確保輸入模型的數據符合要求,以便模型可以學習和泛化它。

數據清洗

第一步也是最重要的一步是清理數據中的不規則性。 如果不執行此步驟,我們就無法從數據統計中獲得太多意義。 這些可能是格式問題、垃圾值和異常值。

格式問題

大多數情況下,我們需要數據採用表格格式,但事實並非如此。 數據可能缺少或不正確的列名、空白列。 此外,在處理圖像和文本等非結構化數據時,將 2D 或 3D 數據加載到 Dataframes 中進行建模變得至關重要。

垃圾值

許多實例或完整列可能會將某些垃圾值附加到實際所需的值。 例如,考慮一列“rank”,其值如下:“#1”、“#3”、“#12”、“#2”等。現在,刪除前面的所有“#”很重要字符,以便能夠將數值提供給模型。

異常值

很多時候,某些數值要么太大要么太低,而不是特定列的平均值。 這些被視為異常值。 異常值需要特殊處理,是處理的敏感因素。 這些異常值可能是測量誤差,也可能是真實值。 它們要么需要完全刪除,要么需要單獨處理,因為它們可能包含很多重要信息。

缺失值

您的數據很少會包含每個實例的所有值。 許多值丟失或被垃圾條目填充。 這些缺失值需要處理。 這些值可能有多種原因可能會丟失。 它們可能由於某些原因(例如傳感器錯誤或其他因素)而丟失,或者它們也可能完全隨機丟失。

閱讀:印度的數據挖掘項目

掉落

最直接和最簡單的方法是刪除缺少值的行。 這樣做有許多缺點,例如丟失關鍵信息。 當您擁有的數據量很大時,刪除缺失值可能是一個很好的步驟。 但如果數據少,缺失值多,則需要更好的方法來解決這個問題。

均值/中值/眾數插補

估算缺失值的最快方法是簡單地估算列的平均值。 但是,它也有缺點,因為它擾亂了數據的原始分佈。 您還可以估算通常優於簡單平均值的中值或眾數。

線性插值 & KNN

也可以使用更智能的方法來估算缺失值。 其中2個是使用多個模型的線性插值,將具有空白值的列視為要預測的特徵。 另一種方法是使用 KNN 聚類。 KNN 對特定特徵中的值進行聚類,然後分配最接近該聚類的值。

數據標準化

在具有多個數值特徵的數據集中,所有特徵可能不在同一尺度上。 例如,一個特徵“距離”具有以米為單位的距離,例如 1300、800、560 等。另一個特徵“時間”具有以小時為單位的時間,例如 1、2.5、3.2、0.8 等。所以,當這兩個特徵被饋送到模型中,它認為具有距離的特徵具有更大的權重,因為它的值很大。 為了避免這種情況並獲得更快的收斂速度,有必要將所有特徵放在相同的規模上。

正常化

縮放特徵的一種常用方法是對它們進行歸一化。 它可以使用 Scikit-learn 的 Normalizer 來實現。 不適用於列,但適用於行。 L2 歸一化應用於每個觀察值,以便一行中的值在縮放後具有單位範數。

最小最大縮放

Min Max 縮放可以使用 Scikit-learn 的 Min MaxScaler 類來實現。 它減去特徵的最小值,然後除以範圍,其中範圍是原始最大值和原始最小值之間的差。 它保留了原始分佈的形狀,默認範圍為 0-1。

標準縮放

Standard Scaler 也可以使用 Scikit-learn 的類來實現。 它通過減去均值然後縮放到單位方差來標準化特徵,其中單位方差意味著將所有值除以標準差。 它使分佈的平均值為 0,標準差為 1。

離散化

很多時候數據不是數字形式,而是分類形式。 例如,考慮一個特徵“溫度”,其值為“高”、“低”、“中”。 這些文本值需要以數字形式編碼,以便模型能夠對其進行訓練。

分類數據

分類數據經過標籤編碼,以數字形式呈現。 因此,“高”、“中”和“低”可以標籤編碼為 3,2 和 1。分類特徵可以是名義特徵或有序特徵。 序數分類特徵是具有一定順序的​​特徵。 例如,在上述情況下,我們可以說 3>2>1 作為溫度可以測量/量化。

但是,在一個示例中,無法測量具有“德里”、“查謨”和“阿格拉”等值的“城市”特徵。 換句話說,當我們將它們標記為 3、2、1 時,我們不能說 3>2>1,因為“Delhi”>“Jammu”沒有多大意義。 在這種情況下,我們使用 One Hot Encoding。

連續數據

具有連續值的特徵也可以通過將值分箱到特定範圍的箱中來離散化。 分箱是指根據連續值的範圍將數值或連續特徵轉換為一組離散值。 當您想根據數據點所在的範圍查看趨勢時,這會派上用場。

例如,假設我們有 7 個孩子的分數,範圍從 0 到 100。 現在,我們可以將每個孩子的分數分配到特定的“bin”。 現在我們可以分為 3 個 bin,範圍為 0 到 50、51-70 和 71-100,分別屬於 bin 1、2 和 3。 因此,該功能現在將僅包含這 3 個值之一。 Pandas 提供了 2 個函數來快速實現分箱:qcut 和 cut。

Pandas qcut 接受分位數並根據數據分佈將數據點劃分到每個 bin。

另一方面,Pandas cut 接受我們定義的自定義範圍,並在這些範圍內劃分數據點。

相關閱讀:機器學習中的數據預處理

學習世界頂尖大學的數據科學課程獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。

結論

數據預處理是任何數據挖掘和機器學習任務中必不可少的步驟。 我們討論的所有步驟當然不是全部,但確實涵蓋了該過程的大部分基本部分。 NLP 和圖像數據的數據預處理技術也不同。 確保嘗試上述步驟的示例並在您的數據挖掘管道中實施。

如果您想了解數據科學,請查看 IIIT-B 和 upGrad 的數據科學 PG 文憑,該文憑專為在職專業人士而設,提供 10 多個案例研究和項目、實用的實踐研討會、與行業專家的指導、1-與行業導師面對面交流,400 多個小時的學習和頂級公司的工作協助。

什麼是數據預處理,它的意義是什麼?

這是一種以圖像、文本、視頻形式提供原始非結構化數據的技術。 首先對這些數據進行預處理,以消除不一致、錯誤和冗餘,以便以後對其進行分析。

原始數據被轉換成機器可以理解的相關數據。 預處理數據是轉換數據以進行建模的重要步驟。 如果不進行處理,它實際上是沒有用的。

數據預處理涉及哪些步驟?

數據預處理涉及完成整個過程的各個步驟。 首先對數據進行清理以去除噪聲並填充缺失值。 在此之後,整合來自多個來源的數據以組合成一個數據集。 這些步驟之後是變換、歸約和離散化。

原始數據的轉換涉及對數據進行規範化。 歸約和離散化基本上是處理減少數據的屬性和維度。 接下來是壓縮這一大組數據。

單變量和多變量方法有什麼區別?

單變量方法是處理異常值的最簡單方法。 它不概述任何關係,因為它是單個變量,其主要目的是分析數據並確定與之關聯的模式。 均值、中位數和眾數是在單變量數據中發現的模式示例。

另一方面,多變量方法用於分析三個或更多變量。 它比早期的方法更精確,因為與單變量方法不同,多變量方法處理關係和模式。 加法樹、典型相關分析和聚類分析是執行多變量分析的一些方法。