0

在庫管理のために取り組んでいるWebアプリで、この問題についてサポートが必要です。それでは、詳細をご紹介します。

  • すべての製品には、幅と高さ(sizeWとsizeHと呼びます)と面積(2つの次元の乗算)のサイズ寸法があります。

  • すべての商品をサイズカテゴリに分類する必要があります。いくつか挙げてみましょう。50x100、80 x 150、100 x 170、150 x 200、.....合計12のカテゴリ

  • 欠点は、すべての製品がサイズカテゴリに従って正確に作成されていないことです。したがって、製品が55x96または44x105の場合、50x100カテゴリに分類されます。

アイテムを関連するカテゴリに分類できるが、さまざまなサイズのこのような不規則性を考慮に入れることができるアルゴリズムを作成する必要があります。データ入力時間を短縮したいので、ユーザーが手動でカテゴリを入力することは望ましくありませんが、アルゴリズムが何か間違っていることを示唆したり、製品が標準のカテゴリに適合しない場合、ユーザーはカテゴリを手動で引き継いで変更/追加できます。

この問題についてアイデアを出していただければ幸いです。アプリはサーバー側でRailsを使用し、クライアント側でJavascriptを使用して構築されています。解決策がJavascriptであり、サーバーに負荷をかけるのではなく、ブラウザーにアルゴリズムを処理させることをお勧めします。

ありがとう、

Umer

4

3 に答える 3

1

私はこのようなことをします(エリアを探します)。検索を最適化して、線形にならないようにすることもできます。

var categories {
  names: ['50 x 100', '80 x 150', '100 x 170', '150 x 200'],
  areas: [5000, 12000, 17000, 30000],
  sizes: 4
}

function set_category(w, h) {
  var area = w * h;

  for(var i = 1; i < categories.sizes; i++) {
    var diff1 = 0, 
        diff2 = 0;

    if(area <= categories.areas[i]) {
      diff1 = categories.areas[i] - area;
      diff2 =  area - categories.areas[i-1];

      if(diff1 < diff2) return categories.names[i];
      return categories.names[i-1];
    }
  }
}
于 2013-02-23T23:17:48.297 に答える
1

カテゴリのアスペクト比がすべて類似している場合は、Kaerosの回答を使用します。ただし、アスペクト比が異なるカテゴリがある場合、たとえば、あるカテゴリのサイズが80 x 80で、別のカテゴリのサイズが20 x 320の場合、非常に奇妙な誤分類が発生する可能性があります。

この2番目のケースでは、各カテゴリと製品サイズの間の最小二乗距離を使用します。製品Pの場合は、以下を最小化するカテゴリCを使用します。

(C.height-P.height)2 +(C.width-P.width)2

Kaerosの答えには、領域を事前に計算できるという利点がありますが、計算する可能性が12しかないため、まったく時間がかからないはずです。

于 2013-02-23T23:48:24.173 に答える
0

あなたの問題は分類です。この問題を解決するために使用できる分類方法は多数あります。選択は、機能の数とサンプルの数によって異なります。Ruby用の機械学習アルゴリズムの実装を見つける必要があります。これらを実装するにはhttp://www.ruby-doc.org/stdlib-1.9.2/libdoc/matrix/rdoc/Matrix.htmlを使用するか、Python用のsci-kitなどのRuby用の既存のMLライブラリを見つけることができます。

于 2013-02-23T23:16:40.043 に答える