天天看點

資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術

目錄

資料探索和準備的步驟

1.變量識别

2.單變量分析

3.雙變量分析

3.1  類别型與類别型

3.2  類别型和連續型

4.處理缺失值

4.1 為什麼需要處理缺失值?

4.2 為什麼會存在缺失值?

4.3 處理缺失值的方法有那些

5.檢測和處理異常值的方法

5.1 異常值的類型有哪些

5.2 異常值産生的原因

5.3 異常值對整個資料集的影響

5.4 怎麼檢測異常值

5.5 怎麼移除異常值

6.特征工程的藝術

6.1  什麼是特征工程

6.2 特征工程的步驟?

6.3 什麼是變量的轉換

6.4 什麼時候需要使用變量的轉換

6.5 變量轉換的一般方法

6.6 産生新特征與其好處

資料探索和準備的步驟

我們需要知道輸入資料的品質決定了模型輸出的結果,即資料決定了模型的上限。是以我們需要花大量的時間來對資料進行處理,一般來說資料探索、清洗和預處理将占用整個項目周期的70%時間。下面是在建立預測模型的時候,需要知道的關于清洗和預處理資料的步驟 

1.變量識别 

2.單變量分析 

3.雙變量分析 

4.缺失值處理 

5.異常值處理 

6.變量轉換 

7.産生新變量 

在實際工作中我們會反複疊代步驟4-7,直到我們得到一個滿意的模型

1.變量識别

首先需要厘清哪個是輸入(predictor)變量哪個是輸出(Target)變量

2.單變量分析

在這一階段,我們将對變量進行一一探索。我們需要去判别變量是

類别類型

還是

連續類型

,對這兩種類型的變量需要分開讨論。 

連續型變量:對于連續性資料,我們需要知道資料的中心分布趨勢和變量的分布。

類别類型: 對于類别變量,我們一般使用

頻次表

表示每一個類别的分布情況,也可以使用某一類别的占比。它們的衡量名額分别為count和count%,使用柱形圖來可視化分布情況。

3.雙變量分析

雙變量分析目的是為了發現變量之間的關系。我們按照預先設定的重要程度來發掘變量之間的關聯,可以在

類别類型變量

連續變量

的任意組合上面使用雙變量分析方法,這些組合可以是:類别型和類别型、類别型和連續性、連續型和連續型,針對不同的組合使用不同的分析方法。 

3.1 連續型和連續型

當兩個變量都是連續型的時候時候,我們應該觀看他們的散點圖(scatter )分布情況,這是一種很實用的方法來發現變量間的關系,根據散點圖的形狀能夠顯示(indicates )出變量是線性(linear )關系還是非線性(non-linear )的關系。 

資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術

散點圖隻能直覺的展示出變量之間的關系,但并不說明化關系的強弱,

相關性(Correlation)

能夠對這個關系進行量化,相關性是一個大于-1小于1的值。

相關性的計算公式: 相關系數=協方差/兩個項目标準差之積

  • 資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術
  • 注意:标準差和方差一般是用來描述一維資料,協方差也隻能處理二維問題,協方差矩陣處理多元數組
  • 協方差計算:
    資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術
     (μ是均值)
  • 相關系數也可以看成協方差:一種剔除了兩個變量量綱影響、标準化後的特殊協方差。

3.1  類别型與類别型

為了發現類别型變量之間的關系,我們可以使用以下方法

  • 雙向表(two-way table):我們可以通過建立count和count% 的雙向表來分析變量之間的關系,行和列分别表示一個變量,每一個(row,column)為count或者count%的值
  • 堆疊柱狀圖(stacked column chart):這種方法比雙向表更加的直覺 
    資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術

卡方測試(Chi-Square Test):

