【重要】データの扱い方(Amazonセールアプリ編)

スポンサーリンク
データ解析


データ分析をしたい!
データ分析することで、新たな発見や問題解決につながるのなら、やらないわけにはいかないですね。

では、「データを集めてみよう」といっても、始めはなかなか難しいものです。今回は、ある例を提示しますので、一緒に考えてみましょう。

Amazonセールの対象商品を予測する

こんなアプリを開発するために、機械学習で予測するモデルを作ることとします。
Amazon、みんな利用していますよね。ときどきセールもやっています。
こんな事ないですか?

この商品買ったけど、すぐにセールで安売りしてた!

もうすぐセールだから、この商品は待っておこう

セールでも値下げしていない!今まで待った時間を返して!

でも、セールの対象商品を予測するアプリがあればどうでしょうか。

この商品はセール対象になる可能性が高いから、セールまで待っておこう

 

この商品はセールにならない可能性が高いから、今買ってしまおう

など、行動変容が生まれます。

アプリをもとに金銭的にも、時間的に有用な情報が得られるということですね。

あったらいいですね。実際あるのかな?わたしが簡単に調べた限りではなさそうですが。

データ分析の概要

いまさらだけど、データ解析 ってなに?

ある商品の通常の値段と、セール中の値段を分析して、セール対象商品をみつける。

目的変数、ターゲット

  • セールで値段がさがった商品
  • セールでも値段が下がらなかった商品

この二分類ですね

説明変数、特徴量

ある商品の通常値段、商品の種類(食料品、電化製品、パソコン周辺機器など)、発売日、型落ちしているか(同じような商品で新しいモデルが発売されているかどうか)、商品の売れ行き、商品の星の数(レヴューの星)などがあります。

※ 今回は目的変数にのみ着目して、説明変数については説明しません

データ収集方法

AmazonやKeepa(Amazonにある商品の過去の値段の推移が分かる)などから情報を得ます。Webスクレイピングを行うことが一般的だと思います。(今勉強中なので、詳しいことは分かりません)

【超重要】はじめてのデータ収集方法

データを定義する

目的変数(セールかそうでないか)の定義を決めます。

  • セール期間中に値段が下がった商品:セール対象(1)
  • セール期間中に値段が下がらなかった商品:セール以外(0)

(二分類モデルは有を1、無を0とします)
つまり、通常の値段とセール期間中の値段の差をみる必要があります。

商品の通常値段

「セール以外の値段」
これが一つの答えですね。しかし、Keepaを使えば分かるように、商品の値段はセール以外でも、上下しているものも多いです。
「セール中以外の時期で最低の値段」
おそらくこれが、通常の値段の定義としてみましょう。

目的変数の定義

意味のある値段の差

「セール中以外の時期で最低の値段」と「セール中の値段」との差をみて

  • 値段が下がっていたら、セール対象(1)
  • 値段が下がっていなければ、セール以外(0)

これで、いいのでしょうか?
たとえば、

セール中に値段が10円下がった

この場合はセール対象(1)にしていいでしょうか?

では、1円なら?

非常に細かいことのように感じるかもしれませんが、ここは非常に重要です。

二分類の定義を少し変えると、モデルの予測精度も大きく変化する可能性があるためです。また、そのモデルにどれだけ意味を持たすことができるか、という根本的な問題にもかかわります。
では、

  • セール中に通常の値段より100円以上値下がりした商品
  • セール中に通常の値段より10%以上値下がりした商品

などが挙げられます。
ここで一度、原点回帰して目的を考えます

お得な情報を発信することが目的ですよね

唯一の答えはないですが、アプリの値段が月額100円として売り出すなら、100円の値段の差でもお得感があるかもしれません。セールで1つでも商品を買えば、アプリのもとがとれると考えるためです。こんな感じで、意味のある(セールでお得であると思える値段の差)がなにかを考えなければなりません。

データをみて確認

縦軸が値段です。マイナスは値段が下がったという意味です
横軸が個別の商品です

こんなデータであれば、赤の点線の上がセール以外、赤の点線より下がセール対象でしょうか。縦軸を%で表しても同じです。つまり、グラフの分布からセール対象とセール以外で、違いがみてとれるか、ということです。これが、グラフなどで可視化する意味です。

このデータの可視化と意味のある値段の差を折り合いで、セール対象と、セール以外を定義する必要があります。

この作業は、数値をそのまま使う場合は必要ありませんが、分類する場合は必須です。目的変数のみならず、説明変数でも同様です。

どうですか?結構難しいですよね。こんな作業がデータ分析には必要です。

まとめ

データは機械学習などのモデルに入れる前に、分類するための基準を設ける必要がある
基準は意味のあるものにしなければならない
意味のあるものとは、目的によって異なる
なので、目的の設定は非常に重要である

機械学習の始め方(概要編)

 





コメント

タイトルとURLをコピーしました