Closed sinchir0 closed 3 years ago
pr_aucが0.90以上だった、nfkb_inhibitor、proteasome_inhibitor、egfr_inhibitor、hmgcr_inhibitor、raf_inhibitorの5つを 特徴量として追加
pr_aucで選定する理由としては、loglossが高いところは1が多いMoAであり それを改善したい。pr_aucが高い特徴量は1である部分を正確に当てられているはずだから。
ベース https://www.kaggle.com/sinchir0/nn-use-train-public#CV-logloss
今回 https://www.kaggle.com/sinchir0/nn-postpred-using-high-auc-col-oof-pred/notebook
結果: CV:0.014410417589767143 → 0.014427004195485853 に悪化
rankgaussかけてなかったから、かけてみる。
Case1にrankgaussを適用
CV:0.01441 → 0.01444 LB : 0.01834 → 0.01834
CVだけ落ちてるから良い方法とは言えなさそう・・・。 rankgaussかけてないときより、CVの悪化具合がひどい。 次はpr_aucの閾値を0.80まで下げてやってみる。
同じ考えで、non-scoredを予測した特徴量追加する方法もあるかな。このNotebookでやっているようだから、やってみる。ついでにFEも真似してみる。https://www.kaggle.com/kushal1506/moa-pretrained-non-scored-targets-as-meta-features/data#This-Notebook-is-an-Updated-version-of-my-previous-kernel-https://www.kaggle.com/kushal1506/moa-pytorch-feature-engineering-0-01846
Case2にpr_aucが0.80以上の特徴量15個を追加。 https://www.kaggle.com/sinchir0/nn-postpred-using-high-auc-col-oof-pred-over0-80/output?scriptVersionId=47508970
CV:0.01444 → 0.01454 LB : 0.01834 → 0.01833 CV悪化のLB改善。うーむ悩む。
ただ、drug idベースでMoAが決まっているから、targetの特徴量を可能な限り使っていく方針は良さげ。 次はnon-scoredを予測した特徴量追加する方法を試してみる。もしくは、pr_aucの区切りなく全特徴量を 使ってみてもいいかもしれない。
targetの特徴量207個全部追加 https://www.kaggle.com/sinchir0/nn-postpred-using-high-auc-col-oof-pred-all/output?scriptVersionId=47559436
CV:0.01454 → 0.01462 LB : 0.01833 → 0.01833 CV悪化のLB変わらず
0しか持ってない列だけ落とす、とかもありかも。
概要
drug idベースでMoAを決めているのであれば、targetの情報をできる限り使う方針が良い気がする。 (同じ考え方ならTarget Encodingも有効かも)
一度予測したresultのcolから、pr_aucが上位のもののoofとpredを出力して、 特徴量として使用してみる。