私はlasso回帰をPythonで使用しようとしています。 私は現在scikit-learnライブラリでlasso関数を使用しています。特定の変数にペナルティを課さないようにlasso回帰を設定するにはどうすればよいですか?
トレーニング中に特定の変数にペナルティをかけないようにしたい。以下は(変数の唯一の残りの部分を罰する)
は、訓練のための私の現在のコードである
rg_mdt = linear_model.LassoCV(alphas=np.array(10**np.linspace(0, -4, 100)), fit_intercept=True, normalize=True, cv=10)
rg_mdt.fit(df_mdt_rgmt.loc[df_mdt_rgmt.CLUSTER_ID == k].drop(['RESPONSE', 'CLUSTER_ID'], axis=1), df_mdt_rgmt.loc[df_mdt_rgmt.CLUSTER_ID == k, 'RESPONSE'])
df_mdt_rgmtは、データマートであり、私は特定の列非ゼロのための係数を維持しようとしています。
glmnetは、これを行うための 'ペナルティファクタ'パラメータを提供しますが、私はそれをどのようにpython scikit-learnで行うことができますか?以下は
私はあなたがすることはできません怖いR
get.Lassomodel <- function(TB.EXP, TB.RSP){
VT.PEN <- rep(1, ncol(TB.EXP))
VT.PEN[which(colnames(TB.EXP) == "DC_RATE")] <- 0
VT.PEN[which(colnames(TB.EXP) == "FR_PRICE_PW_REP")] <- 0
VT.GRID <- 10^seq(0, -4, length=100)
REG.MOD <- cv.glmnet(as.matrix(TB.EXP), as.matrix(TB.RSP), alpha=1,
lambda=VT.GRID, penalty.factor=VT.PEN, nfolds=10, intercept=TRUE)
return(REG.MOD)
}