ユーザーが商品の将来の価値(または需要)について予測できる本番Webベースの製品があります。履歴データには、約10万の例が含まれ、各例には約5つのパラメーターがあります。
予測と呼ばれるデータのクラスを考えてみましょう。
prediction {
id: int
predictor: int
predictionDate: date
predictedProductId: int
predictedDirection: byte (0 for decrease, 1 for increase)
valueAtPrediciton: float
}
予測の結果を測定するペアの結果クラス:
predictionResult {
id: int
valueTenDaysAfterPrediction: float
valueTwentyDaysAfterPrediction: float
valueThirtyDaysAfterPrediction: float
}
成功のためのテストケースを定義できます。予測時に方向と値を検討するときに、将来の値のチェックポイントのいずれか2つが適切である場合。
success(p: prediction, r: predictionResult): bool =
count: int
count = 0
// value is predicted to fall
if p.predictedDirection = 0 then
if p.valueAtPrediciton > r.valueTenDaysAfterPrediction then count = count + 1
if p.valueAtPrediciton > r.valueTwentyDaysAfterPrediction then count = count + 1
if p.valueAtPrediciton > r.valueThirtyDaysAfterPrediction then count = count + 1
// value is predicted to increase
else
if p.valueAtPrediciton < r.valueTenDaysAfterPrediction then count = count + 1
if p.valueAtPrediciton < r.valueTwentyDaysAfterPrediction then count = count + 1
if p.valueAtPrediciton < r.valueThirtyDaysAfterPrediction then count = count + 1
// success if count = 2 or count = 3
return (count > 1)
ユーザーがフォームを送信した瞬間に予測クラスのすべてが認識され、predictionResultの情報は後で確認されます。理想的には、モデルまたはアルゴリズムは、アルゴリズムが新しい予測に適用されるという3年間の履歴から導き出すことができ、成功するかどうかについての確率を得ることができます(ブールY/Nフラグで満足しますこれが面白いかどうか)。
私は機械学習についてあまりよく知らないので、資料を読み進めようとしています。しかし、このような問題を解決するために必要なことを正確に調査して実践できるように、いくつかのガイダンスがあれば素晴らしいと思います。
ありがとうございました