連続機能とカテゴリ機能の両方を使用した予測


26

予測モデリング手法の中には、連続予測変数を処理するように設計されているものもあれば、カテゴリ変数または離散変数を処理する方が優れているものもあります。もちろん、1つの型を別の型に変換する手法(離散化、ダミー変数など)があります。ただし、単純にフィーチャのタイプを変換せずに、両方のタイプの入力を同時に処理するように設計された予測モデリング手法はありますか?そうである場合、これらのモデリング手法は、より自然に適合するデータに対してよりうまく機能する傾向がありますか?

私が知っている最も近いものは、通常、決定木がうまく離散データを処理し、それらが必要とせず、連続的なデータを扱うことになりますアップフロント離散化を。ただし、これは私が探していたものとはまったく異なります。効果的に連続フィーチャ上の分割は、動的な離散化の一種にすぎません。

参考のために、関連する重複しない質問を次に示します。


1
あなたがやりたいことについてもっと話してもらえますか?確かに、連続共変量とカテゴリー共変量の両方で重回帰を使用して、予測モデルを構築できます。これはかなり基本的です。代わりに、複数の応答変数を予測することを意味しますか(たとえば、一部が続き、一部が猫など)
GUNG -復活モニカ

@gung 何らかの意味でカテゴリカル予測子を数値に変換せずに、カテゴリカル共変量含む重回帰をどのように実行しますか?
マイケル

1
「数字」は何も意味しません-それらは実際には数字ではありません。方法については、コーディングスキームを使用します。参照セルコーディング(通常は「ダミーコーディング」と呼ばれます)が最も一般的ですが、多くのスキームがあります。これは、可能なさまざまなスキームについて学習するための優れたリソースです。Rでは、たとえば、実際にそれを行う必要はありませんが、ベクトルまたは文字データ(つまり名前)を含めると、すべてを処理します。
GUNG -復活モニカ

2
私はまだ質問の背後にある推進力をたどらないのではないかと心配しています(少し遅いです)。カテゴリ変数は、数値変数に「変換」または「変換」されません。それらは1で表されますが、その1は実際には数値ではありません。質的予測変数は、意思決定ツリー(つまり、CART)よりも重回帰で数値的ではありません。理論的な観点からは、何もありません。実際的な観点から、数行のコードを保存しようとする場合、たとえばソフトウェア(Rなど)がそれを行うことがよくあります。
GUNG -復活モニカ

1
結構です、あなたがそこにいると思うことを説明できますか(理論的観点から)?ダミーコーディングは、カテゴリ変数を意味ある数値変数にどのように変換しますか?CARTが変数の「カテゴリー性」を保持できるのに、ダミーコーディングはできないのはどうしてですか?上記の質問からこれらの質問に対する答えが何であるかを理解するのに途方に暮れており、以前の投稿は見当たりません。
GUNG -復活モニカ

回答:


6

私が知る限り、過去にこの問題を深く研究したことがありますが、単純に変換せずに両方のタイプの入力を同時に処理するように設計された予測モデリング手法(ツリー、XgBoostなど)はありません機能のタイプ。

Random ForestやXGBoostなどのアルゴリズムは、混合フィーチャの入力を受け入れますが、ノードの分割中にそれらを処理するためにいくつかのロジックを適用します。「内部」のロジックを理解し、ブラックボックスで何が起きていても問題ないことを確認してください。

u1u2fid(u1,u2)fi=(discategorical(u1,u2)fifid(u1,u2)fi=disnumeric(u1,u2)fififiu1u2

カテゴリフィーチャの既知の距離関数:

  • レーベンシュティエン距離(または任意の形式の「距離の編集」)

  • 最長共通サブシーケンスメトリック

  • ガウワー距離
  • その他の指標はこちら

5

この質問が投稿されてからしばらく経ちますが、この問題(または同様の問題)をまだ見ている場合は、一般化加法モデル(GAM)の使用を検討することをお勧めします。私は専門家ではありませんが、これらのモデルを使用すると、異なるモデルを組み合わせて単一の予測を作成できます。配置したモデルの係数を見つけるために使用されるプロセスは、それらのすべてを一度に解決するため、一般的な加算モデルをカテゴリー予測子のお気に入りモデルと連続予測子のお気に入りモデルに送信し、RSSまたは使用したい他のエラー基準。

私の頭の中で、GAMの実装を知っている唯一のソフトウェアパッケージは言語Rですが、他にもあると確信しています。


SASには、Proc Gamと呼ばれる手順があります。
アルフ

1
ほとんどの主要な統計パッケージ(Stataなど)は、おそらくGAMを実装できます。ただし、さらに重要なこととして、GAMはカテゴリ変数を予測子として表すためにダミーコードを使用します。カテゴリカル予測子をカテゴリカルとして使用するモデルを探す際にOPが何を望んでいるかは明らかではありませんが、ダミーコードでそれらを表すことはありませんが、これはそうではありません。
GUNG -復活モニカ

CVへようこそ。ユーザー名、identicon、およびユーザーページへのリンクは、作成するすべての投稿に自動的に追加されるため、投稿に署名する必要はありません。実際、私たちはあなたがそうしないことを好みます。
GUNG -復活モニカ

4

離散化は連続データを離散データに変換しますが、ダミー変数がカテゴリーデータを連続データに変換するとは言えません。実際、アルゴリズムはコンピューターで実行できるため、カテゴリーデータをダミー変数に変換しない分類アルゴリズムはほとんどありません。

同じ意味で、分類器は最終的に予測子をクラス所属を示す離散変数に変換します(クラス確率を出力する場合でも、最終的にカットオフを選択します)。事実上、ロジスティック回帰、ランダムフォレスト、決定木、SVMなどの多くの分類子は、両方のタイプのデータで正常に機能します。

連続データで動作するが、カテゴリデータをまったく処理できないアルゴリズムを見つけるのは難しいと思います。通常、モデルの左側にあるデータのタイプにより大きな違いがあることがわかります。


2
いいえ、私のポイントは、ロジスティック回帰などは、両方のタイプのデータで説明している意味で「機能しない」ということです。少なくとも何らかの意味で、すべての予測変数を数字として扱うか、数字として扱わないようにする必要があります。たとえば、「性別」のようなものを「男性」の場合は1、「女性」の場合は0としてコーディングすることにより、ロジスティック回帰で素晴らしい結果が得られることがよくあります。ただし、この種のプロセスは、既知のモデリングパラダイムを使用して回避できるかどうか疑問に思っています。
マイケル

1

これは、一般に統計的および機械学習の終わりから対処される深い哲学的な質問です。パッケージがモデル入力を簡単に消化できるように、カテゴリー化は離散からカテゴリーへのインディケーターに適していると言う人もいます。他の人は、ビニングは情報損失を引き起こす可能性があると言いますが、カテゴリ変数はモデル残差の最後のクラスを除外して、{1,0}インジケーター変数に変換できる/する必要があります。

本- 応用線形回帰(Kutner et al。) では、最初の数章でモデルにインジケーター変数を導入するロジックについて言及しています。他の同様のテキストもあります。

これについての私の見解は、多すぎるかもしれません。実験デザインのブロックのようなカテゴリー変数を想像すると、インジケーター変数は、非実験ベースのデータ分析の自然な拡張です。データマイニングアルゴリズム(デシジョンツリーファミリ)に関しては、モデルに入力する必要がある分類(手動または自動ビニング)は避けられません。

したがって、同じように数値変数とカテゴリ変数に特化したモデルが存在しない場合があります(ビニング数値なしまたはインジケーターカテゴリを使用)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.