2

自分のニーズに合わせて、さらに別の食料品リスト アプリを作成することを考えています。リストから項目をチェックする順序を自動的に学習させたいのです。言い換えれば、店舗内でどのルートを取るかを認識している必要があります。アプリがアイテムを並べ替えてくれるので、買い物がスピードアップします。

この問題に対して可能な最も簡単な解決策は何ですか? 私は考えています:

  • ショッピング旅行の時間を計ります。最初のアイテムをクリアしたらタイマーを開始し、最後に停止します。次に、各アイテムの平均時間を計算します。アプリは、この計算された時間に基づいてアイテムを並べ替えることができます。
  • 各項目について、この項目の前後にチェックを入れた他の項目の 2 つのリストを格納します。次に、どういうわけかそれを並べ替えますが、方法はわかりません。:)

他に何か考えられますか?基本的に、自動ソートのための単純な機械学習が必要です。

4

2 に答える 2

2

最初のアプローチ (時間に基づく) の単純なバージョンの問題は、店舗を通過するのにかかる時間の違いを考慮していないことです: デリを待つのに多くの時間を費やした場合、その後の卵は、デリでの待ち時間によって大きく異なります。そのため、チェックする平均時間に基づいて物事を注文することは、おそらく理想的ではありません。

製品のグループを把握できれば、この順序付けを行うのははるかに簡単になります。たとえば、バナナとブドウは 1 つのセクションにあり、通常はそれらが近くにあり、牛乳と卵は別のセクションにあります。このモデルにはいくつかの問題があります (ファンシー チーズ セクションから、または残りの乳製品を含む通常のセクションからチェダーを取得する可能性があります)。通常、グループ B から項目を取得する前に、グループ A から項目を取得します; グループ定義を取得したら、それに基づいて並べ替えるだけです)。

これは、新しいアイテムを入力するときにも役立つ可能性があります。これまでブラックベリーを手に入れたことがないが、アプリが Web などを検索して、ブラックベリーが肉のカテゴリよりも果物のカテゴリに似ていることを確認した場合、それらを入力することを認識します。果物グループ。

では、グルーピングはどのように行うのでしょうか。簡単な方法の 1 つは、アイテム間の平均時間差を距離の尺度として使用して、リスト内のアイテムに対してクラスタリングを行うことです (技術的にはメトリックであるかどうかはわかりませんが、おそらく実際には問題にはなりません)。ここでは、k-means またはその他のクラスタリング アプローチを使用できます。これは、ある種の Web ベースまたはコーパスベースの類似性測定によって強化される可能性もあり、新しいアイテムや店舗での最初の数回の実行でより便利になります。これを支援するために、GPSデータも使用できるかもしれません。

グループへの割り当てとグループの順序付けの間を反復するために、ある種の EM プロセスを実行することもできますが、それが非常に役立つかどうかはわかりません。このプロセスでミスが発生した場合は、手動でグループに割り当てることもできます。

これはクールなアイデアです!解放してくれれば、私が使うかもしれません。:)

于 2012-04-15T21:31:19.230 に答える
1

本当にリストを並べ替えたいだけで、平均時間を使用するだけでは不十分だと思われる場合は、すべての訪問のすべてのアイテムのリストを、アイテムにチェックマークを付けた順序で保持できます。次に、次の方法でアイテムを並べ替えることができます。

2 つのアイテムを比較する場合、アイテム B の前にアイテム A を選択した回数を調べます。次に、アイテム A の前にアイテム B を選択した回数を見て、これらの数に基づいて並べ替えます。つまり、A を B の前に n 回選択し、B を A の前に m 回選択し、n>m の場合、A は B の前に来る必要があります。このコンパレーターを使用してそれらを並べ替えます。

明らかに、n = m のときにどうするかという問題があります。これは、あなたが言及した平均時間を使用して分類できます。

しかし、正直なところ、それらを単純にクラスター化する方が良いかもしれません。または、このアプローチを使用してクラスター内でそれらをソートすることもできます;)

于 2012-04-15T21:38:00.323 に答える