team90s / kaggle-MoA

https://www.kaggle.com/c/lish-moa
2 stars 1 forks source link

【experiment】resultのcolから、pr_aucが上位のもののoofとpredを出力して、 特徴量として使用 #136

Closed sinchir0 closed 3 years ago

sinchir0 commented 3 years ago

概要

drug idベースでMoAを決めているのであれば、targetの情報をできる限り使う方針が良い気がする。 (同じ考え方ならTarget Encodingも有効かも)

一度予測したresultのcolから、pr_aucが上位のもののoofとpredを出力して、 特徴量として使用してみる。

sinchir0 commented 3 years ago

Case1

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かけてなかったから、かけてみる。

sinchir0 commented 3 years ago

Case2

Case1にrankgaussを適用

CV:0.01441 → 0.01444 LB : 0.01834 → 0.01834

CVだけ落ちてるから良い方法とは言えなさそう・・・。 rankgaussかけてないときより、CVの悪化具合がひどい。 次はpr_aucの閾値を0.80まで下げてやってみる。

sinchir0 commented 3 years ago

同じ考えで、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

sinchir0 commented 3 years ago

Case3

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の区切りなく全特徴量を 使ってみてもいいかもしれない。

sinchir0 commented 3 years ago

Case4

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しか持ってない列だけ落とす、とかもありかも。