タグ・5本
データリーク
同じ人が学習・検証の両方に入ると?交差検証のROC-AUCを実測比較
同じ対象の行をグループを無視して行単位で分けると、学習に登場しなかった新規グループでの評価スコアより高い値が出ました(今回の合成データでROC-AUC平均+0.085、20シード中の最大は+0.184)。GroupKFoldは指定したグループが両側にまたがることを防ぎます。不均衡データでの層化の効きどころも合成データで実測しました。
ターゲットエンコーディングのデータリーク—無関係な列のAUCが0.795まで上がった
目的変数と何の関係もない乱数のカテゴリ列でも、全データでカテゴリ平均を作ると交差検証AUCが0.795まで上がり、独立ホールドアウトでは0.499でした。どんな条件で見かけのスコアが膨らみ、平滑化とout-of-fold実装のどちらで防げるのかを実測しています。
Claude Codeはデータリークを見抜いた—対策が書いてあるのに効いていないコードでも
コードレビューでデータリークを見つけられるかを実測しました。手元の採点だけが嘘になるリークを6種類仕込み、Claude Code(Sonnet 5)に読ませたところ、対策が書いてあるのに効いていない難しい版で34回中33回、易しい版と合わせて70回中69回で機序まで言い当てています。代わりに、正しいコードを疑う指摘が出ました。手元で試せる検証コードつき。
交差検証の前に前処理するとCVはどれだけ変わるか—特徴選択・SMOTE・標準化を実測
交差検証の前に前処理を全データへ当てると、CVスコアが本来より高く出ることがあります。4種類を測ると、標準化と欠損補完では差を確認できず、列数の多いデータでの特徴選択で平均0.027、分割前のSMOTEは木モデルで0.1を超えました。合成データ10シードの実測とコピペで動くサンプルつき。
データリーク5パターンで交差検証はどれだけ甘くなるか—分割前SMOTEは+0.24、前処理の順序ミスは差を確認できず
機械学習のデータリーク5パターンを合成データに作り込み、交差検証のスコアがリークなしの評価用データよりどれだけ高く出るかをLightGBMで実測しました。この強度設定では分割前SMOTEが+0.24、よく警告される標準化・欠損補完の順序ミスでは差を確認できませんでした。盛れ幅はパターンごとの設定に依存し、危険度の順位ではありません。手元で試せる実装例つきです。