メタデータ コンポーネントの編集
この記事では Azure Machine Learning デザイナーに含まれるコンポーネントについて説明します。
Edit Metadata (メタデータの編集) コンポーネントを使用して、データセット内の列に関連付けられているメタデータを変更します。 Edit Metadata (メタデータの編集) コンポーネントの使用後、データセットの値とデータ型が変更されます。
一般的なメタデータの変更には以下が含まれます。
ブール値または数値の列をカテゴリ値として扱う。
クラス ラベル、または分類や予測する値がどの列に含まれているかを示す。
列をフィーチャーとしてマークする。
日付/時刻の値を数値に、またはその逆に変更する。
列名を変更する。
列の定義を変更する必要がある場合は、いつでも Edit Metadata (メタデータの編集) を使用します (通常はダウンストリーム コンポーネントの要件を満たすため)。 たとえば、一部のコンポーネントでは、特定のデータ型でのみ動作したり、列にフラグ (IsFeature
や IsCategorical
など) が必要であったりします。
必要な操作を実行した後、メタデータを元の状態にリセットできます。
Edit Metadata (メタデータの編集) を構成する
Azure Machine Learning デザイナーで、Edit Metadata (メタデータの編集) コンポーネントをパイプラインに追加し、更新するデータセットを接続します。 このコンポーネントは、 [データ変換] カテゴリ内にあります。
コンポーネントの右側のパネルにある [列の編集] をクリックして、操作する列または列のセットを選択します。 名前またはインデックスで列を個別に選択することも、型で列のグループを選択することもできます。
選択した列に別のデータ型を割り当てる必要がある場合は、 [Data type]\(データ型\) オプションを選択します。 特定の操作で、データ型の変更が必要な場合があります。 たとえば、ソース データセットにテキストとして処理される数値がある場合、算術演算を使用する前にそれらを数値データ型に変更する必要があります。
サポートされるデータ型は String、Integer、Double、Boolean、および DateTime です。
複数の列が選択されている場合は、メタデータの変更を "すべて" の選択された列に適用する必要があります。 たとえば、2 列または 3 列の数値列を選択するとします。 1 つの操作で、それらのすべてを文字列データ型に変更し、名前を変更することができます。 ただし、ある列を文字列データ型に変更し、別の列を float から integer に変更することはできません。
新しいデータ型を指定しない場合、列のメタデータは変更されません。
Edit Metadata (メタデータの編集) の操作後、列の型と値が変更されます。 Edit Metadata (メタデータの編集) を使用して列のデータ型をリセットすることで、いつでも元のデータ型を復元できます。
Note
DateTime 形式は、Python の組み込みの datetime 形式に従います。
任意の数値の型を DateTime 型に変更する場合は、 [DateTime Format]\(DateTime 形式\) フィールドを空白のままにします。 現時点では、ターゲットのデータ形式を指定することはできません。[Categorical]\(カテゴリ\) オプションを選択して、選択した列内の値をカテゴリとして扱うことを指定します。
たとえば、0、1、2 の数値を含む列があり、数値が実際には "Smoker (喫煙者)"、"Non-smoker (非喫煙者)"、"Unknown (不明)" を意味していることがわかっているとします。この場合、列をカテゴリとしてフラグ設定することで、値をデータのグループ化にのみ使用されるようにし、数値の計算には使用されないようにすることができます。
Azure Machine Learning がモデル内のデータを使用する方法を変更する場合は、 [Fields]\(フィールド\) オプションを使用します。
フィーチャー: このオプションを使用して、フィーチャー列に対してのみ動作するコンポーネント内のフィーチャーとして列をフラグ設定します。 既定では、すべての列が最初はフィーチャーとして扱われます。
ラベル:このオプションを使用して、ラベル (予測可能な属性、またはターゲット変数とも呼ばれます) をマーク付けします。 多くのコンポーネントでは、データセット内にラベル列が 1 つだけ存在していることが要求されます。
多くの場合、Azure Machine Learning では、列にクラス ラベルが含まれていることを推論できます。 このメタデータを設定することで、列が正しく識別されるようにすることができます。 このオプションを設定しても、データ値は変更されません。 それは、一部の機械学習アルゴリズムによるデータの処理方法を変更するだけです。
ヒント
これらのカテゴリに適合しないデータがありますか。 たとえば、データセットに変数として有用ではない一意の識別子などの値が含まれている場合があります。 このような ID をモデル内で使用すると、問題が発生する場合があります。
さいわい、Azure Machine Learning ではすべてのデータが保持されるため、データセットからこのような列を削除する必要はありません。 いくつか特殊な列のセットに対して操作を実行する必要がある場合には、Select Columns in Dataset (データセット内の列の選択) コンポーネントを使用して、他のすべての列を一時的に削除するだけです。 後で Add Columns (列の追加) コンポーネントを使用して、列をマージしてデータセットに戻すことができます。
前の選択を消去してメタデータを既定値に復元するには、次のオプションを使用します。
[Clear feature]\(フィーチャーのクリア\) :フィーチャー フラグを削除するには、このオプションを使用します。
すべての列は、最初はフィーチャーとして扱われます。 数値演算を実行するコンポーネントでは、数値列が変数として扱われることを防ぐためにこのオプションを使用する必要があります。
[Clear label]\(ラベルのクリア\) :指定した列からラベル メタデータを削除するには、このオプションを使用します。
[Clear score]\(スコアのクリア\) :指定した列からスコア メタデータを削除するには、このオプションを使用します。
現時点では、Azure Machine Learning で列をスコアとして明示的にマークすることはできません。 ただし、一部の操作の結果として、列が内部的にスコアとしてフラグ設定されます。 また、カスタム R コンポーネントでスコアの値が出力される場合があります。
[New column names]\(新しい列名\) に、選択した列 (複数可) の新しい名前を入力します。
列名には、UTF-8 エンコードでサポートされている文字のみを使用できます。 空の文字列、null、またはスペースのみで構成されている名前は許可されていません。
複数の列の名前を変更するには、コンマ区切りリストとして列のインデックスの順序で名前を入力します。
選択したすべての列の名前を変更する必要があります。 列を省略したりスキップしたりすることはできません。
パイプラインを送信します。
次のステップ
Azure Machine Learning で使用できる一連のコンポーネントを参照してください。