4

sklearn でいくつかの機能をベクトル化していますが、問題が発生しました。DictVectorizer は、データを項目ごとに 1 つの dict キーにエンコードできる場合にうまく機能します。アイテムが同じ列の 2 つ以上の値を持つことができる場合はどうなりますか? たとえば、DictVectorizer は次のようなアイテムで正常に動作します。

{'a': 'b', 'b': 'c'}

しかし、列ごとに複数の値があるこのようなものはどうでしょうか?

{'a': ['b','c'], 'b': 'd'}

ワンホット エンコーディングの戦略は引き続き適用できます。単純に 2 つの a 列が必要です。a=b と a=c です。私が知る限り、そのようなベクトライザーは存在しません! この状況で何をすべきか?独自の MultiDictVectorizer を作成する必要がありますか?

投稿する前に、ここのブログ投稿でこれについて書きました。

4

2 に答える 2

1

この状況には、少なくとも 2 つの迅速な解決策があります。

  1. 2 つの集計値を持つ可能性を表す新しい値を作成する

    {'a': 'bc', 'b': 'd'}または別の名前を付けます。'bc'-->'e'

  2. 値の 1 つを取るたびにサンプルを複製します。

    {'a': 'b', 'b': 'd'}{'a': 'c', 'b': 'd'}

しかし、もちろん、それは問題のコンテキストに大きく依存します (ケース 2: 異なる症状を持つサンプルを「複製」することは正しいですか? ケース 1: 機能の別の新しい値が概念的に受け入れられますか? )。N/Aそして、たとえば、その多値機能が状況に対応しているかどうかさえわかりません。

私はあなたの github 提案を見たので、これはあなたが望んでいるものではないことを理解していますが、念のため、労力を節約できます.

于 2016-02-16T19:06:53.833 に答える
0

DictVectorizer はキーごとに複数の値を処理できないため、この機能を追加しています。プルが受け入れられた場合、これは sklearn の一部になります。そうでない場合は、MultiDictVectorizer で DictVectorizer をサブクラス化し、このクラスのパッケージをリリースします。

Github でのプルリクエスト

sklearn Github プロジェクトの問題

于 2016-02-16T18:47:53.683 に答える