お世話になります。
現在のDataRobotにおける多クラス分類の上限数は100と見えますが、101以上の分類を行いたい場合はどのような方法が考えられるでしょうか?
「こうしたら良いのでは?」というアイデアであったり、実際に101以上の分類を利用されている事例があれば差し支えない範囲でお伺いしたいです。
なお、当方の要件はまだ不明確なのですが、人力で250項目の分類を行っている作業があるようで、これの自動化を検討しています。
まずは大分類や中分類に分類し、100以下の分類で段階的に対応できれば良いのですが、そのような上位の分類は無い(※)と言われており、どう進めるとよいかを考えているところです。
※まだrawデータ確認できておらず、人力でも250項目も頭に入れて正しく分類できるとは考えづらいため、何かしら上位分類はあるだろうと想定はしています。
*1: 多クラス分類リファレンス
https://app.datarobot.com/docs-jp/modeling/investigate/evaluate/multiclass.html
ターゲットデータ型 | 値の数 | デフォルトの問題タイプ | 多クラス分類の使用 |
数値 | 3-10 | 連続値 | あり(オプション) |
数値 | > 10 | 連続値 | あり(オプション) |
数値以外 | 2 | 二値 | なし |
数値以外 | 3-100 | 多クラス | あり(自動) |
*2: ユニーク数が101以上の場合、ターゲットとして選択できない
解決済! 解決策の投稿を見る。
@wasshi さん、
いろんな意見があるかと思うので、私のも一つのアプローチと考えていただければと思いますが、
やはり、上位分類はあると思いますので、そちらから多段階のマルチクラスをされるのが一番王道だとは思います。別のアプローチとしては、特定のクラスをその他としてしまうのがあるかと思います。基本的に多クラス分類はよほど効く特徴量を持っていないと少数クラスはやはり学習しづらい傾向にはあるので、少数クラスをある程度束ねてその他として100クラス以内に抑え込み、その他の中のどのクラスなのか問題を解かせるというアプローチもあるかと思います。この2つは実績としても多数見てきています。
その他アプローチもある種のドメイン知識ない上でのグルーピングアプローチですが、よりテクニカルには、250クラスから適当に83,83,84クラスとかで選び、多値分類を行い、分類精度がそれぞれのプロジェクトでいいものは抜いて、3つ合わせた状態でもいいかいいかを改めて判断して、高い確率で単独で分離できるものはそのままのクラス、他と混ざってしまうものはそこで一時的にグループ化してを繰り返し100クラスに納めてのモデリング。一応グループ化したものに対して多段階のモデリングを実施してもいいかと思いますが、そもそも分離できていないグループ同士なので、そこは按分してもよいかなと思います。手間はかかるアプローチですが、ドメイン知識ない状態で、ある程度API化して連続で回せる環境あるならありなアプローチかなと思っています。