タグ・5本
データリーク
同じ人が学習・検証の両方に入ると?交差検証のROC-AUCを実測比較
交差検証で同じ人の行が学習側と検証側にまたがると、スコアは新規グループでの評価より高く出ました(今回の合成データのROC-AUC平均で、KFoldは+0.085、StratifiedKFoldは+0.084)。GroupKFoldならまたがりは全シードで0件です。不均衡データでの層化の効きどころも合成データで実測しました。
ターゲットエンコーディングのデータリーク—無関係な列のAUCが0.795まで上がった
ターゲットエンコーディングを全データのカテゴリ平均で作ると、無関係な乱数列でも交差検証AUCが0.795まで上がりました(独立ホールドアウトでは0.499)。平滑化(スムージング)を強めても上振れは頭打ちで残り、out-of-fold実装なら0.5付近へ戻りました。どんな条件で見かけのスコアが膨らむかも、水準数と件数を変えて実測しています。
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、よく警告される標準化・欠損補完の順序ミスでは差を確認できませんでした。上振れの大きさはパターンごとの設定に依存し、危険度の順位ではありません。手元で試せる実装例つきです。