<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>guppy-fishのブログ</title>
<link>https://ameblo.jp/guppy-fish/</link>
<atom:link href="https://rssblog.ameba.jp/guppy-fish/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>ブログの説明を入力します。</description>
<language>ja</language>
<item>
<title>予測モデルは何を予測すべきか</title>
<description>
<![CDATA[ <p>予測モデルの話をする前に、分布を見せる。 平均だけを見ると、現場で起きている損失を見落とすことがある。需要予測では特にそうだ。 モデルを組む前に立ち止まる場所は、精度指標の前にある。</p><p>&nbsp;</p><p><strong>平均ではなく、右の裾を見る</strong></p><p>需要予測を頼まれると、多くの現場で最初に飛んでくるのは「MAPEを何%まで下げてくれ」だ。 私も入社3年目までは同じ問いに乗っていた。 だが実際に効いたのは、平均を当てることではなく、翌週金曜17時の欠品件数を26%減らすことだった。 予測の目的関数は精度ではない。予測を使って避けたい損失の側にある。</p><blockquote style="border-left:4px solid #7e8aa2; padding-left:12px; color:#555;"><p><strong>分布メモ</strong><br>平均ではなく、右の裾を見る。欠品が起きるのは、たいていそこだ。</p></blockquote><p>朝、白のスノーピーク シェラカップにコンビニのブラックを注ぎながら、SKU別の在庫推移を眺めていて、ようやくその区別がついた。 平均を1%当てても、右の裾のリスクが変わらなければ、倉庫の人は日曜出勤を続ける。 金曜17時に切れているSKUと、月曜10時に切れているSKUでは、意思決定の重みも違う。</p><p>&nbsp;</p><p><strong>MAPEが下がっても欠品は減らない</strong></p><p>MAPEやRMSEは、数字として便利すぎる。 1枚のスライドに載る。会議で共有できる。だから追いかけたくなる。 ただ、この指標はコストの非対称性を無視している。 ある食品SKUで、1個の欠品が失う粗利は月38万円ぶん、1個の余剰が生む廃棄コストは月4.2万円ぶん、という店舗があった。 だとすれば損失関数はpinball lossに寄せて、上振れと下振れを別々に罰する形にすべきだ。 ここを揃えずに「精度を上げました」と言うのは、たぶん誠実じゃない。 平均予測は、意思決定に直結しにくい。 分位点予測、たとえばp90やp95は、発注点や安全在庫と噛み合う。 私は「まず分布を見よう」と口に出す前に、たいてい既に手元でヒストグラムを描いている。 上司の「結論から」に地味に凹むタイプなので、せめて分布を1枚だけ先に置いておきたい。</p><p>&nbsp;</p><p><strong>その0.03は誰の判断を変えるか</strong></p><p>だから最初の1日は、モデルを触らない。 誰が、いつ、その予測値を見て、何を決めるのか。 発注担当なのか、シフト組みのマネージャーなのか。 数字が0.7動いたら発注が1ケース変わるのか、変わらないのか。 この「意思決定の粒度」より細かい精度は、原理的に価値を生まない。 新人時代、私はこれを飛ばしてXGBoostを回し、指標だけ0.03改善した報告を上司にして、静かに「で？」と聞かれた経験がある。 あの「で？」は、いま思うとまっとうだった。 予測すべきなのはyそのものではなく、yを見て動く現場の意思決定の分布のほうだ。 発注の1ケースが動くかどうか、その分岐に効く数字だけが、モデルの評価軸に載る資格を持つ。</p><p>&nbsp;</p><p><strong>残った仮説：右側のSKUだけを見る</strong></p><p>次に見るのは、平均ではなく右の裾だ。 この仮説は、まだ反証できる。 以上。反証歓迎。</p>
]]>
</description>
<link>https://ameblo.jp/guppy-fish/entry-12972907937.html</link>
<pubDate>Thu, 16 Jul 2026 01:01:58 +0900</pubDate>
</item>
</channel>
</rss>
