自動特徴量エンジニアリング
自動特徴量エンジニアリングを使用すると、Qlik AutoML はトレーニング データ内の既存の特徴量を使用して新しい特徴量を作成できます。新しく自動設計されたこれらの特徴量により、データ内で新しいパターンを発見し、使用する機械学習モデルの性能を大幅に改善できます。
特徴量エンジニアリングとは、現在の特徴量列から新しい特徴量列を作成するプロセスのことです。AutoML は、特定のタイプのデータ処理を向上させるために特徴量エンジニアリングを自動的に実行することができます。特徴量エンジニアリングの一般情報については、「新しい特徴量列の作成」を参照してください。
自動設計された日付特徴量と派生元の親特徴量には、 アイコンが表示されます。
実験で使用するデータセットを選択した後、データセットは分析され、その中の列に特定のデータ タイプが含まれているとして識別されます。これらのデータ タイプにより、AutoML はデータセット内の各列に特徴量タイプを割り当てます。各列には、次の特徴量タイプの1つが付与されます。
-
カテゴリ
-
数値
-
日付
-
フリー テキスト
可能な場合、AutoML は該当する親特徴量から生成できる自動設計特徴量のリストを表示します。自動設計特徴量のリストは、前処理を開始するとさらに絞り込まれ、特徴量の数が減少します。実験には自動設計特徴量を含めることを推奨しますが、これはオプションです。トレーニングを開始する前に、また各新規実験バージョンを構成する際に、個別の自動設計特徴量を削除することができます。
実験トレーニングを開始する前に完了したプロセスに関する情報については、「自動データ準備と変換」を参照してください。
日付特徴量エンジニアリング
AutoML は、日付と時刻の情報が含まれていると識別された、日付特徴量タイプの該当する列から自動設計特徴量を生成します。自動設計された日付特徴量と派生元の親特徴量には、 アイコンが表示されます。
AutoML で使用するために選択したトレーニング データセットを Qlik Cloud Analytics がプロファイリングすると、特定のデータ タイプが日付特徴量タイプにリンクされます。これには、次のデータ タイプが含まれます。
-
日付
-
日付/時間
-
時間
-
タイムスタンプ
プロファイリング中にこれらのデータ タイプのいずれかが割り当てられた特徴量には、日付特徴量タイプが付与されます。データ フィールド用に表示できる利用可能なプロファイル統計に関する情報については、「Profile List view (プロファイル リスト ビュー)」を参照してください。
可能な場合、AutoML は日付特徴量タイプが付与された該当する親特徴量から生成できる自動設計の日付特徴量のリストを表示します。自動設計の日付特徴量は、デフォルトで実験に含まれます。含めることを選択した場合は、実験の v1 の後に新しい特徴量が生成されます。
自動設計の日付特徴量には、数値の特徴量タイプがあります。これらはデフォルトで実験に含まれますが、オプションです。実験のトレーニングを開始する前、または次の実験バージョンを構成する際に、それらの一部、またはすべてを削除することができます。自動設計の日付特徴量を含める場合、元の親日付特徴量は実験から削除されます。
代わりに、親日付特徴量を実験に含めることもできます。そうする場合は、親特徴量の特徴量タイプが日付からカテゴリ別に切り替えられ、自動設計の日付特徴量は使用できなくなります。機械学習モデルの性能が改善されるため、実験には利用可能な自動設計特徴量の使用を推奨します。
自動設計の日付特徴量は、Qlik Cloud サブスクリプションで指定されている AutoML データセット サイズ (トレーニング データセットと適用データセットの最大セル カウント) にはカウントされません。元の日付列セルのみがカウントされます。
実験ターゲットとしての日付特徴量の使用
まれに、日付と時刻の情報をともなう特徴量を実験のターゲットとして使用する場合は、列の特徴量タイプが日付からカテゴリ別に切り替わり、自動設計の日付特徴量は削除されます。別のターゲットを選択し、後で日付と時刻の特徴量を標準の特徴量として追加する場合は、必要に応じて日付特徴量タイプに手動で戻す必要があります。特徴量を日付特徴量タイプに戻すと、自動設計の日付特徴量が再度生成されます。
特徴量タイプの変更方法に関する情報については、「特徴量タイプの変更」を参照してください。
利用可能な自動設計の日付特徴量
データセットの列から自動設計の日付特徴量を生成する際、AutoML は各日付と日時値の特定のコンポーネントを抽出して計算し、各コンポーネントをそれぞれの列に分離します。 以下のテーブルは、AutoML によって生成される自動設計特徴量をリストしています。
自動設計の機能 | データ型 | 特徴量タイプ | 説明 |
YEAR | 整数 | 数値 | ソースの日付またはタイムスタンプから直接解析された年フィールド。 |
MONTH | 整数 | 数値 | ソースの日付またはタイムスタンプから直接解析された月フィールド。 |
DAY | 整数 | 数値 | ソースの日付またはタイムスタンプから直接解析された日フィールド。 |
HOUR | 整数 | 数値 | ソースのタイムスタンプから直接解析された時フィールド。 |
MINUTE | 整数 | 数値 | ソースのタイムスタンプから直接解析された分フィールド。 |
SECOND | 整数 | 数値 | ソースのタイムスタンプから直接解析された秒フィールド。 |
DAYOFWEEK | 整数 | 数値 | ソースの年月日から計算された曜日。 |
WEEK | 整数 | 数値 | ソースの年月日から計算された週番号。 |
新しく生成された各特徴量に対して、該当する自動設計特徴量により元の列名がサフィックスとして追加されます
予測内の自動設計の日付特徴量
トレーニング データセットを使用してモデルを作成すると、自動設計の日付特徴量が生成されます。モデルは、新しいデータ (適用データセット) で予測を作成するために ML 展開として展開され、使用されます。
予測を作成するために自動設計の日付特徴量でトレーニングされたモデルを展開する場合、生成中の予測にある適用データには自動設計の日付特徴量を含める必要はありません。AutoML は、予測開始前に適用データ向けの自動設計特徴量を生成します。ただし、適用データには親日付特徴量が含まれている必要があり、列は日付、日時、タイムスタンプ、または時刻データ タイプのある列としてプロファイルされている必要があります。
SHAP と適用データを含む ML 展開によって作成された予測データセットには、自動設計の日付特徴量が含まれます。
リアルタイム予測内の自動設計の日付特徴量
リアルタイム予測 API が日付とタイムスタンプのフィールドを処理できるようにするには、リアルタイム予測 API に送信する JSON ペイロードが以下の要件に準拠している必要があります。
-
日付と日時の値は、ISO 8601 規格に準拠した書式の文字列であること
-
各列内のデータは同一のタイムゾーンであること
フリー テキスト データの取り扱い
フリー テキスト (フォームに入力されたテキスト文字列データなど) をモデルで使用するには、機械学習アルゴリズムによる特別な処理が必要です。Qlik AutoML では、フリー テキストの処理は自動特徴量エンジニアリングの一形態です。専門的には、この処理には TF-IDF (用語頻度 - 逆文書頻度) メソッドが使用されます。
AutoML は、英語のフリー テキスト データを含む特徴量の個別処理をサポートしています。
トレーニング データの列にフリー テキストが含まれている場合、その列にはフリー テキスト特徴量タイプが割り当てられます。カテゴリ特徴量として使用することもできますが、カーディナリティが高い (一意の値が多すぎる) 場合は極力使用しないでください。
実験でフリー テキスト特徴量として使用する列を、最大 3 つ選択できます。
フリー テキスト エンコーディングの要件
フリー テキストを含む列をフリー テキストとして正常にエンコードするためには、2 つの要件を満たす必要があります。これらの要件は、実験作成のさまざまな段階でチェックされます。
要件は次のとおりです。
-
列の平均文字数は 50 文字以上である必要があります。
-
列の平均単語数は 5 語以上である必要があります。
特徴量をフリーテキストとして扱う
特徴量をフリー テキストとして扱うプロセスは次のとおりです。
-
トレーニング データを選択すると、Qlik AutoML はフリー テキストとして処理が可能な特徴量を特定しますこれらは、スキーマ ビューで [利用可能なフリー テキスト] インサイトでマークされており、フリー テキスト特徴量タイプになります。
-
実験の v1 を実行すると、追加の分析が完了します。この時点で、当初はフリー テキストとしてマークされていた特徴量が、フリー テキスト特徴量として使用できないことが判明する可能性があります。
フリー テキストとして使用できない特徴量のカーディナリティが高い場合は、実験からそれらの選択を解除することをお勧めします。これらの特徴量は、カテゴリとして扱われる場合、モデルのパフォーマンスに価値をもたらしません。
フリー テキストとして使用できない特徴量のカーディナリティが高くない場合は、[Treat as categorical] (カテゴリとして扱う) をクリックするか、 [特徴量タイプ] をフリー テキストからカテゴリに切り替えることで、実験に含めることができます。特徴量タイプをフリー テキストのままにすると、内部的にはカテゴリとして扱われ、impact encoded されます。
前処理の詳細については、「自動データ準備と変換」を参照してください。
スキーマ ビューに表示される各インサイトの詳細については、「トレーニング データに関する洞察の表示」を参照してください。
実験ターゲットとしてのフリー テキスト特徴量の使用
まれに、フリー テキスト特徴量がターゲットとして選択される場合があります。特徴量がフリー テキスト エンコーディングのすべての要件を満たしており、2 ~ 10 個の一意の値が含まれている場合、その特徴量をターゲットとして使用できます。このようなシナリオでは、実験は標準の二値分類問題または多項分類問題として定義されます。
予測でのフリー テキスト特徴量
フリー テキスト特徴量を使用してトレーニングされたモデルを展開すると、適用データセットで次の要件が満たされている限り、結果として得られる ML 展開で予測を生成できます。
-
特徴量の列名がトレーニング データセットと適用データセットの間で一致する
-
トレーニング データ内のフリー テキスト特徴量に対応する適用データセット内の列に、文字列データが含まれる
考慮事項
実験にフリー テキスト機能を含めると、実験は複雑になり、実行に必要なプロセスが増加します。フリー テキスト データが十分に複雑な場合、結果モデルで [Permutation Importance] チャートを使用できない可能性があります。
トラブルシューティング
フリー テキスト データを使用してモデルをトレーニングすることは、リソースを大量に消費するプロセスとなる可能性があります。多数の一意の単語を含むフリー テキスト列を特徴量として含めると、エラーが発生する可能性があります。
これらのエラーを解決するためのガイドラインを次に示します。
-
トレーニング データセット内のデータ サブセットを減らして、含まれるフリー テキストの行を減らします。
-
モデル トレーニングに含める必要のないフリー テキスト特徴量を削除します。
-
1 つ以上のフリー テキスト列を、フリー テキスト特徴量ではなくカテゴリ特徴量として扱います。これらのフリー テキスト特徴量に高いカーディナリティが含まれている場合、この方法は推奨されません。