DataRobotのデータサイエンティストの中山晴之です。
機械学習を使った出店計画(1)では、新店の売上予測に関して、下図の機械学習のプロセスのうちの「データの準備」についてお話しました。本ブログでは、次の「モデルの作成」について、モデルの分割とデータの選択の2つのポイントにフォーカスしながら説明します。
モデルの分割
モデルは幾つ作れば良いのでしょうか?
次の2つの観点でモデルを分割することを考えてみましょう。
- コスト削減
- 精度向上
コスト削減のためのモデル分割
出店の是非を判断するためには現地調査が欠かせません。GISや公開されている情報からは得られない、現地でしか得られない、以下のような情報を収集する必要があるからです。このうち、定性的な情報は、モデリングには使用できませんが、とても重要です。数千万円の投資に関する判断です。売上に影響するすべての因子がデータ化されていないことを考えると、モデルの予測値のみで投資の是非を判断するのは危険で、こうした定性的な情報を加味して判断すべきでしょう。
定量的 ※1 |
- 店前の人の通行量(曜日別、時間帯別)※2
- 店前の車の交通量(曜日別、時間帯別、車線別、車種別)※3
- 近隣の駅の乗降客数(曜日別、時間帯別、出口別)
- 視界性(街路樹がある場合は季節別)※4
- 昼間人口 ※5
|
定性的 |
- 本当の商圏(曜日別、時間帯別)
- 店前を通行している人の発生源、移動目的
- 店前を通行している車の発生源、移動目的
- 広域的な人や車の流れ
- ローカルな競合
- 候補地周辺の環境(治安などの状況)
- 空き物件となった理由や過去の履歴
|
※1 |
既存店に対して調査されていない項目は対象外になります。 |
※2 |
近隣に学校があり、店前の通りが通学路になっている場合には注意が必要です。例えば、近隣に大学がある場合、平日と休日はもちろんのこと、平日だけとっても、授業がある期間と休みの期間とで、通行量は大きく異なります。その場合、可能であれば、授業がある期間と休みの期間とでそれぞれ測定し、それぞれの期間の長さで重み付け平均を計算するなどした方が良いでしょう。大学の文化系の学部の場合、年の半分は通学しない場合もあります。また、業種にもよりますが、高校以下は顧客にならない場合もあります。 |
※3 |
国土交通省が5年に一度「道路交通センサス」と呼ばれる全国道路・街路交通情勢調査を実施し、結果を公開していますが、出店計画には使えないと考えた方が良いでしょう。基本的には、国道・県道の秋の平日1日の7時〜19時までの交通量しか測定しておらず、測定区間も非常に長いためです。業態にもよりますが、候補地が「生活道路」と呼ばれる国道でも県道でもない道路に面していることが多いです。また、休日の交通量も重要ですし、平日でも晴天と雨天とでは交通量は大きく異なります。24時間営業の店舗の場合は、夜間の交通量も重要です。例えば、近隣に郊外型のショッピングセンターがある場合、ショッピングセンターの営業時間の交通量は非常に多いですが、営業時間外はゼロに近くなることもあり、注意が必要です。
また、以前は、中央分離帯の状況や信号の有無、右折専用レーンの有無、接道の状況なども現地調査の項目でしたが、最近は、こうした項目はGoogle Mapsやそのストリートビューで確認できるようになりました(例)。 |
※4 |
視界性とは、「どれだけ遠くから店舗が見えるか」ということを一般的には店舗までの距離で表したものです。通常、実際に車を運転しながら測定しますので、測定者の主観が入りやすく、使用すべきかどうかは議論があるところです。特にサインポールを設ける場合は、サインポールを仮想しなければならず、客観性の担保が難しくなりますので、使用しない方が良いでしょう。Google Mapsのストリートビューを使う案もありますが、ストリートビューは、片方の車線で両方向撮影していますので、注意が必要です(例)。社用車を使用する場合は、ドライブレコーダーの活用を検討しても良いかもしれません。それから、使用する場合でも、落葉樹の街路樹がある場合は注意して下さい。葉の生い茂る夏と落葉した冬とでは視界性は大きく異なります。
なお、視界性の数値(店舗までの距離)をそのまま特徴量として使用すべきではありません。視界性を測定する目的は、「立ち寄りやすさ」という指標を特徴量に追加したいからです。お客様が店舗があることを認識したときに、立ち寄ろうと判断し、実際に立ち寄ることができるかどうかを示す指標です。走行速度にもよりますが、ある距離以下はほぼ不可能ですし、ある距離以上は立ち寄りやすさは変わらなくなります。そのため、ドメイン知識を使用した特徴量エンジニアリングを施してから使うことが望ましいでしょう。 |
※5 |
通常、GISで、国勢調査を元にした「昼間人口」や経済センサスを元にした「就業者の人口」を収集することができますが、十分ではありません。近隣に病院や官公庁、ショッピングモールや商店街、観光地などがある場合は、そうした拠点に集まる人口が含まれていないことを考慮する必要があります。ただ、現地に行けば、こうした人口を把握できるかというと、難しい面もあります。そうした拠点の駐車場が更地であれば、Google Mapsで駐車台数をカウントする案(例を下図に示します)もありますが、撮影された日時が不明であることに注意が必要です。
|
ただ、現地調査にはコストがかかります。一箇所につき、少なくとも、平日と休日、それぞれ日中と夜間の状況を調査しなければなりませんので、現地に赴くだけでもかなりの時間を費やす必要があります。そして、これが候補地の物件数でn倍化されます。
そこで、下図のように、2つのモデルを使用することにより、現地調査のコストを大幅に削減することが考えられます。
- 現地調査実施前のデータのみを使用して現地調査をする価値があるか否かを分類するモデルで現地調査をする物件を絞り込み、
- その後、現地調査で得られた定量的な情報を加えて、売上を予測する回帰モデルで売上を予測する
※ |
売上を予測する回帰モデル一つだけを使用し、現地調査の是非の判断と売上の予測の両方に使用する案も考えられます。その場合、現地調査の是非を判断するときには、現地調査の結果に基づく特徴量は欠損値として、是非の判断は予め設定したしきい値(一般的に坪日商などで設定)を超えるか否かで判断することになります。しかし、現地調査後の売上を予測する回帰モデルは、既存店すべてを使用せずに、現地調査の是非を判断するモデルで「実施すべき」と判断される既存店のみを使用して作成する方が、モデルの精度が向上することが期待されますので、分割することをお勧めします。 |
精度向上のためのモデル分割
上記のモデルは、それぞれ1つずつのモデルで良いでしょうか?
環境や店舗の個性の違いにより、以下のようなことが考えられる場合は、モデルを分割することを検討した方が良いでしょう。
- ある特徴量が同じ値でも、それに対する挙動が異なる
- 使用する特徴量が異なる(現地調査の項目も異なる)
環境の違いによるモデルの分割の例としては、ブランド認知度が異なる地域でモデルを分割することが考えられます。「ブランド認知度」をデータ化することが難しいためです。
個性の違いによるモデル分割の例としては、下表に示すように、駐車場の有無で、ロードサイドとビルインとに分割することが考えられます。ロードサイドとビルインとでは、円商圏1kmの人口が同じであっても売上は大きく異なりますし、ドライブ商圏をはじめ、使用する特徴量も大きく異なるからです。
モデル |
駐車場 |
商圏 |
現地調査の項目 |
ロードサイド |
有り |
|
|
ビルイン |
無し |
|
|
※ |
ロードサイドをさらにドライブイン立地か否かで分割する場合があります。ドライブイン立地とは、高速道路のインターチェンジ付近や観光地に至る道路上の店舗を指し、近隣の住民以外の利用が多いことが特徴です。 |
その他、店舗の個性は以下のような項目に表れます。
- 時間帯別の客数の比率
- 売上に占める商品カテゴリーの比率
- 顧客属性の構成比(顧客属性が分かっている場合)
こうした項目でクラスタリングを行うと、驚くほどきれいにグループ分けできることがありますが、課題は、こうした項目はすべて開店後に分かるものであり、売上の予測をするときには分かっていないということです。ただ、売上の予測をするときに分かっている情報だけを使って、各グループに分類するモデルを作成することを試みることは、十分価値があると思われます。
こうした「精度向上のためのモデルの分割」で注意してほしいのは、必ずしもモデルを分割したからと言って精度が上がるとは限らない、ということです。モデルを分割すればするほど、各モデルのトレーニングデータのサンプル数は減ります。一般に、サンプル数が減ればモデルの精度は落ちますので、この影響が大きければ、モデルの精度は期待するほど上がらない結果になります。ただ、これを事前に予測することは大変難しいですので、やってみなければ分かりません。この点で、モデリングの速度が速いDataRobotは最適なツールと言えます。いろいろとやってみて、ベストなモデルを採用して下さい。
モデリングに使用するデータの選択
期間
ターゲットの売上は年商(日商であれば、1年間の平均日商)が良いでしょう。
四季のある日本では、取り扱い商品にも売上にも季節性の周期がありますので、1年間の総売上である年商を使うのが良いでしょう。
ただし、開店直後の数カ月間は含めるべきではありません。開店時のプロモーションの仕方にもよりますが、開店直後しばらくは、売上は独特の動きをするからです。出店の是非は、長期にわたって利益を出し続けられるかどうかで判断すべきですので、安定期に入ってからの売上を使用すべきです。安定期に入るまでの期間は業態によって異なりますが、例えば、外食の場合は3ヶ月と言われています。
したがって、既存店の中でも、少なくとも1年以上前に開店した店舗でないとトレーニングデータとしては使えないと考えた方が良いでしょう。
どの1年間を使うべきか
よく行われる議論は、既存店の下記のいずれの売上を教師データに使用すべきか、です。
- 開店直後の1年間
- モデル作成時点の直近の1年間
下表のように整理することができます。
|
長所 |
短所 |
開店直後の1年間 |
- 現地調査は開店前に1度実施すればよい。
- 開店1年目から不振の店舗がある場合は、セレクションバイアスが軽減される。※1
|
- データ化されていない因子が変化した場合に、モデルの精度が劣化する。※2
- 新しいタイプの競合の出現など、環境の変化に応じて特徴量を追加したり削除したりしたくてもできない。※3
- 上記2点を考慮して、最近開店した店舗にのみに絞ると、データ量が少なくなり、やはり、精度に悪影響を及ぼす。
特に、新規出店を停止した時期があると、サンプル数が著しく減少する恐れがある。
|
モデル作成時点の直近の1年間 |
- 現在営業している店舗全部を使用することができる。
ただし、不振店をすぐに閉店している場合は、セレクションバイアスがあることに注意する必要がある。
- 時代の変化に伴い、特徴量に入っていない因子が変化しても、モデルの精度は劣化しない。
- 環境の変化に合わせて、柔軟に特徴量を追加したり削除したりできる。
|
- 定期的にデータを更新する必要があり、大きなコストが発生する。
- GIS等から取得できるデータは、少なくとも1年に1回。
- 現地調査は、5年に1回以上。
|
※1 |
不振店をすぐに閉店・退店してしまうと、トレーニングデータには好調な既存店のみが含まれることになります。 |
※2 |
例えば、外食の場合、「いきなり○○」などこれまで観測してこなかった競合の出現や、コンビニのチルドや冷凍の惣菜の充実、「○○ Eats」などの宅配サービスの出現が、データ化されていない因子の例として考えられます。また、今後予定されている2019年10月の消費税増税の影響(店内の飲食は10%に上がりますが、テイクアウトには軽減税率が適用されて8%のままです)も軽視できないでしょう。 |
※3 |
競合に関しては、こちらのサイトを使うなどして、過去に遡って状況を再現できる場合があります。 |
特に総店舗数が少ない場合は、データ量の確保を最優先して、「モデル作成時点の直近の1年間」を使用する方が良いでしょう。
すでに「開店直後の1年間」でモデリングを実施してきている場合は、GISのようにあまりコストをかけずに取得できるデータのみを取得し直し、現地調査のデータはそのまま使用してモデリングすることを試みてみて下さい。DataRobotで上記2つの方法を両方とも試みて、良いモデルを選択して下さい。こうした試行錯誤(PDCA)が速く回せるところがDataRobotの特徴です。
なお、いずれの場合も、売上を予測する期間は、新店が開店してからの1年間になりますので、例えば半年後の1年間になることに注意して下さい。必要ならば、トレーニングデータないしは予測結果を補正して使う必要があります。
それから、予測した1年間の売上がずっと維持されるとは限らないことは前述の通りですので、長期的な売上を予測する場合は、何らかの補正やさらなる予測が必要になることになります。
まとめ
新店の売上を予測するモデルを作成するときに検討すべき以下の2点についてお話しました。
いずれに関しても、これに従えば大丈夫というような絶対的なルールは存在しませんので、色々と試行錯誤する必要があります。DataRobotを使えば、こうした試行錯誤(PDCA)を速く回すことができますので、DataRobotで色々と試して、最適なモデルを手に入れて下さい。