重複する行の削除コンポーネント
この記事では Azure Machine Learning デザイナーのコンポーネントについて説明します。
このコンポーネントを使用して、データセットから重複の可能性があるものを削除します。
たとえば、次のようにデータがあり、患者の複数のレコードを表しているとします。
PatientID | イニシャル | 性別 | Age | 受付 |
---|---|---|---|---|
1 | F.M. | M | 53 | 1 月 |
2 | F.A.M. | M | 53 | 1 月 |
3 | F.A.M. | M | 24 | 1 月 |
3 | F.M. | M | 24 | 2 月 |
4 | F.M. | M | 23 | 2 月 |
F.M. | M | 23 | ||
5 | F.A.M. | M | 53 | |
6 | F.A.M. | M | NaN | |
7 | F.A.M. | M | NaN |
明らかに、この例には重複する可能性のあるデータを含む複数の列があります。 実際に重複しているかどうかは、データに関するユーザーの知識によって異なります。
たとえば、多くの患者が同じ名前であることを知っているかもしれません。 重複の除去には、名前の列は使用せず、ID 列のみを使用します。 そうすることで、患者の名前が同じであるかどうかにかかわらず、重複する ID 値を備える行のみが除外されます。
また、ID フィールドでは重複を許可し、名、姓、年齢、性別など、ファイルの他の組み合わせを使用して、一意のレコードを見つけることもできます。
行が重複しているかどうかの基準を設定するには、キーとして使用する単一の列または列のセットを指定します。 2 つの行は、すべてのキー列の値が等しい場合にのみ、重複していると見なされます。 いずれかの行でキーの値が欠如している場合、それらは重複行とは見なされません。 たとえば、上の表で [性別] と [年齢] がキーに設定されている場合、行の 6 と 7 は、[年齢] に値がないため、重複する行ではありません。
コンポーネントを実行すると、候補のデータセットが作成され、指定した列のセット全体で重複がない行のセットが返されます。
重要
ソース データセットは変更されません。このコンポーネントでは、指定した基準に基づいて、重複を除外するようにフィルター処理された新しいデータセットが作成されます。
Remove Duplicate Rows の使用方法
このコンポーネントをパイプラインに追加します。 Remove Duplicate Rows (重複行の削除) コンポーネントは、 [データ変換] 、 [操作] にあります。
重複する行をチェックするデータセットを接続します。
[プロパティ] ウィンドウの [Key column selection filter expression]\(キー列の選択フィルター式\) で、[Launch column selector]\(列セレクターの起動\) をクリックして、重複の識別に使用する列を選択します。
このコンテキストで、キーは一意の識別子を意味しません。 列セレクターを使用して選択したすべての列が、キー列として指定されます。 選択さしなかったすべての列は、非キー列と見なされます。 キーとして選択した列の組み合わせによって、レコードの一意性が決定されます (これを、複数の等価結合を使用する SQL ステートメントであると考えてください)。
例 :
- "ID が一意であることを確認する": ID 列だけを選択します。
- "名、姓、および ID の組み合わせが一意であることを確認したい": 3 つの列すべてを選択します。
重複が見つかったときに返す行を指定するには、[Retain first duplicate row]\(最初の重複行を保持\) チェック ボックスをオンにします。
- オンにすると、最初の行が返され、他の行は破棄されます。
- このオプションをオフにした場合は、最後の重複する行が結果で保持され、他の行は破棄されます。
パイプラインを送信します。
結果を確認するには、コンポーネントを右クリックし、 [可視化] を選択します。
ヒント
結果を解釈するのが難しい場合、またはいくつかの列を考慮から除外したい場合は、Select Columns in Dataset (データセット内の列の選択) コンポーネントを使用して列を削除できます。
次の手順
Azure Machine Learning で使用できる一連のコンポーネントを参照してください。