2009-03-29 5 views
6

私は多かれ少なかれ同じ製品を表すリストを持っています。たとえば、以下のリストでは、すべてSeagateハードドライブです。商品リストを分類するアルゴリズムですか?

  1. シーゲイトハードドライブ500Go
  2. シーゲイトハードドライブ120Goラップトップ
  3. ため
  4. のSeagateのBarracuda 7200.12 ST3500418AS 500ギガバイト7200 RPM SATA 3.0GB/sのハードドライブ
  5. 新規およびシーゲイト
  6. からシニー500Goハードドライブ
  7. Seagate Barracuda 7200.12
  8. Seagate FreeAgentデスク500GB外付けハードドライブシルバー7200RPM USB2.0小売

人間にとって、ハードドライブ3と5は同じです。もう少し進んで、製品1,3,4,5が同じで、他のカテゴリに製品2と6を入れたとします。

私は分類したいと思う巨大な製品リストがあります。 誰かがそのようなことを行うための最良のアルゴリズムとは何かの考えを持っていますか?何か提案がありますか?

私はベイズ分類器しかし、私はそれが最善の選択かどうかはわかりません。どんな助けもありがとう!

ありがとうございました。あなたは少なくとも2つの成分必要

答えて

5

まず、あなたのアイテムを受け取り、関連する情報を抽出し、「機能」の抽出を行い、何か、すなわちを必要としています。たとえば、「新しくてshinny」は「500Goハードドライブ」や「シーゲイト」ほど重要ではありません。 (非常に)簡単なアプローチは、単純な発見的抽出メーカー、「USB2.0」のようなテクノロジー名、各項目の「GB」、「RPM」などのパターンで構成されます。

次に、それぞれの項目に一連の機能が追加されます。いくつかの機械学習者は、これを「特徴ベクトル」に入れることを好み、すなわち、特徴が存在するか否かに応じて、各特徴について1つのエントリーを有し、0または1に設定される。これはあなたのデータ表現です。このベクトル上で距離比較を行うことができます。

何千ものベクトルからなるかもしれないことに注意してください。それでも結果をまとめる必要があります。

おそらく便利Wikipediaの記事:あなたが遭遇する問題の

+0

ありがとうございました!非常に面白いアプローチ! – Martin

1

一つの非直線的または非注文属性に最も近い隣人を決定することです。私はManuel's entryにここに築いています。

(1)Seagate 500Go、(2)Seagate Hard Drive 120Go、(3)Seagate FreeAgent Desk 500GB外付けハードドライブシルバー7200RPM USB2.0小売:

1は2に近いか3に近いですか?違いによって異なるカテゴリが正当化されますか?

外部のHDを両方の種類のマシンで使用できるため、人間は3が1と2の間にあると言います。つまり、誰かがデスクトップ用のHDを検索し、選択肢の範囲を広げて選択肢を広げると、外部HDも表示されますが、ノートパソコンのHDは表示されません。おそらく、SSD、USBメモリスティック、CD/DVDドライブは、ラップトップドライブの前に表示され、範囲を拡大するでしょう。

考えられる解決策:

現在のユーザー属性のペアとし、それらを近接性を重み付けしましょう。特定の属性がどの程度近くにあるかを示すスケールをそれらに与えます。選択範囲を拡大すると、この尺度がこの属性の距離関数として使用されます。

1

実際に製品を分類するには、いくらかの "強化されたニューラルネットワーク"を黒板で使用することができます。

リスナーやイベント(ニューロンやシナプスのようなもの)によって接続されたオブジェクトのセットを想像してみてください。これは、あなたが正しい方向に思考するためのメタファーです。各オブジェクトには一連のパターンがあり、これらのパターンに対して入力をテストします。

例:( "シーゲイト" | "コナー" | "マック" | "量子" | ...)のための

  • 一つの目的テストの
  • 別の目的テスト[:桁:] *( " ")?(" GB "|" MB ")
  • のためのもう一つの目的テスト[:桁:] *(" ")" RPM"

すべてのこれらのオブジェクトは、その別のオブジェクトに接続?それらの特定の組み合わせが発生すると、入力をハードドライブとして分類します。個々のオブジェクト自体は、メーカー、容量、スピードなどのブラックボード(入力に関することを言う共通の書き込み領域)に特定の特徴付けを入力します。

