資料預處理清洗方法總結(一)

2021-08-20 20:28:52 字數 2004 閱讀 5343

以house price為例

1.train_df.head(n)

通過檢視**頭部幾行元素來觀察資料的大致組成。

price即資料的

label

本身不是平滑的,通常為了分類器學習的準確性,會首先把

label

「平滑化」,即呈現正態分佈。在這裡通常使用

log1p

,即log(x+1)

,避免了負值的問題。

最後也要把**的平滑資料給變回去,需要使用expm1()

3.合併操作:

all_df = pd.concat((train_df,test_df), axis = 0 )

4.在house price prediction中

mssubclass

的值其實應該是

category

,使用df

的時候,這類數字符號會被預設記成數字。因此我們需要把它變回

string

。input  >> all_df[『mssubclass』].dtypes

output >> dtype(『int64』)

因此進行操作:

all_df[『mssubclass』] = all_df[『mssubclass』].astype(str)

5.把category的變數轉換成

numerical

表達形式

當我們用numerical來表達category 時要注意,數字本身有大小的含義,所以使用數字會給以後的模型學習帶來困難,於是我們可以用

one-hot

向量表示

category

。一鍵one-hot的方法:

all_dummy_df = pd.get_dummies(all_df))

6.缺失值的處理:

(1)檢視有哪些特徵有缺失值

all_dummy_df.isnull().sum().sort_values(ascending=false).head(10)

處理這些缺失的資訊,一般來說,資料集的描述裡會寫的很清楚,這些缺失都代表著什麼。否則我們根據自己的選擇來填充缺失值

(2)在這裡,我們用平均值來填滿這些空缺。

mean_cols = all_dummy_df.mean()

all_dummy_df = all_dummy_df.fillna(mean_cols)

7.標準化numerical資料

這一步並不是必要,但要看你想用的分類器是什麼。一般來說regression的分類器最好把源資料放在乙個標準分布內,不要讓資料間的差距過大。

這裡,不需要把one-hot的資料標準化,應該把本來就是

numerical

的資料標準化。

首先,判斷哪些時numerical的資料:

numeric = all_df.columns[all_df.types != 『object』]

然後計算標準分布:(x-x』)/s,讓我們的資料點更加平滑,便於計算。

注意這裡可以繼續使用loc的。

numeric_col_means = all_dummy_df.loc[:,numeric_cols].mean()

numeric_col_std = all_dummy_df.loc[:,numeric_cols].std()

all_dummy_df.loc[:,numeric_cols] = (all_dummy_df.loc[:, numeric_cols] - numeric_col_means)

/ numeric_col_std

PART 2 2 風控建模前資料預處理 清洗

最重要的事情開始都會講 建模是始終服務於業務的,沒有業務的評分卡就沒有靈魂 廣義資料預處理包括 資料清洗,資料整合 使用者基礎資料,外部第三方資料,埋點資料 資料變換 woe 型別 4 時間格式 5 中文資料 若干函式用法 1 重複值 duplicated函式用來查詢並顯示資料表中的重複值 dupl...

資料預處理方法總結

資料是什麼?資料就是一組物件及其屬性的集合,其中屬性定義為物件的特徵或性質。真實資料在應用前基本都有經過預處理,以便在機器學習演算法中使用。本次資料預處理方法的總結是基於推薦系統設計進行展開的,其中包括相似度的度量方法 抽樣以及降維技術這三個尤為重要的問題。d x y k 1 n xk yk 2 x...

資料預處理方法總結

資料是機器學習的原料,機器學習是通過對資料的訓練才得到某種特性的。因此正確的預處理資料對模型結果的輸出尤為重要。一 資料可能存在的問題 資料一開始可能有資料重複,資料缺失,資料存在異常值等情況。二 資料預處理的步驟 資料處理主要包括資料的清洗,資料的轉化.資料描述,特徵選擇和特徵抽取這幾個步驟。1 ...