プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

決定木帰納における属性テスト条件の表現方法とは?属性タイプ別に解説

決定木帰納と属性テスト条件の基本

決定木帰納(デシジョンツリー・インダクション)とは、クラスラベル付きの訓練データから決定木を学習する手法です。決定木はフローチャートのようなツリー構造をしており、各内部ノード(非葉ノード)は属性に対するテストを表し、各ブランチ(枝)はテストの結果に対応し、各葉ノード(終端ノード)はクラス予測を示します。ツリーの最上位に位置するノードはルートノードと呼ばれます。

各ノードにおいて、アルゴリズムはデータを単一のクラスに分割できる「最良」の属性を選択します。決定木帰納を属性サブセット選択に活用する場合、与えられたデータから木が生成されます。

このとき、木に現れない属性は無関係なものとみなされます。逆に言えば、木に出現した属性の集合こそが、削減後の属性サブセットとなるのです。決定木帰納アルゴリズムは、さまざまな属性タイプに応じて、属性テスト条件とそれに対応する結果を定義するためのアプローチを提供しています。

属性タイプ別のテスト条件の表現方法

二値属性(Binary Attributes)

二値属性とは、0または1という2つの状態のみを持つ名義属性です。一般的に0はその属性が存在しないことを、1は存在することを表します。2つの状態がtrueとfalseに相当する場合、ブール型属性とも呼ばれます。

2つの状態が同等の価値を持ち、同じ重みをもつ場合、その二値属性は対称であるといいます。この場合、どちらの結果を0または1としてコーディングすべきかについての優先順位はありません。例として、男性・女性という状態を持つ「性別」属性が挙げられます。

一方、状態ごとの結果の重要度が等しくない場合、その二値属性は非対称です。たとえば、HIV検査における陽性・陰性の結果が典型例です。慣例では、より重要な結果(通常は稀に発生する方)を1(例:HIV陽性)、もう一方を0(例:HIV陰性)としてコーディングします。

名義属性(Nominal Attributes)

「名義(nominal)」という語は「名前」に関連することを意味します。名義属性の値は、物事を表す記号や名称です。各値は何らかのカテゴリ、コード、状態などを表し、名義属性はカテゴリカル属性とも呼ばれます。値の間には意味のある順序が存在しない点が特徴です。コンピュータサイエンスの分野では、こうした値は列挙型(enumeration)とも呼ばれます。

順序属性(Ordinal Attributes)

順序属性とは、取り得る値の間に意味のある順序やランク付けが存在するものの、隣接する値同士の間隔(大きさの差)が不明な属性です。

順序属性は、二分岐(バイナリスプリット)にも多分岐(マルチウェイスプリット)にも対応できます。また、順序属性の値は、そのグループ化が属性値本来の順序性を損なわない限り、組み合わせて扱うことが可能です。

数値属性(Numeric Attributes)

数値属性は定量的な属性であり、実数値で表される計算可能な量です。数値属性はさらに、間隔尺度(interval-scaled)比率尺度(ratio-scaled)の2種類に分類されます。

  1. JSPアクションのscope属性に指定できる4つの値とは?page・request・session・applicationを解説

    JSPアクションにおけるscope属性の役割JSPのアクション要素において、scope属性はその要素のライフサイクル(生存期間)を識別するための重要な属性です。scope属性はid属性と密接な関係にあります。scope属性で指定された値によって、id属性に関連付けられたオブジェクトがどれくらいの期間保持されるかが決まるためです。scope属性に指定できる4つの値scope属性には、以下の4つの値を指定することができます。(a) page現在のJSPページ内でのみオブジェクトが有効になります。ページの処理が終わるとオブジェクトは破棄されます。最も狭いスコープです。(b) request同一のHT

  2. Java 9のコレクションファクトリメソッドとは?条件と使い方をわかりやすく解説

    Java 9で導入されたコレクションファクトリメソッドJava 9では、Collections APIにファクトリメソッドが新しく追加されました。List.of()、Set.of()、Map.of()、Map.ofEntries()といった静的ファクトリメソッドを利用することで、イミュータブル(不変)なリスト・セット・マップを簡単に作成できます。従来のようにArrays.asList()やCollections.unmodifiableList()などを組み合わせて書く必要がなくなり、コードの行数を大幅に削減できるのが大きなメリットです。コレクションファクトリメソッドの条件これらのファクトリメ