したがって、ニューロンはしきい値に基づいて発火するのではなく、パターンの認識に基づいて発火します。これらのニューロンの多くは、黒板や他のニューロンによっても、正しい分類(多分確実性を導入する?)上の高度な並列動作することができます

私はUNSPSCに応じて製品を分類するために使用される製品のプロトタイプでは、このようなものを使用してすることができました車の部品に97%の正確な分類を取得します。

+0

ありがとうございました!超面白い! – Martin

1

この種の問題には簡単な解決策はありません。特にあなたのリストが本当に大きければ(何百万というアイテム)。たぶん、これら2つの論文は正しい方向にあなたを指すことができます:

http://www.cs.utexas.edu/users/ml/papers/normalization-icdm-05.pdf http://www.ismll.uni-hildesheim.de/pub/pdfs/Rendle_SchmidtThieme2006-Object_Identification_with_Constraints.pdf

+0

提案された記事は非常に参考になっていますが、あまりにも悪い – eliasah

0

MALLETは、おそらくうまく仕事を行うことができますのCRFとMAXENTの実装を持っています。誰かが以前に言ったように、最初にフィーチャーを抽出し、それをあなたのクラシファイアにフィードする必要があります。

0

正直言って、これは分類問題よりもRecord Linkageの問題のようです。あなたはすべてのクラスが何であるかを前もって知っていませんよね?しかし、どの製品名が同じ製品を参照しているのか、別の製品名を参照しているのかを把握したいのですか?

0

まず、CountVectorizerを使用して、生成された語彙を確認します。 'from'、 'laptop'、 'fast'、 'silver'などの言葉がありますストップワードを使用して、情報を与えないような言葉を破棄することができます。私は先に進んで、「ハード」、「ドライブ」、「ハードドライブ」などを廃棄します。なぜなら、これはハードドライブのリストなので、情報を提供しないからです。その後、我々は

  1. シーゲイト500Go
  2. シーゲイト120Go
  3. のSeagateのBarracuda 7200.12 ST3500418AS 500ギガバイト7200 RPM SATA 3.0GB/sの
  4. 500Goシーゲートなど

のような単語のリストを持っていると思いますRPMで終わるものがRPM情報を与える可能性があるような機能のリストを使用することができます。同様に、mb/sまたはGb/sで終わるものもあります。それから私は多くの情報を私たちに与えないモデル番号等である可能性が高い '1234FBA5235'のような英数字を捨てるだろう。今、あなたがすでに 'Seagate' 'Kingston'のようなあなたのリストに登場しているハードドライブのブランドを知っているなら、文字列の類似性を使用するか、またはそれらが与えられた文に存在するかどうかを単に調べることができます。これが完了したら、クラスタリングを使用して同様のオブジェクトをグループ化することができます。今や、同じrpm、gb、gb/s、ブランド名を持つオブジェクトは一緒にクラスタリングされます。 KMeansのようなものを使うなら、Kの最高の価値を理解しなければなりません。あなたは手作業でやる必要があります。あなたがそれを行うことができるのは、Kの値が最良のデータを分類する散布図と眼球を使用することです。

しかし、上記のアプローチの問題は、手元にブランドのリストがないと困ってしまう場合です。それから私はベイジアンクラシファイアを使ってあらゆる文章を探し、それがハードドライブブランドである確率を得る。私はその後、私はそれは間違いなく、ハードドライブの話を知っていると思います単語 'ハードドライブの文は、明示的に言及してしまう倍の大半二つ

  1. データを見て、探したいです。 「メルセデスベンツハードドライブ」のようなものは、スリムである可能性があります。
  2. これはちょっと面倒ですが、Amazon上でPython Web Scrapperを書いています(または、ハードドライブのほとんどのブランドでGoogleを書いてリストを作成できない場合は、Seagate Barracuda 7200.12 ST3500418AS 500GB 7200 RPM SATA 3.0Gb/s 'は、文章ごとにNaive Bayesのようなものを使用して、ブランドになる確率を与えます。 sklearnはこのようなことを行うのにかなり便利です。
関連する問題