タグ・27本
機械学習
分類のしきい値0.5は最適か—不均衡データでF1の改善幅を比較
分類のしきい値を0.5から変えると、見逃しと誤検知はどう変わるのか。少数派5〜50%の合成データでロジスティック回帰とLightGBMを比較しました。F1の改善幅、目的による閾値の違い、テストデータで調整すると成績を過大評価する理由を解説します。
XGBoostとLightGBMの比較はseedで変わるか—評価件数と順位の安定性を検証
モデル比較で出た僅差を、1回の結果だけで判断してよいのでしょうか。Adultデータで分割を120回変え、訓練件数と評価件数を分けて比較しました。評価だけを減らすとLightGBMの勝率は99.2%から66.7%へ低下。AUC差のばらつきと逆転割合を確認する方法を紹介します。
同じ人が学習・検証の両方に入ると?交差検証のROC-AUCを実測比較
同じ対象の行をグループを無視して行単位で分けると、学習に登場しなかった新規グループでの評価スコアより高い値が出ました(今回の合成データでROC-AUC平均+0.085、20シード中の最大は+0.184)。GroupKFoldは指定したグループが両側にまたがることを防ぎます。不均衡データでの層化の効きどころも合成データで実測しました。
sklearnの既定値で精度が下がる場所を6データで実測—最初に疑うのはスケーリング忘れ
scikit-learnを既定のまま使うと精度が下がる箇所を、6つの分類データで比較しました。スケールがバラバラなwineではSVMの正解率が標準化だけで0.672から0.983へ上がる一方、元から同尺度の手書き数字ではわずかに下がります。max_iterとCの調整では改善を確認できませんでした。
LightGBMでゼロが多い件数・金額を予測する—Poisson・Tweedieの選び方
ゼロが多い件数・金額データで、LightGBMのPoisson・Tweedie・二乗誤差・log1pを比較しました。1行ごとの誤差と予測合計で結果が逆になった条件から、目的関数を選ぶ基準を整理します。
不均衡回帰で稀な高値を予測する—LightGBMの8条件を比較
LightGBMの回帰で少数の高値だけ大きく外れるとき、重み付け、リサンプリング、分位点回帰、対数変換のどれを試すべきか。高値側のMAEと全体RMSEを合成データと住宅価格データで比較し、改善と悪化の交換を整理します。
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を比較
相関する特徴量があるとき、データを作った式での寄与を正解に採ると、先に真の第1位を見失ったのはPermutation Importance(PFI)ではなくdrop-columnでした。合成データで相関を0から0.999まで動かし、特徴量重要度の順位と配分がどこから崩れるかを測っています。
SHAPの特徴量重要度は正しい?—正解つきデータでずれの原因を検証
SHAPの特徴量重要度は本当に当たっているのか、真の答えが分かる合成データで採点しました。重要度に開きがあれば木モデルの並び順は当たる一方、効果がゼロの列にも重要度が配られ、相関が強いと上位へ食い込みます。手元のモデルを乱数列で点検する手順まで載せています。
ターゲットエンコーディングのデータリーク—無関係な列のAUCが0.795まで上がった
目的変数と何の関係もない乱数のカテゴリ列でも、全データでカテゴリ平均を作ると交差検証AUCが0.795まで上がり、独立ホールドアウトでは0.499でした。どんな条件で見かけのスコアが膨らみ、平滑化とout-of-fold実装のどちらで防げるのかを実測しています。
回帰の評価指標はどう選ぶ?RMSE・MAE・MAPEの違いを比較
回帰モデルの評価でRMSE・MAE・MAPEの順位が違ったとき、どれを信じればよいのでしょうか。外れ値やゼロ付近の値が各指標へ与える影響を比べ、選び方を3段階で整理します。
変化点検知はペナルティ次第でF1が3倍変わる—手法を選ぶより先に決める設定
変化点検知のライブラリ ruptures で、手法とペナルティのどちらが結果を左右するかを実測しました。同じ Pelt でも F1 は 0.275 から 0.931 まで動き、真の変化点が平均4.4本のところ平均37.0本を検出した条件もありました。位置が分かっている合成信号で3手法とペナルティ4水準を採点し、自分のデータで値を決める手順までまとめました。
ARIMA・指数平滑はナイーブ予測に勝てるか—平均では勝ち、週次では4割の系列で勝てなかった
ARIMAや指数平滑が「前の値をコピーするだけ」のナイーブ予測に勝てているかをM4データの859系列で実測しました。平均誤差では古典手法が勝ちますが、系列ごとに見ると週次では4割で勝てていません。月次で最下位だったのは季節ナイーブでした。
正解率99%でも少数派recallは0—不均衡データで何を見るか
少数派が1%のデータでは、多数派を出すだけのダミー分類器でも正解率は99%に届き、少数派を1件も当てられません。実力差はPR-AUCと少数派recallに現れますが、学習済みモデルでも少数派を全件見逃す回があり、1回の測定では優劣を決められないことも分かりました。3つの不均衡度×20シードで実測しています。
KNN・MICEの欠損値補完を実測—効き目は下流モデルで大きく変わる
KNNImputerや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差を読むときの注意点まで、3モデル×10シードで実測しています。コピペで動くサンプルつき。
解約したか分からないまま追跡が終わったデータを、未解約として扱ってよいのでしょうか。二値分類、追跡切れの除外、生存分析を合成データで比較し、解約率の見積もりがずれる理由と手法を選ぶ際の確認点を説明します。
本番の機械学習モデルを運用する人向けに、panderaとは何か、DataFrameSchemaの基本的な使い方、推論前に検出できる入力異常と検出できない変化を実測結果から解説します。
EBMとLightGBMを比較|精度・学習時間・交互作用の違い
実データ3件では、EBMとLightGBMのROC-AUCの差はどちらの向きも0.012以下でした。代わりに開いたのは学習時間で、全21セルの平均は73.00秒対0.116秒。3つの特徴量が同時に効く合成データではEBMが0.509まで落ちます。
不均衡データにSMOTEやクラス重みを最初から入れるべきか、LightGBMの無処置を基準に測りました。合成データ4水準でも実データ1件でも、4つの対策は無処置の平均PR-AUCを一度も上回れません。少数派1%では無処置0.558に対しSMOTE 0.494で、差は不均衡が強いほど広がりました。
Claude Codeはデータリークを見抜いた—対策が書いてあるのに効いていないコードでも
コードレビューでデータリークを見つけられるかを実測しました。手元の採点だけが嘘になるリークを6種類仕込み、Claude Code(Sonnet 5)に読ませたところ、対策が書いてあるのに効いていない難しい版で34回中33回、易しい版と合わせて70回中69回で機序まで言い当てています。代わりに、正しいコードを疑う指摘が出ました。手元で試せる検証コードつき。
LLMの自動評価スコアをそのまま平均してよいか—信頼区間の落とし穴とPPI
人手評価できる件数は限られる一方、モデルなら大量に採点できます。そのモデル採点をそのまま平均して信頼区間を付けてよいのかを、真の平均が分かる合成データで4,000回の反復から実測しました。予測平均が0.10偏った条件では、2万件から作った95%信頼区間の幅が±0.013まで狭まる一方で真値を4,000回とも外し、人手評価を増やしても改善しません。少数の人手評価でその偏りを補正するPPIでは、人手評価だけを使う場合より区間を約28%狭くしたまま妥当性を保てました。実際のLLMは使わず、一次式の予測器で検証しています。
決定木の代理モデルはどこまで信頼できる?LightGBMとの一致率を検証
LightGBMの判断を浅い決定木で説明するとき、その代理モデルは本体をどこまで再現できるのでしょうか。合成二値分類で本体との一致率(忠実度)を測りました。複雑な条件では、人が読める深さ3で平均60.9%。深さ12・葉415枚まで増やしても66.9%にとどまり、学習データ上の一致だけが伸びました。
交差検証の前に前処理するとCVはどれだけ変わるか—特徴選択・SMOTE・標準化を実測
交差検証の前に前処理を全データへ当てると、CVスコアが本来より高く出ることがあります。4種類を測ると、標準化と欠損補完では差を確認できず、列数の多いデータでの特徴選択で平均0.027、分割前のSMOTEは木モデルで0.1を超えました。合成データ10シードの実測とコピペで動くサンプルつき。
データリーク5パターンで交差検証はどれだけ甘くなるか—分割前SMOTEは+0.24、前処理の順序ミスは差を確認できず
機械学習のデータリーク5パターンを合成データに作り込み、交差検証のスコアがリークなしの評価用データよりどれだけ高く出るかをLightGBMで実測しました。この強度設定では分割前SMOTEが+0.24、よく警告される標準化・欠損補完の順序ミスでは差を確認できませんでした。盛れ幅はパターンごとの設定に依存し、危険度の順位ではありません。手元で試せる実装例つきです。
特徴量の「全部盛り」はGBDTの精度を下げるか—5手法を実測比較
特徴量を全部盛りにしても、GBDT(LightGBM)の held-out 精度は今回は壊れませんでした。数値信号が豊富な合成データではむしろ改善する一方、実データ adult では精度が動かないまま特徴量数と学習時間だけが数倍に増えました。合成2種と実データ2種でablation比較し、手元で試せる実装例つきで記録します。
XGBoost・LightGBM・CatBoost比較—精度と学習時間で選ぶ
既定設定ではCatBoostのROC-AUCが最も高いものの、その差は学習データが数万件まで増えるとほぼ消えました。学習時間はCatBoostが全条件で最も遅く、最速ライブラリの16〜40倍。二値分類3データセット計10条件の実測から、データ規模と学習回数に応じた選び方を整理します。