類別型變數因子化原因及方法總結

2021-08-17 09:13:12 字數 1243 閱讀 5303

參考線性回歸分析中的啞變數

啞變數(dummy variable),也叫虛擬變數,引入啞變數的目的是,將不能夠定量處理的變數量化,如職業、性別對收入的影響,戰爭、自然災害對gdp的影響,季節對某些產品(如冷飲)銷售的影響等等。 這種「量化」通常是通過引入「啞變數」來完成的。根據這些因素的屬性型別,構造只取「0」或「1」的人工變數,通常稱為啞變數(dummy variables),記為d。

舉乙個例子,假設變數「職業」的取值分別為:工人、農民、學生、企業職員、其他,5種選項,我們可以增加4個啞變數來代替「職業」這個變數,分別為d1(1=工人/0=非工人)、d2(1=農民/0=非農民)、d3(1=學生/0=非學生)、d4(1=企業職員/0=非企業職員),最後乙個選項「其他」的資訊已經包含在這4個變數中了,所以不需要再增加乙個d5(1=其他/0=非其他)了。這個過程就是引入啞變數的過程,其實在結合分析(conjoint analysis)中,就是利用啞變數來分析各個屬性的效用值的。

參考kaggle泰坦尼克**(完整分析)

因為邏輯回歸建模時,需要輸入的特徵都是數值型特徵,我們通常會先對類目型的特徵因子化。 

什麼叫做因子化呢?舉個例子:

以cabin為例,原本乙個屬性維度,因為其取值可以是[『yes』,』no』],而將其平展開為』cabin_yes』,』cabin_no』兩個屬性

實現類別變數因子化的方法:

方法1.pandas 中的get_dummies()

在獲得某個分類變數的啞變數之後,原來的乙個特徵就變成了兩個特徵,原資料集的更新操作:

data_train.drop('cabin', axis=1, inplace=true)

data_train = pd.concat([data_train, dummies_cabin], axis=1)

方法2:one hot encoding

將有n個類的乙個特徵編碼為長度為n的二進位制向量。

python實現

sklearn.preprocessing.onehotencoder

SQL 注入的原因 本質及防禦方法總結

sql 注入漏洞存在的原因,就是拼接 sql 引數。也就是將用於輸入的查詢引數,直接拼接在 sql 語句中,導致了sql 注入漏洞。1.演示下經典的sql注入 我們看到 select id,no from user where id 2 如果該語句是通過sql字串拼接得到的,比如 string sq...

深度學習中的正則化方法及總結

機器學習的乙個核心問題是設計不僅在訓練資料上表現好,而且能在新輸入上的泛化能力好的演算法。在機器學習中,許多策略被顯式的設計來減少測試誤差。這些策略統稱為正則化。在深度學習場景中我們幾乎總是發現最好的擬合模型 從最小化泛化誤差的意義上 是乙個適當正則化的大型模型。下面來介紹幾種策略,以建立這些正則化...

shell變數計算長度及加減運算方法總結

變數定義 shell變數沒有整形,字串,浮點型等其餘程式語言定義的資料型別 root mytest str stringstr是乙個變數 變數輸出 root mytest echo str string 或 root mytest echo string變數常常需要計算字元的長度 root myte...