SkyFoxで気軽に機械学習

機械学習自動化ツール「SkyFox」の紹介ブログ

SkyFoxのデータ変換の種類とパッケージ選択、およびカスタマイズ方法について

今回はSkyFoxのデータ変換の種類とパッケージ選択について説明します。

 

 

                                                                   目次

データ変換の種類について 

モデル開発の前に、一つ一つのデータ項目を扱いやすいように、また特徴がでやすいように以下の加工を施します。

データ項目数による選択

 全データの値が同じである場合や、郵便番号などデータの種類が多すぎる場合、モデル作成に悪影響を及ぼす場合がありますので、一般に、そのようなデータ項目は使用しません。 数値データには作用しませんので、常に利用することを推奨します。

欠損値の補完

 主に数値データにおいて、データ内に欠損が含まれると計算ができないため、それを補完します。 現在は、中央値が選択されます。

  追加特徴量名

  (元項目名)__EMPTY

 

値の対数化

 数値データにおいて値の幅が広く、小さい方または大きい方にデータの偏りがあるような場合は、値を対数化することで、偏りをなくすことができます。

日付関連情報の追加

 年月日などの日付情報から曜日や祝日などのフラグを追加します。 日付データ以外には作用しません。

  追加特徴量名

  ①(元項目名)_DOW:データの曜日を示す項目です

  ②(元項目名)_WEEKEND:土日であるかをフラグで示す項目です

  ③(元項目名)_HOLIDAY:祝日であるかをフラグで示す項目です

  ④(元項目名)_WEEKWND_HOLIDAY:土日もしくは祝日であるかをフラグで示す項目です

 

値の発生頻度の追加

 コード値などカテゴリで表されるデータにおいて、各値の出現頻度をデータ項目として追加します。数値データには作用しません。特徴が追加されるため、精度向上が期待できます。

  追加特徴量名

 ①(元項目名)_FREQUENCY:各値の出現頻度を算出した項目です

 ②(元項目名)_ROW_FREQUENCY:発生頻度が低い値をフラグで示す項目です 

 

カテゴリ項目のダミー変数化

 コード値などカテゴリで表されるデータは、そのままでは多くの機械学習アルゴリズムで使用できません。そこで、ダミー変数化と呼ばれる処理で数値に変換します。
数値データには作用しません。カテゴリ項目の有無によらず、常に利用することを推奨します。

 追加特徴量名

 (元項目名)__男性,(元項目名) __女性,(元項目名) __不明、…

  :元の値を示すフラグ値のため、値のユニーク数だけ新たに項目が作成されます

 

値の標準化

 データ項目による数値の大小に差が大きい場合、数値の大きいデータ項目の影響が強く出過ぎてしまうため、それを防ぐ目的で利用します。一般的に線形モデルでは必要な処理です。

 

追加特徴量名

 (元項目名)__ABS_Z_SCORE:平均値からの外れ具合を示します

 

外れ値の補正

 主に数値データにおいて、データ内に大きすぎる値など極端なデータ(外れ値)が含まれている場合に、全体の分布に合わせて数値を整えます。

データ項目の影響度による選択

 予測対象に対してデータ項目の影響が弱すぎる場合、モデル作成に使用しない方がモデルが安定します。逆に、影響度が強すぎる場合は”答え”の可能性があるため、やはり使用しない方が良いです。

異常値スコアの追加

 不正検知などに使用されるIsolationForestと呼ばれる手法を用いて、データの異常度をスコア化して、データ項目として追加します。特徴が追加されるため、精度向上が期待できます。

 追加特徴量名

 ①異常値スコア:データの異常度をスコア化した値です

 ②異常値判定:異常値として判定されたかのフラグ値です

 

主成分変換

 データを、主成分と呼ばれる統計的に意味のあるデータ項目に変換し、新しいデータ項目として追加します。主成分の上位を追加することで、特徴が表れやすくなるため、精度向上が期待されます。

 追加特徴量名

 主成分1、主成分2、… :各主成分の値です

 ※データによって作成される特徴量の数が異なります

 

独立成分変換

 データを、統計的に独立なデータ項目に変換し、新しいデータ項目として追加します。元の数値より少ない数を指定することで、特徴が表れやすくなるため、精度向上が期待されます。

 追加特徴量

 独立成分1、独立成分2、… :各独立成分の値です

 ※データによって作成される特徴量の数が異なります

 

クラスタ変換

 データを統計的に似ているグループ(クラスタ)に分割します。分類されたクラスタを元のデータ項目に加えることでモデルの性能向上が期待されます。

 追加特徴量

 ①クラスター1、クラスター2、…※

  :データがどのクラスターに所属するかを示すフラグ値です

 ②クラスター1からの距離、クラスター2からの距離、… ※

  :各クラスターの中心からの距離を示す項目です

  ※データによって作成される特徴量の数が異なります

 

合成特徴量の追加

 遺伝的プログラミングと呼ばれる手法を用いて作成した合成特徴量を、新しいデータ項目として追加します。計算量が多いため処理に時間がはかかりますが、特徴が適切に表現されることも多く精度向上が期待されます。

 追加特徴量名

 合成特徴量_1、合成特徴量_2、… ※

 :自動で各項目同士の掛けわせなどを行うことにより生成された特徴量です。

 ※データによって作成される特徴量の数が異なります

 

データ項目の相関による選択

 相関が高くほぼ同じと見なせるデータ項目が存在する場合、片方の値を取り除いた方がモデルが安定します。

 

データ変換の種類とパッケージ選択について

各データ変換は以下のように3つに分けた上で、3種類にパッケージ化することで利便性が向上しております。ユーザーは処理の内容がわからなくても目的に応じてパッケージを選択するだけです。

 

 

 
ライト
パッケージ
スタンダード
パッケージ
 
アドバンスト
パッケージ
1:最低限必要な処理。クイックに様子を見たい時などに選択します。  
 
 
2:通常のモデル開発にはしておいた方が良い処理。  
 
 
3:処理時間はかかるが精度の向上が期待できる処理  
 
 

 

データ変換の種類と合わせて整理すると以下のようになります。

 

 

 
ライト
パッケージ
デフォルト設定
スタンダード
パッケージ
 
アドバンスト
パッケージ
 データ項目数による選択  
 
 
 欠損値の補完  
 
 
 値の対数化  
 
 
 日付関連情報の追加    
 
 値の発生頻度の追加    
 
 カテゴリ項目のダミー変数化  
 
 
 値の標準化  
 
 
 外れ値の補正  
 
 
 データ項目の影響度による選択  
 
 
 異常値スコアの追加      
 主成分変換      
 独立成分変換      
 クラスタ変換      
 合成特徴量の追加      
 データ項目の相関による選択    
 

 

カスタマイズ方法について

また更に細かくデータ変換の種類を選択したりパラメータを調整することも可能です。

 

細かくデータ変換の種類を選択

例えばこのデータ変換だけはしたくないといった場合はスキップさせることが可能です。

 

まず「詳細設定」の「設定の変更」をクリックします。

f:id:secondxight:20190627142437p:plain

 

次にスキップさせたい変換にマウスのカーソルを当て、右上のチェックを外します。

f:id:secondxight:20190627142636p:plain

 

するとこのようにグレーアウトします。戻したい場合はチェックを再度入れるだけです。

f:id:secondxight:20190627142809p:plain


 パラメータの調整方法

まずは調整したい変換をクリックします。

すると以下の画面が開きます。

f:id:secondxight:20190627143254p:plain

 

ここで細かいパラメータを設定することが可能です。

具体的なパラメータの説明は別の機会にさせて頂きます。