問題タブ [dictvectorizer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 列ごとに複数の値を持つ特徴をエンコードするにはどうすればよいですか? MultiDictVectorizer が必要ですか?
sklearn でいくつかの機能をベクトル化していますが、問題が発生しました。DictVectorizer は、データを項目ごとに 1 つの dict キーにエンコードできる場合にうまく機能します。アイテムが同じ列の 2 つ以上の値を持つことができる場合はどうなりますか? たとえば、DictVectorizer は次のようなアイテムで正常に動作します。
しかし、列ごとに複数の値があるこのようなものはどうでしょうか?
ワンホット エンコーディングの戦略は引き続き適用できます。単純に 2 つの a 列が必要です。a=b と a=c です。私が知る限り、そのようなベクトライザーは存在しません! この状況で何をすべきか?独自の MultiDictVectorizer を作成する必要がありますか?
投稿する前に、ここのブログ投稿でこれについて書きました。
python - Pythonで密なデータフレームからエンコードされたデータフレームを取得するためにScikit Learn dictvectorizerを使用する方法は?
次のようなデータフレームがあります。
これから、次のようにエンコードされたデータセット (用fastFM
) を作成します。
dictvectorizer
からが必要sklearn
ですか?はいの場合、元のデータフレームをディクショナリに変換する方法はありdictvectorizer
ますか?
python - DictVectorizer を TfIdfVectorizer に変換する
この形式のデータを用語ドキュメント マトリックスに変換する必要があります: http://pastebin.com/u1A7v1CV
基本的に、各行は word_label_id と頻度で表されるドキュメントを表します。各 word_label_id に対応する単語は、別のファイルにあります。
これを用語ドキュメント マトリックスに変換して、データをベクトル化し、クラスター化できるようにしたいと考えています。
データをディクショナリに変換し、DictVectorizer を使用してワンホット エンコードされたスパース表現を取得することができました。
出力は次のようになります。
これが何を意味し、どのように解釈するのかわかりません。TfIdfVectorizer
これは、scikit-learn で得られる疎行列と同等ですか?
このデータセットの次のステップは、特徴選択と k-means クラスタリングです。DictVectorizer
またはdata
辞書を使用して続行する方法がわかりません。
python - DictVectorizer を使用した sklearn パイプラインのカテゴリ変数
以下のように、数値変数とカテゴリ変数を含むパイプラインを適用したい
数値のインデックスを作成します
& カテゴリ変数の場合
次に、パイプラインを作成します
そして私は得る
パイプラインでencoder.fit()を適用する必要があることはわかっていますが、適用方法がわかりませんまたは、前処理.OneHotEncoder()を使用するのは嫌いですが、文字列を浮動小数点数に変換する必要があります
それを改善する方法は?
python - パイプラインのカテゴリ変数: ディメンションの不一致
カテゴリ変数を使用してパイプラインを構築しようとしています
カテゴリ変数の変換
パイプライン
そのとおりです。しかし、新しいデータセットを当てはめようとするとエラーが発生します。例えば
クラス Cat(TransformerMixin) に問題があることがわかります。それを改善する方法は?
python - sklearnでカテゴリ機能をエンコードする方法は?
41 個の特徴 [0 から 40 列] を持つデータセットがあり、そのうち 7 つはカテゴリです。このカテゴリ セットは、次の 2 つのサブセットに分割されます。
- 文字列型のサブセット (列機能 1、2、3)
- バイナリ形式 0 または 1 の int 型のサブセット (列機能 6、11、20、21)
さらに、列機能 1、2、および 3 (文字列型) には、それぞれカーディナリティ 3、66、および 11 があります。このコンテキストでは、サポート ベクター マシン アルゴリズムを使用するようにエンコードする必要があります。これは私が持っているコードです:
[上で公開した理由により]どちらを使用するのが良いかはわかりませんが、ほとんどの場合、[コードの観点から]どちらの方法で、私が持っているマトリックスでそれらを使用DictVectorizer()
します。または、文字列型のサブセットの各カーディナリティに番号を割り当てるだけですか (カーディナリティが高く、機能空間が指数関数的に増加するため)。OneHotEncoder()
X
編集 int 型のサブセットに関しては、列の機能をそのままにしておくのが最善の選択だと思います (エンコーダーに渡さないでください)。カーディナリティの高い文字列型のサブセットでも問題は解決しません。