🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

928閲覧

target encoderがone hot encoderよりカテゴリカル変数が多い際に有効である理由を教えてください。

harumakiyammy

総合スコア1

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/12/24 12:35

カテゴリカル変数が大量にある場合のエンコーディング

カテゴリカル変数のエンコーディングについてお伺いします。
大量のカテゴリカル変数をエンコーディングする際、one hot encorderとtarget encoderの比較を行っています。今のところ、 one hot encorderは祖行列が大量に発生してしまうため適さず、target encoderがおすすめというざっくりとしたところまで分かりました。しかし、なぜtarget encorderの方が適しているのか、積極的な理由がつかめていません。

どなたか、なぜカテゴリカル変数が大量にある際、taeget encorderの方が優れているのか、教えていただけますでしょうか。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/12/24 12:36

そのカテゴリカル変数ってのはなにかを説明できるでしょうか
harumakiyammy

2020/12/24 12:45 編集

私の直接の担当ではないのですが、服の素材だと伺いました。
guest

回答1

0

ベストアンサー

カテゴリ変数のエンコーディング手法の性能比較

上記サイトの検証例では列数を増やすエンコーディングと列数を増やさないエンコーディングとで明確な性能差はないようでした。
結論では下記とも書かれています。

OneHot Encodingはカテゴリの項目数の分だけ次元を増やすので複雑な分類境界面を作成出来ますが、そのぶんベクトルが疎になるので、学習が不安定になることがあります。

質問者さんのデータ

カテゴリカル変数が大量にある場合

では、OneHot Encodingは学習がより不安定になるかもしれませんね。

また、メモリ容量の制約からOneHot Encodingが難しい場合もあるかと思います。

【追記】
Target Encoding Vs. One-hot Encoding with Simple Examples

Limitations of Target Encoding

Target encoding is dependent on the distribution of the target which means target encoding requires careful validation as it can be prone to overfitting. This method is also dataset-specific and will only show significant improvements some of the time.

Target Encodingするデータに偏りがある場合は過学習を起こしやすいみたいです。どちらの手法にもメリット・デメリットがありますのでデータによって使い分けるのが良いかと思われます。

投稿2020/12/24 13:14

編集2020/12/24 13:26
meg_

総合スコア10736

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

harumakiyammy

2021/01/03 06:35

かしこまりました!やはりデータがどのようなものかで使い分けるしかありませんね。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問