1

これは一種のきちんとした問題であり、私はそれを考えるのを楽しんでいました...

「ウィジェット レンタル」Web サイトを運営していて、アプリケーション上で、将来の購入者が価格に基づいてウィジェットを並べ替えられるようにしたいとします。(低から高または高から低)。

各ウィジェットは、時期によって価格が異なる場合があります。一部のウィジェットには、「ハイ」シーズンと「ロー」シーズンがあるため、シーズンによって数十の異なる価格が設定されます。

しかし、「ウィジェット」の売り手は特にやんちゃで、ウィジェットを 1 年のうち 1 日だけ非常に高く、1 年のうち 1 日を非常に安く設定すると、簡単に低ソート範囲と高ソート範囲。

現在、ウィジェットの「最低価格」を計算するために、データセットから値を取得するという非常に単純なソリューションを採用しましたlowest( N )

私がしたいのは、ウィジェットの「最低価格」を取得することです。これは、レンタル可能な価格を正確に描写し、低/高帯域の外れ値を削除します。

このグラフを見てください...値とともに...

チャート

X 軸 - 時間 (それぞれの重要な間隔は 1 日です)

Y 軸 - 価格

X 軸は時間、Y 軸は価格です。現在、これには正規分布が含まれており、そのデータセットには実際の統計的外れ値はありません。価格が最低値と最高値の間で 200% 変動することはよくあることです。

ただし、この 2 番目のチャートを見てください...これには 1 日料金が含まれており、わずか 20 ユーロです...

ここに画像の説明を入力

Grubbs テストを使用して遊んでみましたが、非常にうまく機能しているようです。

重要なことは、「価格から」取得したいということです。つまり、「このウィジェットはXXXXからレンタルできます」と言えるようになりたいのです。そのため、全体として採用された全体的な価格設定を反映し、明確な異常値を無視する必要があります。

すでに存在するものの方向性を教えていただければ、PHP ボーナス ポイントです。(しかし、これを自分で PHP でコーディングできることをうれしく思います)。

4

1 に答える 1

1

1 つの問題は、外れ値が実際に何であるかについて複数の定義があることです。ただし、この目的には、簡単な解決策で十分と思われます。

値の範囲を平均価格から+- パーセントまたは +- 標準偏差の数 (おそらく 1 つまたは 2 つですが、非常に大きくなる可能性があります) に制限することで、外れ値を取り除くことができます。価格があまり高くない場合、割引は異常値と見なされる可能性があり、適切である場合とそうでない場合があるため、両方を組み合わせて使用​​することをお勧めします。いずれにせよ、それがどれほど敏感であるかを判断するには、おそらくいくつかの実験を行う必要があります. おそらく、5 ~ 20% であっても、外れ値が平均値から少なくとも数% 離れている必要があるように設定したいと思うでしょう。以下は、平均 $500 に基づいたパーセンテージ ベースの制限です。

  • 90%: $50 ~ $950
  • 75%: $125 ~ $875
  • 50%: $250 ~ $750
  • 30%: $350 ~ $650
  • 25%: $375 ~ $650

複数のパスが使用されている場合は、価格を並べ替えてから、範囲を超えている限り、平均から最も遠い価格を削除する方が簡単です (おそらく、最高価格と最低価格を考慮します)。これは、シングル パスの O(N*D) ではなく、効果がなくなるまで連続シングル パスの結果を取得する O(N*D log D) になります。ここで、N はレンタルするアイテムの数であり、D です。考慮される日数です。

また、イプシロンの値を定義する方法を少し試してみると、 Ramer–Douglas–Peucker アルゴリズムが関心のある点を見つけるのに役立つことがわかるかもしれません。

于 2013-07-04T22:07:12.050 に答える