Clementineでデータ分割をすることを考える
9月7日の記事 に関連して、Clementineで数値フィールドをカテゴリ化することを考えます。
基本的には[フィールド作成ノード]の[セット型]を組んでいく方法になると思います。
SPSSより「以上・以下・未満」を設定するのはわかりやすいです。ただカテゴリが多い場合、これをセットしていくのは面倒ですね。
数値フィールドでヒストグラムを作成し、ヒストグラムをクリックしてバンドを作成して、それをもとにカテゴリを作成する方法があります。私もよく使います。
しかし、データを等分に分けたり、細かい値を指定するのは、この方法ですと難しいです。
データを等分する場合は[データ分割ノード]を使用することになります(ちなみに[データ分類ノード]という似た名前のノードもあり、こちらはカテゴリがたくさんあるフィールドをまとめたり、カテゴリを改名したりするセット型フィールドを対象にした処理です)。
[データ分割手段]を[固定幅]にすれば、最小値から最大値まで等間隔でデータを分割しますし、[分位(等カウント)]にすれば、全てのビンが等しい件数になるようにデータを分割します。
データ分割ノードによる分割をカスタマイズしたい場合は、一旦このノードを含むストリームを実行後、ふたたびこのデータ分割ノードを開き、[ノードの生成]タブを開きます。[フィールド作成ノードの生成]ボタンがありますのでこれをクリックしますと、セット型を指定したフィールド作成ノードを生成できますので、このフィールド作成ノードを編集しましょう。
フィールド作成ノードから作成するのではなく、ヒストグラムやデータ分割ノードで輪郭を作って、それをカスタマイズする方が作りやすい場合もありますので、参考にしていただければと思います。
[値の再割り当て]で「以上」「以下」「未満」はどうやって表現するんだ?
知人より「SPSSの[値の再割り当て]で「以上」「以下」「未満」はどうやって表現するんだ?」と聞かれました。
正解は・・・、「いまさらな質問だよ」です。「以上」「以下」「未満」が必要ということはスケールの数値変数をカテゴリ化することなのでしょうが、そのための処理は、SPSSのメニュー[変換]→[同一の変数への値の再割り当て]または[変換]→[他の変数への値の再割り当て]ではなく、SPSSのメニュー[変換]→[連続変数のカテゴリ化]で行います。
最初のダイアログでカテゴリの元になる変数を選択しますと、次のダイアログでヒストグラムからデータを分割させることが出来ます。
左の変数リストで変数を選択し、[ビン分割する変数]に新カテゴリ変数の変数名を入力します。[値]に数値を入れるとその値が分割点として設定されます。[終点の上限]で以上か未満を設定して[OK]をクリックするとカテゴリ変数が作成されます。
このダイアログでは自分で分割点を指定する以外にも、[分割点の作成]ボタンから自動で、いわゆるデシル分析 で使うような、全てのカテゴリを同じケース数のデータに分けたりなども出来ます。
なお、[連続変数のカテゴリ化]は数年前のバージョンで登場したのですが、その前は値の再割り当てで分割しておりました。値の再割り当てに登場するコマンド「thru」では「上の条件の方が優先される」という仕組みになっております。例えば1 thru 5という場合は1も5も含まれますが、
50 thru highest --> 2
Lowest thru 50 --> 1
と設定すると上の条件の方が優先されるので、1のグループは50未満になります。
レコードがC5.0のどのノードに判別されたかを書き出す
9月5日の記事 で、Clementine10以降では、C&RTree、CHAID、QUESTモデルに照らし合わせた各レコードがディシジョンツリーのどのノードに判別されたかを追記させる方法を紹介いたしましたが、この記事のとおりディシジョンツリーでもC5.0モデルでは使うことが出来ません。
C5.0では、Clementine9以前ではC&RTree、CHAID、QUESTについても行っていた、ルールセットモデルを介してルール番号を振る方法を使用します。
まずモデルを作成します。作成したあとモデルをブラウズし、[ノードの生成]→[ルールセット]をクリックしますと、キャンバスまたはモデルパレット(今回は出力先はどちらでも構いません)にルールセット書式に書き直したモデルが作成されます。
作成されたルールセットモデルを右クリックからブラウズし、[ノードの生成]→[ルールトレースノード]をクリックしますと、キャンバスにスーパーノードが作成されます。
このスーパーノードは、ルールセットモデルで規定しているルール番号と確信度を各レコードに割り振るフィールドを作成しております。ストリームに組み込んで実行し、ルールセットモデルとともに活用してください。


![[ノードの生成]タブ](https://stat.ameba.jp/user_images/23/f0/10030780819_s.gif?caw=800)