資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術
  • 其中,A代表觀察頻數,E代表期望頻數,A、E之間的內插補點就是殘差
  • 這種方法是用來衡量變量與變量之間的顯著性,同時,它用來檢驗樣本中的資訊是否足以概括樣本總體的關系。卡方測試是基于期望值與真實值的差異計算得來,它得到的是卡方分布與自由度的機率值。 

    機率值為0:說明類别變量之間互相獨立 

    機率值為1:說明類别變量之間不獨立 

    機率值小于0.05:說明類别變量之間存在關系的置信區間為95% 

    具體例子 

    下面是sklearn計算卡方值:

from sklearn.datasets import load_iris
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
iris = load_iris()
X, y = iris.data, iris.target
chiValues = chi(X,y)
X_new = SelectKBest(chi2, k=2).fit_transform(X, y)
           

3.2  類别型和連續型

當處理類别型和連續性變量的時候,可以為每一個類别變量繪制箱線圖(資料的分散情況:最大值、最小值、中位數、及上下四分位數)

4.處理缺失值

4.1 為什麼需要處理缺失值?

訓練集中的缺失值會削弱模型的拟合能力或得到有偏差的模型,這是因為模型沒有正确學到變量之間的關系,這會得到錯誤的預測值或分類 

資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術

上圖是有缺失值的資料集與補全後的資料集,左邊的表格是沒有對缺失值進行處理,從表中可以推斷出男性和女性玩闆球的幾率相同,但是通過觀察右邊的表格,可以看得出女性玩半球的機率要高于男性

4.2 為什麼會存在缺失值?

從上面要給例子我們看出了處理缺失值的重要性,接下來讓我們來找到産生缺失值的原因,這些原因主要出現在兩個階段:

  • 1.資料提取:在資料提取階段可能會出現差錯,在這種情況下,我們應該用重新檢視正确的資料,一些哈希程式能夠確定資料是正确的,在提取資料階段出現的錯誤比較容易發現并且也容易糾正。
  • 2.資料收集:資料收集階段出現的錯誤相對來說 比較難修正,主要分為以下4類:
    • 完全随機丢失:這種情形對于所有觀察結果,丢失變量的機率是相同的。 例如:資料收集過程的受訪者決定在抛出一個公平的硬币之後,他們将宣布他們的收入。 如果為正面,受訪者宣布他/她的收入,反之亦然。 這裡每個觀察值具有相同的缺失值的機會。
    • 随機丢失:這種情形是變量的值随機丢失并且丢失的比率因其他輸入變量的不同值/級别而變化。 例如:我們收集的年齡時,女性的資料的缺失率相對男性來說較高。
    • 不可預測因子導緻缺失:這種情形資料并不是随機缺失,而是受一切潛在的因子影響,例如:在醫學研究中,如果一個特定的診斷導緻病人不舒适,那麼這項研究就很有可能被抛棄。這個缺失值并不是随機發生,而是依賴于“不舒适”這一潛在的因子
    • 取決自身的缺失:這種情形是發生缺失的機率受缺失值本身影響,例如:收入較高和較低的人不願意提供自己的收入。

