機器學習實戰 特徵工程之特徵構建

2021-08-28 11:18:10 字數 1132 閱讀 7896

特徵構建是指通過研究原始資料樣本,結合機器學習實戰經驗和相關領域的專業知識,思考問題的潛在形式和資料結構,人工創造出新的特徵,而這些特徵對於模型訓練又是有益的並且具有一定的工程意義。

特徵構建的方式主要有單列操作、多列操作、 分組/聚合操作這三種。

在pandas庫中,主要利用map()函式進行單列的操作。

map()函式是將目標函式作用於乙個series的每乙個元素,而dataframe的一列就是乙個series, 因此可通過map()來對一列進行四則運算、平方、開方、冪方、指數、對數等操作。

train['div_column_i'] = train['column_i'].map(lambda x: x/1024)

train['x2_column_i'] = train['column_i'].map(lambda x: x**2)

train['exp_column_i'] = train['column_i'].map(lambda x: math.exp(x))

函式進行多列的操作。

在pandas庫中,主要利用groupby()函式進行分組/聚合操作。

前兩種操作主要用於乙個id只出現一次的情況,而當題目中乙個id不止出現一次,或者需要按某些屬性(如時間段)統計的時候,就需要進行分組/聚合操作。

# 按'gender'的值分組,並統計個數

grouped1 = train.groupby(['gender']).size()

# 按'age','gender'兩列屬性分組,並統計個數

grouped2 = train.groupby(['age','gender']).size()

# 按屬性'gender'分組,並求列'age'的均值

grouped3 = train['age'].astype(float).groupby(train['gender']).mean()

# 按'gender','age'屬性分組,並求列'fee'的最大值

grouped4 = train['fee'].astype(float).groupby([train['gender'],train['age']]).max()

機器學習特徵工程之特徵預處理

通過特定的統計方法 數學方法 講資料轉換成演算法要求的資料。數值型資料 歸一化標準化 缺失值類別型資料 one hot編碼 時間型別 時間的切分 在對資料進行異常值 缺失值 資料轉換等處理後,我們需要從當前資料集中選出有意義的特徵,然後輸入到演算法模型中進行訓練。對資料集進行特徵選擇主要基於以下幾方...

機器學習 特徵工程之特徵提取

第二部分 特徵提取 備註 1.資料決定了機器學習的上限,而演算法只是盡可能逼近這個上限 這句話很好的闡述了資料在機器學習中的重要性。大部分直接拿過來的資料都是特徵不明顯的 沒有經過處理的或者說是存在很多無用的資料,那麼需要進行一些特徵處理,特徵的縮放等等,滿足訓練資料的要求。2.特徵工程的過程 從資...

機器學習實戰 特徵工程之資料預處理

機器學習實戰的特徵工程主要包含資料預處理 特徵構建 特徵選擇三步,首先來介紹資料預處理。我選擇python作為工具,並將主要用到pandas numpy等資料工具庫。載入庫 import pandas as pd import numpy as np 1 檢視資料的行數和列數 print train...