建立要素(Creating Features)

1.數學變換

數字特徵之間的關係通常是透過數學公式來表達的,這是你在領域研究中經常遇到的。在Pandas中,可以對列應用算術運算,就像它們是普通數字一樣。

在汽車資料集中有描述汽車發動機的特徵。研究產生了各種各樣的公式來建立潛在有用的新功能。例如,“衝程比”是衡量發動機效率和效能的一個指標:

建立要素(Creating Features)

組合越複雜,模型學習起來就越困難,比如這個發動機“排量”的公式,這是衡量發動機功率的一種方法

建立要素(Creating Features)

資料視覺化可以建議變換,通常是透過冪或對數對特徵進行“重塑”。例如,美國事故中的風速分佈是高度傾斜的。在這種情況下,對數可以有效地將其標準化:

建立要素(Creating Features)

2.計數

描述某物的存在或不存在的特徵通常是成套的,比如說,一組疾病的危險因素。可以透過建立計數來聚合這些功能。

這些特性將是二進位制的(1表示存在,0表示不存在)或布林的(True或False)。在Python中,布林可以相加,就像它們是整數一樣。

在交通事故中,有幾個特徵表明某個道路物體是否在事故附近。這將使用求和方法建立附近道路特徵總數的計數:

建立要素(Creating Features)

可以使用dataframe的內建方法。在混凝土資料集中是混凝土配方中成分的數量。許多配方缺少一個或多個組分(即,該組分的值為0)。這將計算dataframe的內建gt方法的公式中有多少元件:

建立要素(Creating Features)

3.構建和分解要素

通常你會有複雜的字串,可以有效地分解成更簡單的片段。一些常見的例子:

ID numbers: ‘123-45-6789’

Phone numbers: ‘(999) 555-0123’

Street addresses: ‘8241 Kaggle Ln。, Goose City, NV’

Internet addresses: ‘http://www。kaggle。com

Product codes: ’0 36000 29145 2‘

Dates and times: ’Mon Sep 30 07:06:05 2013‘

像這樣的特性通常會有一些您可以利用的結構。例如,美國電話號碼有一個區號(999)部分,告訴你呼叫者的位置。像往常一樣,一些研究可以在這裡得到回報。

建立要素(Creating Features)

建立要素(Creating Features)

4.Group transforms

Group transforms

,它將資訊聚合到按某個類別分組的多個行中。透過群體轉換,你可以建立諸如“一個人居住狀態的平均收入”或“一個工作日按型別釋出的電影比例”之類的功能。如果你發現了一個類別互動,那麼在該類別上進行群體轉換可能是一個很好的調查方法。

使用聚合函式,組轉換組合了兩個功能:提供分組的分類功能和要聚合其值的另一個功能。對於“州平均收入”,您可以為分組特徵選擇州,為聚合函式選擇平均值,為聚合特徵選擇收入。為了在Pandas中計算這個,我們使用groupby和transform方法:

建立要素(Creating Features)

建立要素(Creating Features)

建立要素(Creating Features)

5.t

ips

線性模型很自然地學習和和差,但不能學習更復雜的東西。

對於大多數模型來說,比率似乎很難掌握。比率組合通常會帶來一些簡單的效能提升。

線性模型和神經網路通常能更好地處理歸一化特徵。神經網路尤其需要將特徵縮放到離0不太遠的值。基於樹的模型(如隨機森林和XGBoost)有時可以從標準化中獲益,但通常受益較少。

樹模型可以學習近似幾乎任何特徵的組合,但是當一個組合特別重要時,它們仍然可以從顯式建立中受益,尤其是在資料有限的情況下。

計數對於樹模型尤其有用,因為這些模型沒有一種自然的方式一次跨多個特性聚合資訊。