4.3 處理缺失值的方法有那些

  • 1.删除:有兩種方法 List Wise Deletion 和Pair Wise Deletion
    • 在List Wise Deletion方法中,我們删除掉所有有缺失值的樣本,該方法的有點主要是簡單,但由于該方法減少了樣本的大小,會導緻模型的拟合能力下降。
    • 在Pair Wise Deletion方法中,對所有我們感興趣的樣本進行分析,該方法的有點是保留了更多的樣本用來分析,這種方法的缺點是針對不同的變量使用了大小不同的樣本集。 
      資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術
    • 當缺失資料的性質為“完全丢失随機”時,則将對樣本進行删除,否則非随機缺失值可能會讓模型的輸出産生偏離。
  • 2.均值/模型/中值填充(imputation):填充是一種用估計值來補填缺失值的方法,目标是利用從有效資料集中識别的關系來幫助評估缺失值,均值/模型/中值填充方法是最常用的方法之一,它通過對包括該變量的所有已知值的平均值或中值(定量屬性)或模型(定性屬性)進行分析來替換給定屬性的丢失資料,可以分為兩種類型:
    • 一般填補:通過計算該變量下所有非缺失值的平均值或中值來補全缺失值,像上一表中

      manpower

      存在缺失值,我們使用其他的非确實隻來填充
    • 相似樣本填充:這種情況通過分别計算

      Male

      Femal

      的平均值為29.7和25來分别填充male和femal的缺失值
  • 3.預測模型:預測模型是處理丢失資料的複雜方法之一,通過建立預測模型來填補缺失值,這種情況下我們把資料集分為兩份,一份是沒有缺失值的一份有缺失值的。第一份資料集就是訓練集第二份就是測試集,而缺失的變量就是預測目标。下一步根據訓練集的其他變量來訓練模型,填充缺失值。可以使用回歸、分類等方法來完成填充,有兩個缺點
    • 1 預測出來的值往往更加”規範“
    • 2 如果變量之間不存在關系,那麼得到的缺失值将不準确
    1. KNN填充方法:這種方法是利用與該樣本最相似樣本的值來填充,使用距離名額來代表相似,該方法的優缺點:
    • 優點
    • KNN能定量和定性的填充
    • 不需要為缺少資料的每個屬性建立預測模型
    • 對于存在多個缺失值的樣本也容易填充
    • 資料的相關結構被考慮在内
    • 缺點
    • KNN非常耗時,因為它需要周遊整個資料集
    • K值的選擇,K過大會引入無關的因素,K較小将丢失一些重要的特征 

      處理過缺失值之後,下一步就要處理異常點,通常我們傾向忽略異常點的影響,然而這是一個不好的方法,異常點會讓我們的資料産生傾斜并影響準确率

5.檢測和處理異常值的方法

異常值是分析師和資料科學家常用的術語,因為它需要密切關注,否則可能導緻出現錯誤的估計。 簡單來說,異常點是一個遠遠超出整個樣本總體的觀測值,我們來舉個例子,我們做客戶分析,發現客戶的年平均收入是80萬美元。 但是,有兩個客戶的年收入為4美元和420萬美元。 這兩個客戶的年收入遠遠高于其他人口。 這兩個觀察将被視為異常值。 

資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術

5.1 異常值的類型有哪些

異常值可以分為兩種類型:單變量和多變量。 剛才我們讨論了單變量異常值的例子。 當我們看到單個變量的分布時,可以找到這些異常值。 多變量異常值是n維空間中的異常值,為了找到它們,我們必須檢視多元度的分布情況。 

讓我們用一個例子來了解這一點。 我們要了解身高和體重之間的關系,下面的例子是身高,體重的單變量和雙變量分布。 通過觀察箱線圖,我們沒有找到任何異常值(高于和低于1.5 * IQR)。 然後再看散點圖,可以看出有兩個樣本在一個特定的身高和體重的平均值以下。 

資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術

5.2 異常值産生的原因

無論何時我們遇到異常值,處理這些異常值的理想方法就是找出有這些異常值的原因,那麼處理它們的方法将取決于它們發生的原因。 異常值的原因可分為兩大類:

  • 人為/非自然
  • 自然

讓我們更加詳細地了解各種異常值:

  • 資料輸入誤差:在資料收集,輸入的記錄或輸入過程中引起人為錯誤可能導緻資料中的異常值。 例如:客戶的年收入是10萬美元。 資料錄入人員多加了一個零。現在的收入是100萬美元,是原來的10倍。 顯然,這個樣本與其他的人口相比将是異常值。
  • 測量誤差:這是異常值最常見的來源, 當使用的測量儀器出現故障時就會引起這種情況。 例如:有10台稱重機, 其中9台是正常的,1台是有故障,此機器上的測量的重量将比組中的其他結果要高/低。 是以在故障機器上測量的重量可能導緻異常值。
  • 實驗誤差:實驗誤差也會導緻出現異常值,例如:在7名運動員再100米沖刺中,有一名選手錯過了發令槍起跑晚了。是以,這使運動員的跑步時間比其他運動員更長,他的總時間可能是一個異常值。
  • 有意造成的異常值:這通常發生在一些涉及敏感資料的報告中。 例如:青少年通常會報告他們消費的酒精量,他們可能隻會上報比真實結果要小的值。
  • 資料處理造成的誤差:可能再操作或資料提取的過程中造成異常值
  • 采樣誤差:例如,我們要測量運動員的身高,而我們在樣本中包括幾名籃球運動員, 這種就可能會導緻資料集中出現異常值。

