0
我正在尋找在scikit-learn的Lasso/LassoCV中添加交互項。如果是兩個連續變量之間或兩個分類變量之間的交互作用,我可以添加與交互中每個元素相乘的列。 但是當我們有一個分類變量和一個連續變量之間的相互作用時,我不能把它們相乘。Python - Lasso/LassoCV中的交互項?
我正在尋找在scikit-learn的Lasso/LassoCV中添加交互項。如果是兩個連續變量之間或兩個分類變量之間的交互作用,我可以添加與交互中每個元素相乘的列。 但是當我們有一個分類變量和一個連續變量之間的相互作用時,我不能把它們相乘。Python - Lasso/LassoCV中的交互項?
您絕對可以採用分類變量和連續變量之間的交互作用。但是您必須將您的分類變量轉換爲數字。有幾種方法可以做到這一點,但爲每個獨特類別製作二進制列是實現此目的的常用方法。一旦你創建了新的矩陣,你可以用sklearn把它發送到你的擬合方法。見我很小的例子如下
# create data with categorical and continuous variables
import pandas as pd
df = pd.DataFrame({'cat':['a','b','c'], 'cont':[4,1,10]})
輸出
cat cont
0 a 4
1 b 1
2 c 10
使用熊貓功能get_dummies
創造二元變量
df_new = pd.get_dummies(df)
輸出轉換後的數據
cont cat_a cat_b cat_c
0 4 1 0 0
1 1 0 1 0
2 10 0 0 1
的現在你可以做簡單的操作
df['a_new'] = df['cont'] * df['cat_a']