機器學習實戰 | 數據探索(變數變換、生成)
歡迎關注我們的微信公眾號「人工智慧LeadAI」(ID:atleadai)
變數變換
1.1、什麼是變數變換?
在數據建模中,變換是指通過函數替換變數。 例如,通過平方/立方根或對數x替換變數x是一個變換。 換句話說,變換是一個改變變數與其他變數的分布或關係的過程。
1.2、什麼時候需要變數變換?
當我們想要改變一個變數的比例(change the scale)或標準化(standardize)變數的值以便更好地理解。 如果數據具有不同的尺度,則此變換是必須的,但此變換不會更改變數分布的形狀。對應處理方法:機器學習之特徵工程-數據預處理(無量綱化)。
當我們將複雜的非線性關係轉化為線性關係時。 與非線性關係相比,變數之間存在線性關係更容易理解。 轉換有助於將非線性關係轉換為線性關係。 散點圖可用於查找兩個連續變數之間的關係,這些變化也改善了預測,log是常用的轉換技術之一。
對稱分布優於傾斜分布,因為它更容易解釋和產生推論。 一些模型需要正態分布變數, 所以,每當遇到傾斜分布,使用變數變換。 對於右傾斜分布,取變數的平方/立方根或對數,對於左傾斜分布,取變數的平方/立方或指數。
從程序實現角度考慮變數轉換。 例如在員工績效項目中,發現年齡與員工績效直接相關,即年齡越高,績效越好。 從實現的角度來看,基於年齡的程序可能會面臨實現挑戰。 然而,將員工分為三個年齡階段30歲,30-45歲和45歲以上,制定三種不同的策略是一種明智的做法。 這種分類技術被稱為變數分組(Binning)。
1.3、變數變換的常用方法是什麼?
變換變數有許多方法,如平方根,立方根,對數,合併,倒數等等。來看看這些方法的細節和利弊。
對數(log):變數求對數是用於在分布圖上更改變數分布形狀的常用變換方法。通常用於減少變數的右偏差,雖然,它也不能應用於零值或負值。
平方/立方根:變數的平方和立方根對改變變數的分布有效果。然而,它不如對數變換那麼有效。立方根有自己的優勢,可以應用於包括零和負值,平方根可以應用於包括零的正值。
分箱(Binning):用於對變數進行分類。以原始值,百分位數或頻率進行分類,分類技術的決策是基於對於業務的理解。例如,可以將收入分為三類:高,中,低,也可以對多個變數執行分箱。
生成特徵
生成特徵是基於現有特徵生成新特徵的過程。 例如,將日期(dd-mm-yy)作為數據集中的輸入特徵,可以生成新特徵,如日,月,年,周,工作日,可能與target有更好的關係。 此步驟用於突出顯示變數中的隱藏關係。
2.1、生成特徵的類別
生成派生變數
使用一組函數或不同方法從現有變數創建新變數。在「Titanic – Kaggle competition」中,年齡存在缺少值,為了預測缺失值,用姓名中稱呼(Master,Mr,Miss,Mrs)作為新變數。如何決定要生成哪個變數?這取決於分析師對業務理解,以及他對這個問題的假設。諸如採用變數求對數,變數分組或其他變數變換方法也可用於生成新變數。
生成虛擬變數
虛擬變數最常用的應用之一是將分類變數轉換成數字變數,虛擬變數也稱為指標變數(Indicator Variables)。將分類變數作為統計模型中的預測因子是有用的,如:性別可以產生兩個變數,即為1(Male)和0(No male)的「Var_Male」和值為1(Female)和0(No Female)的「Var_Female」。還可以為兩類以上分類變數生成n或n-1個虛擬變數。
2.2、生成特徵的常用方法
生成日期,時間和地址差異的變數
可以通過考慮日期和時間的差異來創建新變數, 例如:與在30分鐘內填寫相同申請的人相比,需要幾天填寫申請表的申請人可能對產品的興趣較少。 同樣,對於銀行來說,在線門戶登錄詳細信息和客戶登錄之間的時間可能會顯示客戶使用在線門戶網站的意願。同樣,靠近銀行分行的客戶比遠離客戶的參與度更高。
生成比例變數
生成變數之間的比例可能會增加很多價值。 經常使用的一些比例是:輸入/輸出(過去的表現),生產率,效率和百分比。 例如,為了預測分行的信用卡銷售的未來表現,像信用卡銷售/銷售人員或信用卡銷售/營銷支出之類的比率將比銷售的絕對數量更強大。
應用標準變換
通過查看變數和輸出的變化和繪圖,是否變數的基本變換創建了更好的關係。 最常用的變換包括Log,指數,二次和三次變化。 例如,與絕對營銷支出相比,營銷支出的對數可能與Sales有更具代表性的關係。
考慮影響因素的影響
影響因素可以是組織的僱員,組織的代理人或組織的客戶。 引起這些相關實體的影響可以顯著改善模型。 例如,由經紀人(而不是所有經紀人)發起的貸款在鎖定期後,更有可能轉移到不同的實體。 同樣,一組涉及到銷售人員的子公司,可能對其客戶進行交叉銷售。
考慮變數的季節性
很多企業面臨著季節性的問題,可能是由稅收優惠,節日季節或天氣驅動的。 如果是這種情況,需要考慮季節性。 如何在建模時應對季節性影響的更多細節可以參考:Festive season special: Building models on seasonal data。
參考
5 Simple manipulations to extract maximum information out of your data
推薦閱讀:
TAG:机器学习 |