5.3 異常值對整個資料集的影響

異常值可以大幅改變資料分析和統計模組化的結果,資料集中的異常值會有很多不利影響:

  • 增加錯誤方差,降低模型的拟合能力
  • 如果異常值是非随機分布的,它們可以降低正态性
  • 與真實值可能存在偏差
  • 它們也可以影響回歸,方差分析等統計模型假設的基本假設。 

    為了更加深刻的了解異常值的影響,下面舉一個例子對有/無異常值的資料集進行對比,觀察會出現什麼情況: 

    Example 

    資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術
    如上圖所示,具有異常值的資料集,具有顯著不同的平均值和标準偏差。 在無異常值的情況下平均值是5.45。 但随着異常值的加入平均值上升到30,這将徹底改變估計。

5.4 怎麼檢測異常值

常用的異常值檢測方法是将其可視化,有很多異常值可視化的工具例如

箱線圖

直方圖

散點圖

(在上面我們使用了箱線圖和散點圖進行了可視化),下面是一些比較贊的異常值探索方法:

  • 箱線圖不在-1.5*IQR和1.5IQR的樣本點 
    資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術
  • 使用封頂方法, 在第5和第95百分位數範圍之外的任何值都可以被認為是異常值
  • 對于距離平均值為

    三倍标準差

    (standard deviation)或更大的資料點被認為是異常值
  • 異常值隻是有影響的資料點進行檢測的特殊情況,它的選擇也取決于對業務的了解
  • 二維或多元的異常通過測量距離的方法來進行判斷,例如:馬氏距離( Mahalanobis’ distance )

5.5 怎麼移除異常值

處理異常值的大多數方法和處理缺失值的方法類似,例如删除觀測值、轉換、将他們合并、将它們視為一個單獨的組、估算值和其他的統計方法,下面我們介紹一些常用的方法來處理異常值:

  • 删除觀察值:如果是由輸入誤差、資料處理誤差或者異常值很小,我們可以直接将它們删除
  • 轉換:資料轉換可以消除異常值,對資料取對數

    log

    會減輕由于極值引起的變化 
    資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術
  • 填充:像處理缺失值那樣,我們可以對異常點進行修改,使用平均值、中值或其他的一些填補方法。在填補之前我們需要分析異常值是自然的異常值還是人為造成的。如果是人為造成的那就可以進行填充,也可以使用預測模型來填充。
  • 差別對待“:如果存在大量的異常值,我們應該在統計模型中分别對待它們, 其中一個方法将它們分為兩個不同的組并為兩組建立單個模型,然後再将其輸出合并。

截至目前,我們已經學習資料探索過程中的缺失值處理、異常值檢測和處理,這三個階段将會使你的原始資料在包含資訊能力和準确率上面有所提升,下一步将介紹特征工程

6.特征工程的藝術

6.1  什麼是特征工程

特征工程是從現有資料中提取更多有效資訊的一門科學(和藝術),在不增加資料的前提下,如何讓現有的資料更有用 

例如,你正根據根據日期預測商場的人數,如果你直接使用日期,那麼可能不能夠從日期中獲得有價值的資訊,這是因為商場的人數受一個月中的某一天的影響比一星期中的某一天的影響小,而一周中的某一天隐含在日期中,我們需要将這些資訊挖掘出來,讓我們的模型變得更好。這個從資料中提取有價值的資訊的小練習就是特征工程。

6.2 特征工程的步驟?

特征工程主要分為2步:

  • 變量的轉換
  • 變量/特征的建立 

    這兩個步驟雖然字少,但是在資料挖掘中至關重要,對模型的能力有着重大的影響,下面就詳細介紹這兩個步驟:

