タグ・5本
scikit-learn
scikit-learnモデルのバージョン互換性—pickle・joblib・skops・ONNXの予測差を実測
scikit-learn 1.5.2で保存した2モデルを1.9.0で読み込むと、pickle・joblib・skopsは予測確率が完全に一致しました。ONNXだけは警告なしで1,000件中2件の判定が反転し、その差はバージョン違いではなく変換と推論の経路で生じていました。
Permutation Importanceは相関する特徴量でどう変わる?PFIとdrop-columnを比較
相関する特徴量があるとき、データを作った式での寄与を正解に採ると、相関0.8で生成式の第1位と一致しなくなったのはPermutation Importance(PFI)ではなくdrop-columnでした。合成データで相関を0から0.999まで動かし、生成式の寄与と各手法の順位・配分がどこでずれるかを測っています。再学習するdrop-columnと、学習済みモデルを測るPFIは問いが異なります。
回帰の評価指標はどう選ぶ?RMSE・MAE・MAPEの違いを比較
RMSE・MAE・MAPEで回帰モデルの1位が入れ替わったら、どれを信じればよいのでしょうか。8モデルを比較すると、RMSEとMAEの1位一致率は、右への偏りだけを強めた条件より、予測できない外れ値を混ぜた条件で大きく下がりました。実測値がゼロ付近ではMAPEも不安定になります。外したときの損失から主指標を決める手順を整理します。
KNN・MICEの欠損値補完を実測—効き目は下流モデルで大きく変わる
scikit-learnのKNNImputerやIterativeImputer(MICE)のような手の込んだ補完が中央値補完より効くかは、補完のあとに学習するモデルで変わりました。線形モデルでは差が残る一方、LightGBMでは埋めた値の誤差を3割以上減らしても得点はほとんど動きません。MICEが想定どおりの欠損(MAR)でかえって悪化した予想外れも含め、2データセット・欠損機構3種・欠損率3水準・seed10本で実測しました。コピペで動くサンプルつき。
予測確率のキャリブレーションを実測—Platt・Isotonicが効くモデル、効かないモデル
歪んだ予測確率をPlattスケーリングとIsotonic回帰でキャリブレーション(較正)すると、確率のずれ(ECE)はGaussianNBで約0.078から0.017まで下がる一方、順位づけ(ROC-AUC)への影響は最大0.0017で確認できませんでした。効くモデルと効かないモデルの違い、データ量によるPlatt/Isotonicの選び方、小さなECE差を読むときの注意点まで、scikit-learnのCalibratedClassifierCVを使い3モデル×10シードで実測しています。コピペで動くサンプルつき。