機械学習の選び方を、実験から考える。
同じデータでも、手法や評価の仕方を変えると、選ぶべきモデルは変わります。このノートでは、機械学習や日本語RAGを実際に動かし、精度や速度の差がどこから生まれるのかを調べています。比較の条件と結果をたどりながら、自分の用途で何を確かめればよいかを考えるための記録です。
注目の検証
XGBoost・LightGBM・CatBoost比較—精度と学習時間で選ぶ
XGBoost・LightGBM・CatBoostを既定設定で比べると、CatBoostのROC-AUCが最も高いものの、adult全件ではLightGBMと表示4桁で一致し、magic全件では差が残りました。今回のCPU・既定設定ではCatBoostの学習時間は最速ライブラリの16〜40倍。二値分類3データセット計10条件の実測から、データごとの精度差と学習回数に応じた選び方を整理します。
回帰の評価指標はどう選ぶ?RMSE・MAE・MAPEの違いを比較
RMSE・MAE・MAPEで回帰モデルの1位が入れ替わったら、どれを信じればよいのでしょうか。8モデルを比較すると、RMSEとMAEの1位一致率は、右への偏りだけを強めた条件より、予測できない外れ値を混ぜた条件で大きく下がりました。実測値がゼロ付近ではMAPEも不安定になります。外したときの損失から主指標を決める手順を整理します。
日本語RAGの埋め込みモデル9種比較—大きいほど検索精度が上がるとは限らない
ruri-v3・multilingual-e5・static-embedding-japaneseなど日本語の埋め込みモデル9種をApple M1で比較しました。検索3指標の測定値はruri-v3-130mが最も高く、310mへ大きくしても上がりませんでした。JSTS・JSQuADによる精度・速度・サイズの実測から、用途別の選び方と注意点を整理します。
新着コラム
コラム一覧へ初めての方へ
前提知識が少なくても読める記事から、知りたいことに近いものを選べます。最新の検証
LightGBMでCSV読込後に予測できないとき、カテゴリ型を復元する
CSVを読み直すとLightGBMの予測が止まる。model.txtに残るカテゴリ一覧を使い、NA・001・空文字を復旧しました。戻せる情報と失われた情報の違い、列順の落とし穴、復旧関数の使い方を示します。
pandasのshift(1)で「前日」を作ったら、2日前の値が入っていた
日付が抜けるとshift(1)は前日ではなく前の行を返します。NaN同士でも参照日が違う例を13行の人工データで確認。自分のCSVでずれた日付を探し、前日値と3日平均を作り直すコードを紹介します。
LightGBMのNo further splitsは無視していい?警告100回と0回を比べた
No further splitsが100回出たモデルは、0回のモデルより誤差が小さくなりました。警告の件数で学習失敗を決められない理由を実測で確認し、手元のモデルの木・予測・誤差を調べる診断関数も紹介します。
分類のしきい値0.5は最適か—不均衡データでF1の改善幅を比較
分類のしきい値を0.5から変えると、見逃しと誤検知はどう変わるのか。少数派5〜50%の合成データでロジスティック回帰とLightGBMを比較しました。F1の改善幅、目的による閾値の違い、テストデータで調整すると成績を過大評価する理由を解説します。
XGBoostとLightGBMの比較はseedで変わるか—評価件数と順位の安定性を検証
モデル比較で出た僅差を、1回の結果だけで判断してよいのでしょうか。Adultデータで分割を120回変え、訓練件数と評価件数を分けて比較しました。評価だけを減らすとLightGBMの勝率は99.2%から66.7%へ低下。AUC差のばらつきと逆転割合を確認する方法を紹介します。