6.3 什麼是變量的轉換

在資料模組化過程中,變換是指通過函數來替換變量,例如,通過平方/立方根或對數x替換變量x就是一個變換。換句話說,轉換是一個改變變量的分布或關系的過程。 

下面讓我們看一看變量轉換有用的情況。

6.4 什麼時候需要使用變量的轉換

下面是需要進行資料轉換的情況:

  • 當我們想改變一個變量的比例或标準化一個變量的值,以便更好的了解。 如果的資料具有不同的縮放比例(scale),那麼這個轉換是必須的并且這個轉換并不會更改變量分布。
  • 當我們将資料從複雜的非線性關系轉化為線性關系時,與非線性或彎曲關系相比,變量之間存線上性關系更容易了解, 轉換有助于我們将非線性關系轉換為線性關系。 散點圖常被用來查找兩個連續變量之間的關系,通這些轉換也可以改善預測的結果。 

    log

    是一種常用的轉換方式。 
    資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術
  • 對稱的分布要好于傾斜的分布

    ,因為它容易解釋和做出推論,一些模組化技術需要變量服從正态分布,是以,當我們有一個偏斜的分布,我們可以進行減少傾斜的變換。 對于

    向右

    傾斜分布,我們取變量的平方/立方根或對數。對于

    向左

    傾斜的分布,我們取變量的平方/立方或指數。 
    資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術
  • 從實施者的角度進行變量轉換,就員工的績效來說,我發現年齡與績效有關,年齡越大表現越好。從實作的角度來說基于年齡的程式可能挑戰較大,但是我們可以将年齡分成不同的組,例如小于30,30-45,45以上。然後為每一個組制定不同的政策,這種方法被成為變量的分組。

6.5 變量轉換的一般方法

有各種各樣的變量轉換方法, 如前面所讨論的其中一些包括平方根,立方根,對數,合并,倒數等等。 下面來看看這些方法的細節,突出說明這些轉換方法的利弊:

  • log:**對變量取對數,常被用來在分布圖上更改變量分布形狀。 它通常用于

    向右傾斜

    的分布。這種方法的缺點是,它也不能應用于零值或負值的變量。
  • 平方/立方根:變量的平方根和立方根具有對變量分布有波形的影響。但它并沒有對數變換那麼重要。 立方根變換有自己的優勢, 它可以應用于負值包括零。平方根可以應用于包括零的正值。
  • 分箱(離散):常被用來對變量進行分類,它可以基于原始值、百分比或頻率等對變量進行轉換,具體需要基于具體的業務,例如,我們可以将收入分為三類:高,中,低。 我們還可以根據多個變量對變量進行分箱。

6.6 産生新特征與其好處

特征/變量建立是基于現有變量生成新變量/特征的過程。 例如,我們将date(dd-mm-yy)作為資料集中的輸入變量,将日期拆分我們可以生成新的變量,如日,月,年,周,工作日,可能與目标變量有更好的關系。 下面這個步驟用于突出變量中的隐藏關系: 

資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術

有很多産生新變量的方法,下面是一些常用方法:

  • 建立派生變量:是指使用一組函數或不同方法從現有變量建立新的變量。在某個資料集中年齡缺少值, 為了預測缺失的價值,我們以名稱的稱呼(Master,Mr,Miss,Mrs)作為新變量。 我們如何決定要建立的變量? 老實說,這取決于分析師對業務的了解,他的好奇心以及他對這個問題的一套假設。 諸如對變量取對數、分箱和其他變量變換方法等方法也可用于建立新變量。
  • 建立啞變量:啞變量方法是将類别型變量轉化為數值型,下面是一個例子,來表示性别 
    資料分析與挖掘之資料探索與清洗資料探索和準備的步驟1.變量識别2.單變量分析3.雙變量分析4.處理缺失值5.檢測和處理異常值的方法6.特征工程的藝術
    上面的這些隻是資料探索過程方法中的冰山一角,前期對資料探索的工作量直接影響着模型結果的好壞。完

繼續閱讀