問題タブ [one-hot-encoding]

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.

0 投票する
1 に答える
702 参照

encoding - バイナリ関連性とワンホットエンコーディングの違いは?

バイナリ関連性は、マルチラベル分類問題に対処するためのよく知られた手法です。この手法では、特徴の可能な値ごとにバイナリ分類子をトレーニングします。

http://link.springer.com/article/10.1007%2Fs10994-011-5256-5

一方、ワン ホット エンコーダー (OHE) は、自然言語処理で一般的に使用され、複数の値をバイナリ ベクトルとして取得するカテゴリ特徴をエンコードします。

http://cs224d.stanford.edu/lecture_notes/LectureNotes1.pdf

この 2 つの概念は同じものと見なすことができますか? それとも技術的な違いはありますか?

0 投票する
1 に答える
4893 参照

scikit-learn - OneHotEncoding マッピング

カテゴリ機能を離散化するために、LabelEncoder と OneHotEncoder を使用しています。LabelEncoder がデータをアルファベット順にマッピングすることは知っていますが、OneHotEncoder はデータをどのようにマッピングするのでしょうか?

dataFeat上記のように、5 つの異なる列と 4 つの可能なラベルを持つ pandas データフレームがあります。dataFeat = data[['Feat1', 'Feat2', 'Feat3', 'Feat4', 'Feat5']]

labelencoder私はこのように適用します、

これは、LabelEncoder によってラベルがエンコードされる方法です。

次に、このように OneHotEncoder を適用します

intIndexed.shape = 94,5dataFeatY.shape=94,20

の形に少し混乱していますdataFeatY- それも 95,5 ではないでしょうか?

以下のMhFarahaniの回答に従って、ラベルがどのようにマッピングされているかを確認するためにこれを行いました

これは、ラベルがこのようにマッピングされるということですか、それとも列ごとに異なるということですか? (これは形状が 94,20 であることを説明します)

0 投票する
0 に答える
735 参照

python - LabelEncoder が値を読み取らないのはなぜですか?

最初に各列を LabelEncoding し、次に列で OneHotEncoding を実行することにより、sklearn の LabelEncoder と OneHotEncoder を使用して、データセットで 1-hot-encoding を実行しようとしています。注: LabelEncoder が欠落しないように、意図的に 2 つの列のデータフレームの行 1 を nan にしています。

コードは次のとおりです。

コードの出力は次のとおりです (ラベル エンコーダーの印刷されたクラスには nan があることに注意してください)。

0 投票する
1 に答える
562 参照

python-2.7 - Pandas: カテゴリ機能をホット エンコードする方法

X2 つのカテゴリ機能と 41 の数値機能を持つデータ フレームがあります。合計X43 の機能があります。

RandomForestここで、カテゴリ特徴を数値レベルに変換して、 Classifierで使用できるようにしたいと思います。

私は次のことを行いました。どこで、カテゴリ機能の場所を示します0:1

次に、これら 2 つのデータ フレームを連結します。

現在、Xnew63 の機能があります ( F118 のF2機能があり、4 つの機能があり、残りの 41 は からのものですX)

これは正しいです?同じことを行うより良い方法はありますか?共線性を避けるためにF1、最初の列を削除する必要がありますか?F2

0 投票する
1 に答える
3724 参照

python - Python Pandas get_dummies() の制限。すべての列を変換しない

データフレームに 6 つの列があります。そのうちの 2 つは、約 3K の一意の値を持っています。get_dummies()データフレーム全体またはこれらの 2 つの列の 1 つだけで使用すると、返されるのは 3k の値を持つまったく同じ列です。get_dummiesより大きな列のダミー化に失敗します。一部の列はワンホット エンコードされますが、大きな列はエンコードされません。

get_dummies は、カーディナリティが小さいセットでのみ機能するのだろうか。

これはここでも議論されていると思います: Python(pandas) スクリプトのヘルプが必要