次の方法で共有


クラスター値

クラスター値では、あいまい一致アルゴリズムを使用して類似する値を持つグループが自動的に作成され、各列の値が最も一致するグループにマップされます。 この変換は、同じ値の多くの異なるバリエーションがあるデータを使用していて、値を一貫性のあるグループに結合する必要がある場合に役立ちます。

一連の ID を含む id 列と、Miguel、Mike、William、Bill という名前の一連のさまざまなスペルと大文字で始まるバージョンを含む Person 列を持つサンプル テーブルについて考えてみます。

Miguel と William という名前のさまざまなスペルと大文字化を含むエントリが 9 行あるテーブルのスクリーンショット。

この例では、求めている結果は、同じ単語のすべての異なるバリエーションではなく、Person 列の適切な値のグループを示す新しい列を持つテーブルです。

初期テーブルに Cluster という新しい列としてクラスター化された値のスクリーンショット。

Note

クラスター値機能は、Power Query Online でのみ使用できます。

Cluster 列を作成する

値をクラスター化するには、まず [Person] 列を選択し、リボンの [列の追加] タブに移動し、[クラスター値] オプションを選択します。

Power Query Online のリボンの [列の追加] タブ内の [クラスター値] アイコンのスクリーンショット。

[クラスター値] ダイアログ ボックスで、クラスターの作成に使用する列を確認し、新しい列の名前を入力します。 ここでは、この新しい列に Cluster という名前を付けします。

[Person] 列が選択され、[新しい列名] に

その操作の結果は、次の図に示されています。

初期テーブルに Cluster という新しい列としてクラスター化された値のスクリーンショット。

Note

値のクラスターごとに、選択した列で最も頻繁に出現するインスタンスが Power Query によって "正規" インスタンスとして選択されます。 複数のインスタンスが同じ頻度で出現している場合は、Power Query によって最初のインスタンスが選択されます。

あいまいクラスター オプションを使用する

新しい列に値をクラスタリングするには、次のオプションを使用できます。

  • [類似性のしきい値 (省略可能)]: このオプションは、類似した 2 つの値をどのようにグループ化する必要があるかを示します。 最小設定の ゼロ (0) では、すべての値がグループ化されます。 最大設定の 1 では、厳密に一致する値のみがグループ化されます。 既定値は 0.8 です。
  • [大文字と小文字を区別しない]: 文字列を比較するときに、大文字と小文字が無視されます。 既定では、このオプションは有効になっています。
  • [テキストのパーツを組み合わせてグループ化する]: このアルゴリズムでは、テキストのパーツを組み合わせて (Micro と soft を Microsoft に組み合わせるなど) 値をグループ化することを試みます。
  • [類似性スコアの表示]: あいまいクラスタリングの後の入力値と計算された代表値の間の類似度スコアを表示します。
  • [変換テーブル (省略可能)]: 値をマップして (MSFT を Microsoft にマッピングするなど) それらをグループ化する変換テーブルを選択できます。

この例では、My transform table という新しい変換テーブルを使用して、値をマップする方法を示します。 この変換テーブルには、次の 2 つの列があります。

  • From: テーブル内で検索するテキスト文字列。
  • To: From 列のテキスト文字列を置き換えるために使用されるテキスト文字列。

mike と William という [From] の値と Miguel と Bill という [To] の値を示すテーブルのスクリーンショット。

重要

前の図に示されているように、変換テーブルの列と列名が同じであることが重要です ("From" と "To" という名前である必要があります)。そうしないと、Power Query でこのテーブルが変換テーブルとして認識されず、変換は実行されません。

前に作成したクエリを使用して、[クラスター化された値] ステップをダブルクリックし、[クラスター値] ダイアログ ボックスで [あいまいクラスター オプション] を展開します。 [あいまいクラスター オプション][類似性スコアの表示] オプションを有効にします。 [変換テーブル (省略可能)] で、変換テーブルを持つクエリを選択します。

変換テーブルのドロップダウン メニューがサンプル変換テーブルに設定されているあいまいクラスター オプションのスクリーンショット。

変換テーブルを選択して [類似性スコアの表示] オプションを有効にしたら、[OK] を選択します。 その操作の結果には、元のテーブルと同じ ID 列と Person 列を含むテーブルが表示されますが、右側に ClusterPerson_Cluster_Similarity という 2 つの新しい列も含まれています。 Cluster 列には、適切にスペリングされて大文字で始まるバージョンの名前の Miguel (Miguel と Mike のバージョンの場合) と William (Bill、Billy、William のバージョンの場合) が含まれています。 Person_Cluster_Similarity 列には、各名前の類似性スコアが含まれています。

新しい Cluster 列と Person_Cluster_Similarity 列が含まれているテーブルのスクリーンショット。

変換テーブルの規範

前のセクションの変換テーブルは、Mike のインスタンスが Miguel に変更され、William のインスタンスが Bill に変更されたことを示していることがわかります。 しかし、結果のテーブルでは、Bill と "billy" のインスタンスが William に変更されました。 変換テーブルでは、From から To の直接パスではなく、クラスタリング中に対称になります。つまり、"mike" は "Miguel" に相当し、その逆も同様です。 変換テーブルで指定された同等の結果は、次のルールによって異なります。

  • 同じ値が大部分である場合、これらの値は非識別値よりも優先されます。
  • 値が大部分ではない場合は、最初に表示される値が優先されます。

たとえば、この記事で使用されている元のテーブルでは、Person 列の Miguel ("miguel" と Miguel の両方) のバージョンが、Miguel と Mike という名前のインスタンスの大部分を構成しています。 さらに、イニシャルキャップした名前 Miguel は、Miguel という名前の大部分を占めます。 そのため、変換テーブルで Miguel とその派生物と Mike とその派生物を関連付けることで、名前 Miguel が Cluster 列で使用されます。

ただし、William、Bill、および "billy" という名前の場合、3 つすべてが一意であるため、値は大部分ではありません。 William が最初に現れるので、William は Cluster 列で使用されます。 テーブルに最初に "billy" が表示されていた場合は、Cluster 列に "billy" が使用されます。 また、値の大部分がないため、個々の名前で使用されるケースが使用されます。 つまり、William が最初の場合、"W" が大文字の William が結果値として使用されます。"billy" が最初の場合は、"b"が小文字 の "billy" が使用されます。