

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Datensatzabgleich mit AWS Lake Formation FindMatches
<a name="machine-learning"></a>

**Anmerkung**  
Der Datensatzabgleich ist derzeit in den folgenden Regionen der AWS Glue Konsole nicht verfügbar: Naher Osten (VAE), Europa (Spanien), Asien-Pazifik (Jakarta) und Europa (Zürich).

AWS Lake Formation bietet Funktionen für maschinelles Lernen, mit denen Sie benutzerdefinierte Transformationen zur Bereinigung Ihrer Daten erstellen können. Derzeit ist eine Transformation mit dem Namen verfügbar. FindMatches Die FindMatches Transformation ermöglicht es Ihnen, doppelte oder übereinstimmende Datensätze in Ihrem Datensatz zu identifizieren, selbst wenn die Datensätze keinen gemeinsamen eindeutigen Bezeichner haben und keine Felder exakt übereinstimmen. Dazu müssen Sie keinen Code schreiben oder wissen, wie maschinelles Lernen funktioniert. FindMatches kann bei vielen verschiedenen Problemen nützlich sein, wie zum Beispiel: 
+ **Abgleichen von Kunden**: Verknüpfen von Kundendatensätzen über verschiedene Kundendatenbanken hinweg, auch wenn viele Kundenfelder in den Datenbanken nicht exakt übereinstimmen (z. B. unterschiedliche Schreibweise der Namen, Adressunterschiede, fehlende oder ungenaue Daten usw.).
+ **Abgleichen von Produkten**: Abgleichen von Produkten in Ihrem Katalog mit anderen Produktquellen, beispielsweise des Produktkatalogs mit dem Katalog eines Wettbewerbers, wobei Einträge unterschiedlich strukturiert sind.
+ **Verbesserung der Betrugserkennung**: Identifizieren von doppelten Kundenkonten, um zu bestimmen, wann ein neu erstelltes Konto mit einem zuvor bekannten betrügerischen Benutzer übereinstimmt (oder übereinstimmen könnte).
+ **Andere Übereinstimmungsprobleme**: Übereinstimmung von Adressen, Filmen, Teilelisten usw. Wenn ein Mensch sich Ihre Datenbankzeilen ansehen und feststellen könnte, dass sie übereinstimmen, besteht im Allgemeinen eine sehr gute Chance, dass die FindMatches Transformation Ihnen helfen kann.

 Sie können diese Transformationen erstellen, wenn Sie einen Auftrag erstellen. Die von Ihnen erstellte Transformation basiert auf einem Quelldatenspeicherschema und Beispieldaten aus dem Quelldatensatz, denen Sie Labels zuweisen (wir bezeichnen diesen Prozess als „Trainieren” einer Transformation). Die von Ihnen mit einem Label versehenen Datensätze müssen im Quelldatensatz vorhanden sein. In diesem Prozess generieren wir eine Datei, die Sie labeln und dann wieder hochladen, woraus die Transformation in gewisser Weise lernen würde. Nachdem Sie Ihre Transformation gelernt haben, können Sie sie von Ihrem Spark-basierten AWS Glue Job (PySpark oder Scala Spark) aus aufrufen und in anderen Skripten mit einem kompatiblen Quelldatenspeicher verwenden. 

 Erstellte Transformationen werden in AWS Glue gespeichert. In der AWS Glue Konsole können Sie die von Ihnen erstellten Transformationen verwalten. Im Navigationsbereich unter **Datenintegration und ETL**, **Datenklassifizierungs-Tools > Datensatzabgleich**, können Sie Ihre Machine-Learning-Transformation bearbeiten und weiter unterrichten. Weitere Informationen zum Verwalten von Transformationen in der Konsole finden Sie unter [Arbeiten mit Machine-Learning-Transformationen](console-machine-learning-transforms.md). 

**Anmerkung**  
AWS Glue FindMatches Jobs der Version 2.0 verwenden den Amazon S3 S3-Bucket`aws-glue-temp-<accountID>-<region>`, um temporäre Dateien zu speichern, während die Transformation Daten verarbeitet. Sie können diese Daten, nachdem die Ausführung abgeschlossen wurde, entweder manuell oder durch Festlegen einer Amazon S3-Lebenszyklusregel löschen.

## Arten von Machine Learning-Transformationen
<a name="machine-learning-transforms"></a>

Sie können Machine Learning-Transformationen erstellen, um Ihre Daten zu bereinigen. Sie können diese Transformationen aus Ihrem ETL-Skript heraus aufrufen. Ihre Daten werden von Transformation zu Transformation in einer Datenstruktur namens a *DynamicFrame*weitergeleitet. Dabei handelt es sich um eine Erweiterung von Apache Spark SQL`DataFrame`. Der `DynamicFrame` enthält Ihre Daten und Sie verweisen auf das Schema, um Ihre Daten zu verarbeiten.

Die folgenden Arten von Machine Learning-Transformationen sind verfügbar:

*Suche nach Übereinstimmungen*  
Sucht doppelte Datensätze in den Quelldaten. Zum Trainieren dieser Machine Learning-Transformation kennzeichnen Sie durch entsprechendes Labeling von Beispieldatensätzen, welche Zeilen übereinstimmen. Die Machine Learning-Transformation lernt immer besser, welche Zeilen Übereinstimmungen darstellen sollten, je mehr Sie sie mit gelabelten Beispieldaten trainieren. Abhängig davon, wie Sie die Transformation konfigurieren, ist eine der folgenden Ausgaben möglich:  
+ Eine Kopie der Eingabetabelle sowie eine `match_id`-Spalte mit Werten, die übereinstimmende Gruppen von Datensätzen angeben. Die `match_id`-Spalte ist ein beliebiger Bezeichner. Alle Datensätze mit derselben `match_id` wurden als übereinstimmend identifiziert. Datensätze mit anderer `match_id`stimmen nicht überein.
+ Eine Kopie der Eingabetabelle, in der doppelte Zeilen entfernt wurden. Wenn mehrere Duplikate gefunden werden, wird der Datensatz mit dem niedrigsten Primärschlüssel beibehalten.

*Inkrementelle Übereinstimmungen finden*  
Die Transformation „Übereinstimmungen suchen“ kann auch konfiguriert werden, um Übereinstimmungen in den vorhandenen und inkrementellen Frames zu finden und als Ausgabe eine Spalte zurückzugeben, die eine eindeutige ID pro Übereinstimmungsgruppe enthält.   
Weitere Informationen finden Sie unter: [Inkrementelle Übereinstimmungen finden](machine-learning-incremental-matches.md)

### Verwenden der FindMatches Transformation
<a name="machine-learning-find-matches"></a>

Sie können mit der `FindMatches`-Transformation nach doppelten Datensätzen in den Quelldaten suchen. Zur Unterstützung beim Trainieren der Transformation wird eine Labeling-Datei generiert oder zur Verfügung gestellt.

**Anmerkung**  
Derzeit werden `FindMatches`-Transformationen, die einen benutzerdefinierten Verschlüsselungsschlüssel verwenden, in den folgenden Regionen nicht unterstützt:  
Asien Pazifik (Osaka) – `ap-northeast-3`

 Um mit der FindMatches Transformation zu beginnen, können Sie die folgenden Schritte ausführen. Ein ausführlicheres und detaillierteres Beispiel finden Sie im **AWS Big Data-Blog**: [Harmonisieren Sie die Nutzung von Daten AWS Glue und maschinelles Lernen, um AWS Lake Formation FindMatches eine 360-Grad-Ansicht für Kunden zu erstellen](https://aws.amazon.com/blogs/big-data/harmonize-data-using-aws-glue-and-aws-lake-formation-findmatches-ml-to-build-a-customer-360-view/). 

#### Erste Schritte mit der Transformation zur Suche nach Übereinstimmungen
<a name="machine-learning-find-mathes-workflow"></a>

Führen Sie als Einstieg in die `FindMatches`-Transformation die folgenden Schritte aus:

1. Erstellen Sie im eine Tabelle AWS Glue Data Catalog für die Quelldaten, die bereinigt werden sollen. Weitere Informationen zum Erstellen eines Crawlers finden Sie unter [Arbeiten mit Crawlern in der AWS Glue-Konsole](https://docs.aws.amazon.com/glue/latest/dg/console-crawlers.html).

   Wenn es sich bei Ihren Quelldaten um eine textbasierte Datei handelt, wie z. B. eine CSV-Datei (durch Kommas voneinander getrennte Werte), berücksichtigen Sie Folgendes: 
   + Bewahren Sie die CSV-Datei Ihres Eingabedatensatzes und die Labeling-Datei in separaten Ordnern auf. Andernfalls sieht der AWS Glue-Crawler sie möglicherweise als mehrere Teile derselben Tabelle an und legt die Tabellen in Data Catalog nicht richtig an. 
   + Außer für CSV-Dateien, die ausschließlich ASCII-Zeichen enthalten, stellen Sie sicher, dass für die CSV-Dateien UTF-8 ohne BOM-Codierung (Byte Order Mark, Markierung der Bytereihenfolge) verwendet wird. Microsoft Excel fügt am Anfang der UTF-8-CSV-Dateien häufig eine BOM ein. Um diese zu entfernen, öffnen Sie die CSV-Datei in einem Texteditor und speichern Sie sie mit der Option **UTF-8 without BOM (UTF-8 ohne BOM)** neu. 

1. Erstellen Sie in der AWS Glue-Konsole einen Auftrag und wählen Sie als Transformationstyp **Find matches (Übereinstimmungen suchen)** aus.
**Wichtig**  
Die Datenquellentabelle, die Sie für den Auftrag auswählen, darf nicht mehr als 100 Spalten enthalten.

1. Weisen Sie AWS Glue an, eine Labeling-Datei zu generieren, indem Sie **Generate labeling file (Labeling-Datei generieren)** auswählen. AWS Glue verwendet den ersten Durchgang bei der Gruppierung ähnlicher Datensätze für jede `labeling_set_id`, sodass Sie diese Gruppierungen überprüfen können. Sie kennzeichnen Übereinstimmungen in der Spalte `label`.
   + Wenn Sie bereits über eine Labeling-Datei, also ein Beispiel von Datensätzen mit übereinstimmenden Zeilen, verfügen, laden Sie die Datei in Amazon Simple Storage Service (Amazon S3) hoch. Weitere Informationen über das Format der Labeling-Datei finden Sie unter [Format der Labeling-Datei](#machine-learning-labeling-file). Fahren Sie mit Schritt 4 fort.

1. Laden Sie die Labeling-Datei herunter und labeln Sie die Datei wie im Abschnitt [Labeling](#machine-learning-labeling) beschrieben.

1. Laden Sie die korrigierte Labeling-Datei hoch. AWS Glue führt Aufgaben zum Trainieren der Transformation in Bezug auf die Suche nach Übereinstimmungen aus.

   Wählen Sie auf der Seite mit der Liste **Machine learning transforms (Maschine Learning-Transformationen)** die Registerkarte **History (Verlauf)** aus. Diese Seite gibt an, wann AWS Glue die folgenden Aufgaben ausführt:
   + **Import labels (Labels importieren)**
   + **Export labels (Labels exportieren)**
   + **Generate labels (Labels generieren)**
   + **Estimate quality (Qualität beurteilen)**

1. Um eine bessere Transformation zu erstellen, können Sie die gelabelte Datei iterativ herunterladen, kennzeichnen und wieder hochladen. Bei den anfänglichen Ausführungen werden möglicherweise sehr viel mehr Datensätze falsch zugeordnet. Aber Sie können die Lernfähigkeit von AWS Glue durch fortgesetztes Überprüfen der Labeling-Datei trainieren.

1. Beurteilen und optimieren Sie Ihre Transformation, indem Sie die Leistung und Ergebnisse der Suche nach Übereinstimmungen beurteilen. Weitere Informationen finden Sie unter [Optimieren von Machine Learning-Transformationen in AWS Glue](add-job-machine-learning-transform-tuning.md).

#### Labeling
<a name="machine-learning-labeling"></a>

Wenn `FindMatches` eine Labeling-Datei generiert, werden Datensätze aus Ihrer Quelltabelle ausgewählt. `FindMatches` erkennt basierend auf vorherigem Training die wertvollsten Datensätze, von denen es lernen kann.

Unter *Labeling* ist das Bearbeiten einer Labeling-Datei (z. B. einer Tabellenkalkulation wie aus Microsoft Excel) und das Hinzufügen von Kennungen oder Labels zur Spalte `label` zu verstehen, in der übereinstimmende und nicht übereinstimmende Datensätze identifiziert werden. Es ist wichtig, dass in Ihren Quelldaten klar und konsistent definiert ist, woran eine Übereinstimmung zu erkennen ist. `FindMatches` lernt davon, welche Datensätze von Ihnen als Übereinstimmungen angesehen werden, sowie anhand Ihrer Entscheidungen, wie doppelte Datensätze zu finden sind.

Wenn eine Labeling-Datei von `FindMatches` geniert wird, werden ca. 100 Datensätze angelegt. Diese 100 Datensätze sind in der Regel in 10 *Labeling-Sätze* unterteilt, wobei jeder Labeling-Satz durch eine eindeutige `labeling_set_id` identifiziert wird, die von `FindMatches` generiert wird. Jeder Labeling-Satz sollte unabhängig von den anderen Labeling-Sätzen als separate Labeling-Aufgabe betrachtet werden. Ihre Aufgabe besteht darin, übereinstimmende und nicht übereinstimmende Datensätze innerhalb jedes Labeling-Satzes zu identifizieren.

##### Tipps zum Bearbeiten von Labeling-Dateien in einer Tabellenkalkulation
<a name="machine-learning-labeling-tips"></a>

Beim Bearbeiten der Labeling-Datei in einer Tabellenkalkulationsanwendung sollten Sie Folgendes berücksichtigen:
+ Die Datei wird möglicherweise nicht mit vollständig erweiterten Spaltenfeldern geöffnet. Sie müssen möglicherweise die Spalten `labeling_set_id` und `label` erweitern, um den Inhalt in diesen Zellen sichtbar zu machen.
+ Wenn die Primärschlüsselspalte eine Zahl ist, z. B. ein `long`-Datentyp, legt die Kalkulationstabelle sie möglicherweise als Zahl aus und ändert den Wert. Dieser Schlüssewertl muss als Text behandelt werden. Um dieses Problem zu beheben, formatieren Sie alle Zellen in der Primärschlüsselspalte als **Text data (Textdaten)**.

#### Format der Labeling-Datei
<a name="machine-learning-labeling-file"></a>

Die Labeling-Datei, die von AWS Glue generiert wird, um Ihre `FindMatches`-Transformation zu trainieren, verwendet das folgende Format. Wenn Sie Ihre eigene Datei für AWS Glue generieren, muss sie ebenfalls diesem Format folgen:
+ Sie ist eine CSV-Datei (durch Kommas voneinander getrennte Werte). 
+ Sie muss in `UTF-8` codiert sein. Wenn Sie die Datei mit Microsoft Windows bearbeiten, wird sie möglicherweise mit `cp1252` codiert.
+ Sie muss sich an einem Amazon-S3-Speicherort befinden, damit sie an AWS Glue übergeben werden kann.
+ Sie sollten eine moderate Anzahl an Zeilen für jede Labeling-Aufgabe verwenden. Es werden 10–20 Zeilen pro Aufgabe empfohlen, obwohl 2–30 Zeilen pro Aufgabe zulässig sind. Aufgaben, die größer als 50 Zeilen sind, werden nicht empfohlen und können zu schlechten Ergebnissen oder Systemausfällen führen.
+ Wenn Sie bereits Daten mit Labeling haben, die aus Paaren von Datensätzen bestehen, die als „Übereinstimmung“ oder „Keine Übereinstimmung“ gekennzeichnet sind, ist dies in Ordnung. Diese Paare mit Labeling können als Labeling-Sätze der Größe 2 dargestellt werden. Bezeichnen Sie in diesem Fall beide Datensätze beispielsweise mit dem Buchstaben „A“, wenn sie übereinstimmen, aber bezeichnen Sie einen als „A“ und einen als „B“, wenn sie nicht übereinstimmen.
**Anmerkung**  
 Aufgrund ihrer zusätzlichen Spalten weist die Labeling-Datei ein anderes Schema als die Datei mit den Quelldaten auf. Platzieren Sie die Labeling-Datei in einem anderen Ordner als die CSV-Eingabedatei der Transformation, sodass der AWS Glue-Crawler sie beim Erstellen von Tabellen in Data Catalog nicht berücksichtigt. Andernfalls repräsentieren die vom AWS Glue-Crawler erstellten Tabellen Ihre Daten möglicherweise nicht richtig. 
+ Die ersten beiden Spalten (`labeling_set_id`, `label`) werden für AWS Glue benötigt. Die verbleibenden Spalten müssen mit dem Schema der zu verarbeitenden Daten übereinstimmen.
+ Sie identifizieren für jede `labeling_set_id` alle übereinstimmenden Datensätze unter Verwendung desselben Labels. Ein Label ist eine eindeutige Zeichenfolge, die in die Spalte `label` platziert wird. Wir raten zur Verwendung von Labels mit einfachen Zeichen, z. B. A, B, C usw. Labels unterscheiden zwischen Groß- und Kleinschreibung und werden in die Spalte `label` eingegeben.
+ Zeilen, die dieselbe `labeling_set_id` und dasselbe Label enthalten, werden als Übereinstimmung bezeichnet.
+ Zeilen, die dieselbe `labeling_set_id` und ein anderes Label enthalten, werden als *nicht* übereinstimmend bezeichnet.
+ Zeilen, die eine andere `labeling_set_id` enthalten, werden so gewertet, dass sie keine Informationen für oder gegen eine Übereinstimmung enthalten.

  Nachfolgend finden Sie ein Beispiel für das Kennzeichnen der Daten mit Labels:    
<a name="table-labeling-data"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/glue/latest/dg/machine-learning.html)
+ Im obigen Beispiel identifizieren wir John/Johnny/Jon Doe as being a match and we teach the system that these records do not match Jane Smith. Separately, we teach the system that Richard and Rich Jones are the same person, but that these records are not a match to Sarah Jones/Jones -Walker und Richie Jones Jr.
+ Wie Sie sehen, ist der Umfang der Labels auf die `labeling_set_id` beschränkt. Labels überschreiten daher keine `labeling_set_id`-Grenzen. Beispiel: Label „A“ für `labeling_set_id` 1 hat keinen Bezug zu Label „A“ für `labeling_set_id` 2.
+ Wenn ein Datensatz keine Übereinstimmungen innerhalb eines Labeling-Satzes enthält, weisen Sie ihm ein eindeutiges Label zu. Jane Smith entspricht beispielsweise keinem Datensatz im Beschriftungssatz ABC123, sodass es der einzige Datensatz in diesem Beschriftungssatz mit der Bezeichnung B ist.
+ Der Beschriftungssatz "GHI678" zeigt, dass ein Beschriftungssatz nur aus zwei Datensätzen bestehen kann, denen dieselbe Bezeichnung zugewiesen wurde, um zu zeigen, dass sie übereinstimmen. Ähnlich zeigt „XYZABC“ zwei Datensätze mit unterschiedlichen Labels, um zu zeigen, dass sie nicht übereinstimmen.
+ Beachten Sie, dass manchmal ein Labeling-Satz keine Übereinstimmungen enthalten kann (d. h. Sie geben jedem Datensatz im Labeling-Satz ein anderes Label), oder ein Labeling-Satz könnte „alle gleich“ sein (Sie haben allen das gleiche Label gegeben). Dies ist in Ordnung, solange Ihre Labeling-Sätze zusammen Beispiele für Datensätze enthalten, die nach Ihren Kriterien „identisch“ sind und nicht.

**Wichtig**  
Vergewissern Sie sich, dass die IAM-Rolle, die Sie an AWS Glue übergeben, Zugriff auf den Amazon-S3-Bucket mit der Labeling-Datei hat. Laut Konvention erteilen AWS Glue-Richtlinien die Berechtigung für Amazon-S3-Buckets oder -Ordner, deren Namen das Präfix **aws-glue-** enthalten. Wenn sich die Labeling-Dateien an einem anderen Speicherort befinden, fügen Sie der IAM-Rolle die Berechtigung für diesen Speicherort hinzu.

# Optimieren von Machine Learning-Transformationen in AWS Glue
<a name="add-job-machine-learning-transform-tuning"></a>

Sie können Ihre Machine Learning-Transformationen in AWS Glue optimieren, um die Ergebnisse Ihrer Datenbereinigungsaufträge zur Erreichung Ihrer Ziele zu verbessern. Zur Verbesserung der Transformation können Sie ihr beibringen, eine Menge von Kennzeichnungen zu generieren, Kennzeichnungen hinzufügen und diese Schritte dann so oft wiederholen, bis die gewünschten Ergebnisse erzielt werden. Sie können eine Optimierung auch durch das Ändern einiger Machine-Learning-Parameter herbeiführen. 

Weitere Informationen zu Machine Learning-Transformationen finden Sie unter [Datensatzabgleich mit AWS Lake Formation FindMatches](machine-learning.md).

**Topics**
+ [Machine Learning-Messungen](machine-learning-terminology.md)
+ [Entscheidung zwischen Präzision und Sensitivität](machine-learning-precision-recall-tradeoff.md)
+ [Entscheidung zwischen Genauigkeit und Kosten](machine-learning-accuracy-cost-tradeoff.md)
+ [Schätzen der Qualität von Übereinstimmungen mithilfe von Match-Konfidenzwerten](match-scoring.md)
+ [Schulen der Transformation zum Suchen von Übereinstimmungen](machine-learning-teaching.md)

# Machine Learning-Messungen
<a name="machine-learning-terminology"></a>

Um die Messungen zu verstehen, die zur Optimierung der Machine Learning-Transformation verwendet werden, sollten Sie mit der folgenden Terminologie vertraut sein:

**Tatsächliches Positiv (TP)**  
Eine Datenübereinstimmung, die die Transformation korrekterweise ermittelt hat, manchmal auch als *Treffer* bezeichnet.

**Tatsächliches Negativ (TN)**  
Eine Nicht-Übereinstimmung der Daten, die die Transformation korrekterweise abgelehnt hat.

**Falsches Positiv (FP)**  
Eine Nicht-Übereinstimmung der Daten, die die Transformation fälschlicherweise als Übereinstimmung klassifiziert hat, manchmal auch als *Fehlalarm* bezeichnet.

**Falsches Negativ (FN)**  
Eine Übereinstimmung in den Daten, die die Transformation nicht gefunden hat, manchmal auch als *Miss* bezeichnet.

Weitere Informationen zur Terminologie, die beim Machine Learning verwendet wird, finden Sie unter[Confusion matrix](https://en.wikipedia.org/wiki/Confusion_matrix) in Wikipedia.

Zur Optimierung Ihrer Machine Learning-Transformationen können Sie den Wert der folgenden Messungen innerhalb der **Advanced properties (Erweiterten Eigenschaften)** der Transformation ändern.
+ **Precision (Genauigkeit)** misst, wie gut die Transformation echte positive Ergebnisse unter der Gesamtzahl der Datensätze findet, die sie als positiv identifiziert (echte positive und falsche positive). Weitere Informationen finden Sie unter [Precision and recall](https://en.wikipedia.org/wiki/Precision_and_recall) in Wikipedia.
+ **Recall (Sensitivität)** misst, wie gut die Transformation die tatsächlichen Positive aus der Gesamtzahl der Datensätze in den Quelldaten ermittelt. Weitere Informationen finden Sie unter [Precision and recall](https://en.wikipedia.org/wiki/Precision_and_recall) in Wikipedia.
+ **Accuracy (Genauigkeit)** misst, wie gut die Transformation tatsächliche Positive und tatsächliche Negative findet. Eine Erhöhung der Genauigkeit erfordert mehr maschinelle Ressourcen und erhöht die Kosten. Sie resultiert aber auch in einer erhöhten Sensitivität. Weitere Informationen finden Sie unter [Accuracy and precision](https://en.wikipedia.org/wiki/Accuracy_and_precision#In_information_systems) in Wikipedia.
+ **Cost (Kosten)** misst, wie viele Datenverarbeitungsressourcen (und damit Geld) zum Ausführen der Transformation verbraucht werden.

# Entscheidung zwischen Präzision und Sensitivität
<a name="machine-learning-precision-recall-tradeoff"></a>

Jede `FindMatches`-Transformation enthält einen `precision-recall`-Parameter. Sie verwenden diesen Parameter, um einen der folgenden Schritte festzulegen:
+ Wenn Sie sich Gedanken darüber machen, dass die Transformation fälschlicherweise zwei Datensätze als übereinstimmend bezeichnet, obwohl sie tatsächlich nicht übereinstimmen, dann sollten Sie die *Präzision* verstärken. 
+ Wenn Sie sich Gedanken darüber machen, dass die Transformation zwei Datensätze nicht als übereinstimmend erkennt, die tatsächlich übereinstimmen, sollten Sie die *Sensitivität* verstärken.

Sie können diesen Trade-off auf der AWS Glue-Konsole oder mithilfe der Machine Learning-API-Operationen von AWS Glue vornehmen.

**Wann Sie die Präzision erhöhen sollten**  
Erhöhen Sie die Präzision, wenn Sie sich Gedanken über das Risiko machen, dass`FindMatches` übereinstimmenden Datensätze anzeigt, obwohl sie in Wirklichkeit nicht übereinstimmen. Um die Präzision zu erhöhen, wählen Sie einen *höheren* Wert für den Trade-off zwischen Präzision und Sensitivität. Wenn Sie einen höheren Wert einstellen, benötigt die`FindMatches`-Transformation weitere Nachweise für die Entscheidung, ob ein Datensatzpaar übereinstimmt. Die Transformation wird dahingehend optimiert, dass sie feststellt, dass Datensätze nicht übereinstimmen.

Nehmen Sie zum Beispiel an, dass Sie `FindMatches` zur Erkennung von doppelten Elementen in einem Video-Katalog verwenden und einen höheren Wert des Präzisions-Sensitivitäts-Wert für die Transformation eingeben. Wenn Ihre Transformation fälschlicherweise feststellt, dass *Star Wars: Eine neue Hoffnung* identisch ist mit *Star Wars: Das Imperium schlägt zurück*, kann es passieren, dass ein Kunde *Eine neue Hoffnung* möchte und stattdessen *Das Imperium schlägt zurück* angezeigt bekommt. Dies wäre eine schlechte Kundenerfahrung. 

Wenn die Transformation jedoch nicht erkennt, dass *Star Wars: Eine neue Hoffnung* und *Star Wars: Episode IV – Eine neue Hoffnung* identisch sind, ist der Kunde vielleicht zunächst verwirrt, erkennt dann jedoch, dass sie identisch sind. Es wäre zwar ein Fehler, aber weniger schlimm als im vorherigen Szenario.

**Wann Sie die Sensitivität erhöhen sollten**  
Erhöhen Sie die Sensitivität, wenn Sie sich Gedanken über das Risiko machen, dass die `FindMatches`-Transformationsergebnisse möglicherweise einen Datensatz nicht erkennen, der tatsächlich übereinstimmt. Um die Sensitivität zu erhöhen, wählen Sie einen *niedrigeren* Wert für den Präzisions-Sensitivitäts-Trade-off. Bei einem niedrigeren Wert sind für die `FindMatches`-Transformation weniger Nachweise für die Entscheidung erforderlich, dass ein Paar von Datensätzen übereinstimmt. Die Transformation ist dahingehend optimiert, dass sie Datensätze als übereinstimmend ansieht.

Dies kann zum Beispiel eine Priorität für eine Sicherheitsorganisation sein. Angenommen, Sie gleichen eine Liste von Kunden mit bekannten Betrügern ab und es ist wichtig festzustellen, ob ein Kunde ein Betrüger ist. Sie verwenden `FindMatches`, um die Liste der Betrüger mit der Liste der Kunden abzugleichen. Jedes Mal, wenn `FindMatches` eine Übereinstimmung zwischen den beiden Listen feststellt, wird ein menschlicher Prüfer zugewiesen, um zu prüfen, ob es sich bei der betreffenden Person tatsächlich um einen Betrüger handelt. Für Ihre Organisation ist vielleicht eine erhöhte Sensitivität wichtiger als die Präzision. Mit anderen Worten: Sie ziehen eine manuelle Prüfung durch die Auditoren vor und weisen einige Fälle zurück, in denen der Kunde kein Betrüger ist, als das Risiko einzugehen, einen Kunden nicht zu identifizieren, der tatsächlich auf der Betrügerliste steht.

**So verbessern Sie sowohl die Präzision als auch die Sensitivität**  
Die beste Möglichkeit zur Verbesserung der Präzision und Sensitivität besteht darin, mehr Daten zu kennzeichnen. Je mehr Daten Sie kennzeichnen, desto mehr nimmt die allgemeine Genauigkeit der `FindMatches`-Transformation zu und verbessert damit sowohl die Präzision als auch die Sensitivität. Selbst bei der genauesten Transformation gibt es immer einen grauen Bereich, in dem Sie ausprobieren müssen, ob besser die Präzision oder die Sensitivität erhöht oder ein Wert in der Mitte gewählt werden soll. 

# Entscheidung zwischen Genauigkeit und Kosten
<a name="machine-learning-accuracy-cost-tradeoff"></a>

Jede `FindMatches`-Transformation enthält einen `accuracy-cost`-Parameter. Sie können diesen Parameter verwenden, um einen der folgenden Punkte festzulegen:
+ Wenn Sie mehr Wert darauf legen, dass die Transformation korrekt meldet, dass zwei Datensätze übereinstimmen, sollten Sie den Faktor *Genauigkeit* verstärken.
+ Wenn Sie mehr Wert auf die Kosten oder die Geschwindigkeit der Ausführung der Transformation legen, sollten Sie den Faktor *geringere Kosten* verstärken.

Sie können diesen Trade-off auf der AWS Glue-Konsole oder mithilfe der Machine Learning-API-Operationen von AWS Glue vornehmen.

**Wann Sie der Genauigkeit den Vorzug geben sollten**  
Verstärken Sie die Genauigkeit, wenn Sie sich Gedanken über das Risiko machen, dass die `find matches`-Ergebnisse keine Übereinstimmungen enthalten. Um die Genauigkeit zu verstärken, wählen Sie einen *höheren* Genauigkeits-Kosten-Trade-off. Bei einem höheren Wert benötigt die`FindMatches`-Transformation mehr Zeit, um eine gründlichere Suche nach korrekt übereinstimmenden Datensätzen durchzuführen. Beachten Sie, dass dieser Parameter nicht die Wahrscheinlichkeit reduziert, dass ein nicht übereinstimmendes Datensatzpaar als übereinstimmend erkannt wird. Die Transformation ist dahingehend optimiert, dass sie mehr Zeit beim Suchen der Übereinstimmungen aufwendet.

**Wann Sie die Kosten verstärken sollten**  
Verstärken Sie den Faktor „Kosten“, wenn Sie sich über die Kosten für die Ausführung der `find matches`-Transformation Gedanken machen und weniger darüber, wie viele Übereinstimmungen gefunden werden. Um die Kosten zu verstärken, wählen Sie einen *niedrigeren* Genauigkeits-Kosten-Trade-off. Bei einem niedrigeren Wert werden für die Ausführung der `FindMatches`-Transformation weniger Ressourcen benötigt. Die Transformation ist dahingehend optimiert, dass sie weniger Übereinstimmungen findet. Wenn die Ergebnisse bei der Verstärkung der niedrigeren Kosten akzeptabel sind, wählen Sie diese Einstellung.

**So verstärken Sie sowohl den Faktor Genauigkeit als auch geringere Kosten**  
Es benötigt mehr Rechnerzeit, um mehrere Datensatzpaare daraufhin zu prüfen, ob sie möglicherweise übereinstimmen. Wenn Sie die Kosten senken möchten, ohne die Qualität zu mindern, empfehlen wir folgende Schritte: 
+ Entfernen Sie Datensätze in Ihrer Datenquelle, bei denen Ihnen nicht wichtig ist, ob sie übereinstimmen oder nicht.
+ Entfernen Sie Spalten aus Ihrer Datenquelle, bei denen Sie sicher sind, dass sie bei der Entscheidungsfindung, ob ein Datensatzpaar übereinstimmt, nicht wichtig sind. Eine gute Möglichkeit, zu entscheiden, welche Spalten dies betrifft, ist zu überlegen, welche Spalten Ihre eigene Entscheidungsfindung darüber, ob eine Datensatzmenge übereinstimmt, nicht beeinflussen würden.

# Schätzen der Qualität von Übereinstimmungen mithilfe von Match-Konfidenzwerten
<a name="match-scoring"></a>

Übereinstimmungswerte bieten eine Schätzung der Qualität der gefundenen Treffer, FindMatches um zwischen übereinstimmenden Datensätzen zu unterscheiden, bei denen das Modell des maschinellen Lernens sehr sicher, unsicher oder unwahrscheinlich ist. Ein Match-Konfidenzwert liegt zwischen 0 und 1, wobei ein höherer Punktestand eine höhere Ähnlichkeit bedeutet. Durch die Untersuchung von Match-Konfidenzwerten können Sie zwischen Clustern von Übereinstimmungen unterscheiden, in denen das System sehr zuversichtlich ist (die Sie möglicherweise zusammenführen möchten), Clustern, bei denen das System unsicher ist (die Sie möglicherweise von einem Menschen überprüfen lassen wollen) und Clustern, die das System für unwahrscheinlich hält (die Sie möglicherweise ablehnen).

Möglicherweise möchten Sie Ihre Trainingsdaten in Situationen anpassen, in denen Sie einen hohen Match-Konfidenzwert sehen, aber feststellen, dass es keine Übereinstimmungen gibt, oder in denen Sie eine niedrige Punktzahl sehen, aber feststellen, dass es tatsächlich Übereinstimmungen gibt.

Konfidenzwerte sind besonders nützlich, wenn umfangreiche industrielle Datensätze vorliegen, bei denen es nicht möglich ist, jede FindMatches Entscheidung zu überprüfen.

Match-Konfidenzwerte sind in AWS Glue Version 2.0 oder höher verfügbar.

## Generieren von Match-Konfidenzwerten
<a name="specifying-match-scoring"></a>

Sie können Match-Konfidenzwerte generieren, indem Sie beim Aufrufen der `FindMatches`- oder `FindIncrementalMatches`-API den booleschen Wert von `computeMatchConfidenceScores` auf „True“ setzen.

AWS Glue fügt der Ausgabe einen neuen `column match_confidence_score` hinzu.

## Beispiele für Match-Scoring
<a name="match-scoring-examples"></a>

Betrachten Sie beispielsweise die folgenden übereinstimmenden Datensätze:

**Ergebnis >= 0,9**  
Zusammenfassung der übereinstimmenden Datensätze:

```
  primary_id  |   match_id  | match_confidence_score

3281355037663    85899345947   0.9823658302132061
1546188247619    85899345947   0.9823658302132061
```

Details:

![\[Ein Beispiel für eine Routing-Tabelle mit einem Internet-Gateway.\]](http://docs.aws.amazon.com/de_de/glue/latest/dg/images/match_score1.png)


In diesem Beispiel sehen wir , dass zwei Datensätze sehr ähnlich sind und `display_position`, `primary_name` und `street name` gemeinsam haben. 

**Ergebnis >= 0,8 und Ergebnis < 0,9**  
Zusammenfassung der übereinstimmenden Datensätze:

```
  primary_id  |   match_id  | match_confidence_score

309237680432     85899345928   0.8309852373674638
3590592666790    85899345928   0.8309852373674638
343597390617     85899345928   0.8309852373674638
249108124906     85899345928   0.8309852373674638
463856477937     85899345928   0.8309852373674638
```

Details:

![\[Ein Beispiel für eine Routing-Tabelle mit einem Internet-Gateway.\]](http://docs.aws.amazon.com/de_de/glue/latest/dg/images/match_score2.png)


In diesem Beispiel sehen wir, dass diese Datensätze `primary_name` und `country` gemeinsam haben.

**Ergebnis >= 0,6 und Ergebnis < 0,7**  
Zusammenfassung der übereinstimmenden Datensätze:

```
  primary_id  |   match_id  | match_confidence_score

2164663519676    85899345930   0.6971099896480333
 317827595278    85899345930   0.6971099896480333
 472446424341    85899345930   0.6971099896480333
3118146262932    85899345930   0.6971099896480333
 214748380804    85899345930   0.6971099896480333
```

Details:

![\[Ein Beispiel für eine Routing-Tabelle mit einem Internet-Gateway.\]](http://docs.aws.amazon.com/de_de/glue/latest/dg/images/match_score3.png)


In diesem Beispiel sehen wir, dass diese Datensätze nur `primary_name` gemeinsam haben.

 Weitere Informationen finden Sie unter:
+ [Schritt 5: Hinzufügen und Ausführen eines Auftrags mit Ihrer Machine Learning-Transformation](machine-learning-transform-tutorial.md#ml-transform-tutorial-add-job)
+ PySpark: [FindMatches Klasse](aws-glue-api-crawler-pyspark-transforms-findmatches.md)
+ PySpark: [FindIncrementalMatches Klasse](aws-glue-api-crawler-pyspark-transforms-findincrementalmatches.md)
+ Scala: [FindMatches Klasse](glue-etl-scala-apis-glue-ml-findmatches.md)
+ Scala: [FindIncrementalMatches Klasse](glue-etl-scala-apis-glue-ml-findincrementalmatches.md)

# Schulen der Transformation zum Suchen von Übereinstimmungen
<a name="machine-learning-teaching"></a>

Jede `FindMatches`-Transformation muss lernen, was als Übereinstimmung angesehen werden sollte und was nicht. Sie schulen die Transformation, indem Sie einer Datei Kennzeichnungen hinzufügen und Ihre Auswahl zu AWS Glue hochladen. 

Sie können diese Kennzeichnungen in der AWS Glue-Konsole oder mithilfe der AWS Glue Machine Learning-API-Operationen orchestrieren.

**Wie oft soll ich Kennzeichnungen hinzufügen? Wie viele Kennzeichnungen benötige ich?**  
Die Antworten auf diese Fragen sind meistens Ihre eigene Entscheidung. Sie müssen bewerten, ob `FindMatches` die Genauigkeitsstufe liefert, die Sie benötigen, und ob sich der zusätzliche Kennzeichnungsaufwand für Sie lohnt. Die beste Möglichkeit, dies zu entscheiden, besteht darin, die Metriken „Präzision“, „Sensitivität“ und „Fläche unter der Sensitivitätskurve“ zu betrachten, die Sie generieren können, wenn Sie die Option **Estimate quality (Qualität schätzen)** in der AWS Glue-Konsole wählen. Nachdem Sie weitere Aufgabengruppen gekennzeichnet haben, führen Sie diese Metriken erneut aus und überprüfen Sie, ob sie sich verbessert haben. Wenn Sie nach der Kennzeichnung einiger Aufgabengruppen keine Verbesserung der Ihnen wichtigen Metriken feststellen können, hat die Transformationsqualität möglicherweise ein Plateau erreicht.

**Warum werden sowohl die Kennzeichnung „tatsächliches Positiv“ und „tatsächliches Negativ“ benötigt?**  
Die `FindMatches`-Transformation benötigt sowohl positive als auch negative Beispiele, um zu lernen, was für Sie eine Übereinstimmung ist. Wenn Sie von `FindMatches` generierte Trainingsdaten kennzeichnen (z. B. mithilfe der Option**I do not have labels (Ich habe keine Kennzeichnungen)**, versucht `FindMatches`, eine Reihe von „Kennzeichnungsgruppen-IDs“ für Sie zu erstellen. Innerhalb jeder Aufgabe geben Sie einigen Datensätzen dieselbe „Kennzeichnung“ und anderen Datensätzen andere „Kennzeichnungen“. Mit anderen Worten, die Aufgaben sind im Allgemeinen nicht entweder alle gleich oder alle unterschiedlich (aber es ist in Ordnung, wenn eine bestimmte Aufgabe „gleich“ oder „nicht gleich“ ist).

Wenn Sie Ihre `FindMatches`-Transformation mithilfe der Option **Upload Labels from S3 (Kennzeichnungen von S3 hochladen)** schulen, versuchen Sie, sowohl Beispiele für übereinstimmende als auch für nicht übereinstimmende Datensätze einzubeziehen. Es ist akzeptabel, nur einen Typ zu haben. Diese Kennzeichnungen helfen Ihnen, eine genauere `FindMatches`-Transformation aufzubauen, aber Sie müssen trotzdem noch einige der Datensätze, die Sie generieren, mithilfe der Option **Generate labeling file (Kennzeichnungsdatei generieren)** kennzeichnen.

**Wie kann ich erzwingen, dass die Transformation die Übereinstimmungen genau so ermittelt, wie es ihr beigebracht wurde?**  
Die `FindMatches`-Transformation lernt von den Kennzeichnungen, die Sie bereitstellen. Daher kann sie Datensatzpaare generieren, die die bereitgestellten Kennzeichnungen nicht respektieren. Um zu erzwingen, dass die `FindMatches` Transformation Ihre Beschriftungen berücksichtigt, wählen Sie **EnforceProvidedLabels**in **FindMatchesParameter**.

**Welche Techniken können Sie verwenden, wenn eine ML-Transformation Elemente als Übereinstimmungen identifiziert, die keine echten Übereinstimmungen sind?**  
Sie können die folgenden Techniken verwenden:
+ Erhöhen Sie den`precisionRecallTradeoff` auf einen höheren Wert. Dies führt dazu, dass weniger Übereinstimmungen gefunden werden, aber es sollte auch Ihr großes Cluster unterteilen, wenn der erreichte Wert hoch genug ist. 
+ Nehmen Sie die Ausgabezeilen, die den falschen Ergebnissen entsprechen und formatieren sie diese als Kennzeichnungsgruppe (Entfernen der Spalte`match_id` und Hinzufügen der Spalten`labeling_set_id` und `label`). Falls erforderlich, nehmen Sie eine Unterteilung in mehrere Kennzeichnungsgruppen vor, um sicherzustellen, dass sich der Kennzeichner alle Kennzeichnungsgruppen merken kann, während er die Kennzeichnungen zuweist. Anschließend kennzeichnen Sie die übereinstimmenden Datensätze korrekt und laden die Kennzeichnungsdatei hoch und fügen sie den vorhandenen Kennzeichnungen hinzu. Dies kann Ihrer Transformation genügend Informationen geben, wonach sie suchen soll, um das Muster zu verstehen. 
+ (Erweitert) Schauen Sie sich schließlich die Daten an, um festzustellen, ob ein Muster zu erkennen ist, das das System nicht wahrnimmt. Führen Sie eine Vorverarbeitung dieser Daten mithilfe der Standardfunktionen von AWS Glue aus, um die Daten *zu normalisieren*. Markieren Sie das, was der Algorithmus lernen soll, indem Sie Daten trennen, von denen Sie wissen, dass sie in ihren eigenen Spalten eine andere Wichtigkeit haben. Oder erstellen Sie kombinierte Spalten aus Spalten, deren Daten einen Bezug zueinander haben. 

# Arbeiten mit Machine-Learning-Transformationen
<a name="console-machine-learning-transforms"></a>

Sie können AWS Glue damit benutzerdefinierte Transformationen für maschinelles Lernen erstellen, mit denen Sie Ihre Daten bereinigen können. Diese Transformationen können Sie nutzen, wenn Sie einen Auftrag in der AWS Glue -Konsole anlegen. 

Weitere Informationen zum Erstellen einer Machine Learning-Transformation finden Sie unter [Datensatzabgleich mit AWS Lake Formation FindMatches](machine-learning.md).

**Topics**
+ [Transformieren von Eigenschaften](#console-machine-learning-properties)
+ [Hinzufügen und Bearbeiten von Machine Learning-Transformationen](#console-machine-learning-transforms-actions)
+ [Anzeigen von Transformationsdetails](#console-machine-learning-transforms-details)
+ [Transformationen mithilfe von Labels beibringen](#console-machine-learning-transforms-teaching-transforms)

## Transformieren von Eigenschaften
<a name="console-machine-learning-properties"></a>

Um eine bestehende Transformation für maschinelles Lernen einzusehen, melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die AWS Glue Konsole unter. [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/) Wählen Sie in der -Konsole im Navigationsbereich unter **Datenintegration und ETL** die Optionen **Datenklassifizierungstools > Datensatzabgleich** aus.

Die Eigenschaften für jede Transformation:

**Namen der Transformation**  
Der eindeutige Name, den Sie der Transformation bei der Erstellung gegeben haben.

**ID (ID)**  
Eine eindeutige Kennung der Transformation. 

**Label count (Anzahl der Beschriftungen)**  
Die Anzahl der Beschriftungen in der Labeling-Datei, die als Unterstützung beim Erstellen der Transformation zur Verfügung gestellt wurde. 

**Status**  
Gibt an, ob die Transformation den Status **Ready (Bereit)** oder **Needs training (Benötigt Training)** hat. Um eine Machine-Learning-Transformation in einem Auftrag erfolgreich ausführen zu können, muss sie den Status **Ready (Bereit)** haben. 

**Erstellt**  
Das Datum, an dem die Transformation erstellt wurde.

**Geändert**  
Das Datum, an dem die Transformation zuletzt aktualisiert wurde.

**Description**  
Die Beschreibung, die für die Transformation bereitgestellt wurde, sofern vorhanden.

**AWS Glue-Version**  
Die verwendete AWS Glue-Version.

**ID ausführen**  
Der eindeutige Name, den Sie der Transformation bei der Erstellung gegeben haben.

**Aufgabentyp**  
Der Typ der Machine Learning-Transformation, z. B. **Find matching records (Übereinstimmende Datensätze suchen)**.

**Status**  
Zeigt den Status der Aufgabenausführung an. Zu den möglichen Status gehören:  
+ Wird gestartet
+ In Ausführung
+ Wird angehalten
+ Angehalten
+ Erfolgreich
+ Fehlgeschlagen
+ Zeitüberschreitung

**Fehler**  
Wenn der Status „Fehlgeschlagen“ lautet, wird eine Fehlermeldung mit einer Beschreibung der Ursache des Fehlers angezeigt.

## Hinzufügen und Bearbeiten von Machine Learning-Transformationen
<a name="console-machine-learning-transforms-actions"></a>

 Sie können eine Transformation auf der AWS Glue-Konsole anzeigen, löschen, einrichten, trainieren oder optimieren. Wählen Sie das Kontrollkästchen neben der Transformation in der Liste aus, wählen Sie dann die Option**Aktion** und anschließend die Aktion, die Sie vornehmen möchten. 

### Erstellen einer neuen ML-Transformation
<a name="w2aac37c11c24c23c11b5"></a>

 Um eine neue Machine-Learning-Transformation hinzuzufügen, wählen Sie **Transformation erstellen**. Folgen Sie den Anweisungen im **Auftrag-hinzufügen**-Assistenten. Weitere Informationen finden Sie unter [Datensatzabgleich mit AWS Lake Formation FindMatches](machine-learning.md). 

#### Schritt 1. Legen Sie Transformationseigenschaften fest.
<a name="w2aac37c11c24c23c11b5b7"></a>

1. Geben Sie den Namen und die Beschreibung ein (optional).

1. Optional können Sie die Sicherheitskonfiguration festlegen. Siehe [Verwenden von Datenverschlüsselung mit Machine-Learning-Transformationen](#ml_transform_sec_config). 

1. Legen Sie optional Einstellungen für die Aufgabenausführung fest. Mithilfe den Einstellungen für die Aufgabenausführung können Sie die Ausführung der Aufgabe individuell anpassen. Wählen Sie den Worker-Typ, die Anzahl der Worker, das Aufgaben-Timeout (in Minuten), die Anzahl der Wiederholungsversuche und die AWS Glue-Version aus.

1. Legen Sie optional Tags fest. Tags sind Bezeichnungen, die Sie einer AWS Ressource zuweisen können. Jedes Tag besteht aus einem Schlüssel und einem optionalen Wert. Tags können verwendet werden, um Ihre Ressource zu durchsuchen und zu filtern oder Ihre AWS Kosten zu verfolgen.

#### Schritt 2. Wählen Sie Tabelle und Primärschlüssel aus.
<a name="w2aac37c11c24c23c11b5b9"></a>

1. Wählen Sie die AWS Glue-Katalogdatenbank und die Tabelle aus.

1. Wählen Sie einen Primärschlüssel aus der ausgewählten Tabelle. Die Primärschlüsselspalte enthält normalerweise eine eindeutige Kennung für jeden Datensatz in der Datenquelle. 

#### Schritt 3. Wählen Sie Optimierungsoptionen aus.
<a name="w2aac37c11c24c23c11b5c11"></a>

1.  Wählen Sie für **Rückruf im Vergleich zu Präzision** den Optimierungswert aus, um die Transformation so abzustimmen, dass Rückruf oder Präzision bevorzugt werden. Standardmäßig ist **Ausgewogen** ausgewählt. Sie können aber auch Rückruf oder Präzision bevorzugen oder **Benutzerdefiniert** auswählen und einen Wert zwischen 0,0 und 1,0 (einschließlich) eingeben. 

1.  Wählen Sie für **Geringere Kosten im Vergleich zu Genauigkeit** den Optimierungswert aus, um niedrigere Kosten oder Genauigkeit zu begünstigen, oder wählen Sie **Benutzerdefiniert** und geben Sie einen Wert zwischen 0,0 und 1,0 (einschließlich) ein. 

1.  Wählen Sie für **Übereinstimmung erzwingen** die Option **Ausgabe zur Übereinstimmung mit Labels erzwingen**, wenn Sie die ML-Transformation trainieren möchten, indem Sie die Ausgabe dazu erzwingen, mit den verwendeten Labels übereinzustimmen. 

#### Schritt 4. Überprüfen und erstellen
<a name="w2aac37c11c24c23c11b5c13"></a>

1.  Überprüfen Sie die Optionen für die Schritte 1 bis 3. 

1.  Wählen Sie **Bearbeiten** für jeden Schritt, der geändert werden muss. Wählen Sie **Transformation erstellen**, um den Assistenten zum Erstellen einer Transformation abzuschließen. 

### Verwenden von Datenverschlüsselung mit Machine-Learning-Transformationen
<a name="ml_transform_sec_config"></a>

Wenn Sie eine Machine-Learning-Transformation zu AWS Glue hinzufügen, können Sie optional eine Sicherheitskonfiguration angeben, die der Datenquelle oder dem Datenziel zugeordnet ist. Wenn der Amazon-S3-Bucket, der zum Speichern der Daten verwendet wird, mit einer Sicherheitskonfiguration verschlüsselt ist, geben Sie beim Erstellen der Transformation dieselbe Sicherheitskonfiguration an.

Sie können sich auch für die serverseitige Verschlüsselung mit AWS KMS (SSE-KMS) entscheiden, um das Modell und die Beschriftungen zu verschlüsseln, um zu verhindern, dass Unbefugte es überprüfen können. Wenn Sie diese Option wählen, werden Sie aufgefordert, den AWS KMS key Namen auszuwählen, oder Sie können **Enter a key ARN** wählen. Wenn Sie den ARN für den KMS-Schlüssel eingeben, wird ein zweites Feld angezeigt, in dem Sie den KMS-Schlüssel-ARN eingeben können.

**Anmerkung**  
Derzeit werden ML-Transformationen, die einen benutzerdefinierten Verschlüsselungsschlüssel verwenden, in den folgenden Regionen nicht unterstützt:  
Asien-Pazifik (Osaka) – `ap-northeast-3`

## Anzeigen von Transformationsdetails
<a name="console-machine-learning-transforms-details"></a>

### Transformationseigenschaften anzeigen
<a name="console-machine-learning-transforms-details"></a>

Die Seite **Transformationseigenschaften** enthält Attribute Ihrer Transformation. Es zeigt Ihnen die Details zur Transformationsdefinition, einschließlich der folgenden:
+ **Transform name (Name der Transformation)** zeigt den Namen der Transformation an.
+ **Type (Typ)** führt die Art der Transformation auf.
+ **Status** zeigt an, ob die Transformation bereit ist, in einem Skript verwendet zu werden.
+ **Force output to match labels (Ausgabe zwingen, Kennzeichnungen zuzuweisen)** zeigt an, ob die Transformation die Ausgabe zwingt, die vom Benutzer bereitgestellten Kennzeichnungen zuzuweisen.
+ **Spark version (Spark-Version)** bezieht sich auf die AWS Glue-Version, die Sie unter **Task run properties (Eigenschaften für die Ausführung einer Aufgabe)** beim Hinzufügen der Transformation ausgewählt haben. AWS Glue 1.0 und Spark 2.4 wird für die meisten Kunden empfohlen. Weitere Informationen finden Sie unter [AWS Glue-Versionen](https://docs.aws.amazon.com/glue/latest/dg/release-notes.html#release-notes-versions).

### Registerkarten „Verlauf“, „Qualität schätzen“ und „Tags“
<a name="w2aac37c11c24c23c13b5"></a>

 Zu den Transformationsdetails gehören die Informationen, die Sie beim Erstellen der Transformation definiert haben. Um die Details einer Transformation anzuzeigen, wählen Sie die Transformation in der Liste **Machine learning transforms (Machine Learning-Transformationen)** aus und überprüfen Sie die Informationen auf den folgenden Registerkarten: 
+ Verlauf
+ Schätzen der Qualität
+ Tags (Markierungen)

#### Verlauf
<a name="console-machine-learning-transforms-history"></a>

Die Registerkarte **History (Verlauf)** zeigt den Ausführungsverlauf Ihrer Aufgabe an. Mehrere Arten von Aufgaben werden ausgeführt, um eine Transformation zu schulen. Für jede Aufgabe enthalten die Ausführungsmetriken Folgendes:
+ **Run ID (Ausführungs-ID)** ist ein von AWS Glue erstellter Bezeichner für jede Ausführung dieser Aufgabe.
+ **Task-Type (Aufgabentyp)** zeigt die Art der ausgeführten Aufgabe.
+ **Status** zeigt den Erfolg jeder aufgeführten Aufgabe an, wobei die neueste Aufgabe oben aufgeführt wird.
+ **Error** (Fehler) zeigt die Details einer Fehlermeldung an, wenn die Ausführung nicht erfolgreich war.
+ **Start time (Startzeit)** zeigt das Datum und die Uhrzeit (Ortszeit), an denen die Aufgabe gestartet wurde.
+ **Endzeit** zeigt das Datum und die Uhrzeit (Ortszeit), an denen die Aufgabe beendet wurde.
+ **Logs (Protokolle)** verlinkt sich mit den Protokollen, die für diese Auftragsausführung in `stdout` geschrieben wurden.

  Über den Link **Logs** gelangen Sie zu Amazon CloudWatch Logs. Dort können Sie die Details zu den Tabellen, die in der erstellt wurden, AWS Glue Data Catalog und zu allen aufgetretenen Fehlern einsehen. Sie können den Aufbewahrungszeitraum für Ihre Protokolle auf der CloudWatch Konsole verwalten. Der Standardaufbewahrungszeitraum für Protokolle ist `Never Expire`. Weitere Informationen zum Ändern der Aufbewahrungsdauer finden Sie unter [Ändern der Aufbewahrung von Protokolldaten in CloudWatch Protokollen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#SettingLogRetention) im *Amazon CloudWatch Logs-Benutzerhandbuch*.
+ Die **Label-Datei** zeigt einen Link zu Amazon S3 für eine generierte Beschriftungsdatei.

#### Schätzen der Qualität
<a name="console-machine-learning-transforms-metrics"></a>

 Die Registerkarte **Estimate Quality (Qualität schätzen)** zeigt die Metriken, die Sie verwenden, um die Qualität der Transformation zu messen. Schätzungen werden berechnet, indem die Vorhersagen zur Transformationsübereinstimmung anhand einer Teilmenge Ihrer Daten mit den von Ihnen angegebenen Kennzeichnungen verglichen werden. Diese Schätzungen sind ungefähre Angaben. Sie können die Ausführung der Aufgabe **Estimate quality (Qualität schätzen)** aus dieser Registerkarte aufrufen.

Die Registerkarte **Estimate quality (Qualität schätzen)** zeigt die Metriken der letzten Ausführung von **Estimate quality (Qualität schätzen)** mit den folgenden Eigenschaften:
+ **Area under the Precision-Recall curve (Bereich unter der Präzisions-Sensitivitäts-Kurve)** ist eine einzelne Zahl, die die obere Grenze der Gesamtqualität der Transformation schätzt. Sie ist unabhängig von der Wahl für den Präzisions-Sensitivitäts-Parameter. Höhere Werte weisen darauf hin, dass Sie einen attraktiveren Präzisions-Sensitivitäts-Trade-off haben. 
+ **Precision (Präzision)** schätzt, wie oft die Transformation korrekt ist, wenn sie eine Übereinstimmung prognostiziert.
+ **Recall upper limit (Obergrenze der Sensitivität)** schätzt für eine tatsächliche Übereinstimmung, wie oft die Transformation die Übereinstimmung vorhersagt.
+ **F1** gibt eine Schätzung der Genauigkeit der Transformation zwischen 0 und 1 an, wobei 1 die beste Genauigkeit ist. Weitere Informationen finden Sie unter [F1 score](https://en.wikipedia.org/wiki/F1_score) in Wikipedia.
+ In der Tabelle **Column importance (Bedeutung der Spalte)** werden die Spaltennamen und die Bewertung für die Bedeutung jeder Spalte angezeigt. Anhand der Spaltenbedeutung können Sie verstehen, wie Spalten zu Ihrem Modell beitragen, indem Sie ermitteln, welche Spalten in Ihren Datensätzen am häufigsten für den Abgleich verwendet werden. Diese Daten können Sie dazu veranlassen, Ihr Labelset hinzuzufügen oder zu ändern, um die Bedeutung von Spalten zu erhöhen oder zu verringern.

  Die Spalte „Importance (Bedeutung)“ enthält eine numerische Bewertung für jede Spalte, da eine Dezimalzahl nicht größer als 1,0 ist.

Weitere Informationen zum Verständnis der Qualitätsschätzungen im Vergleich zur tatsächlichen Qualität finden Sie unter [Qualitätsschätzungen versus end-to-end (wahre) Qualität](#console-machine-learning-quality-estimates-true-quality).

Weitere Informationen zum Optimieren der Transformation finden Sie unter [Optimieren von Machine Learning-Transformationen in AWS Glue](add-job-machine-learning-transform-tuning.md).

#### Qualitätsschätzungen versus end-to-end (wahre) Qualität
<a name="console-machine-learning-quality-estimates-true-quality"></a>

AWS Glue schätzt die Qualität Ihrer Transformation, indem dem Machine-Learning-Modell eine Reihe von Datensatzpaaren präsentiert werden, für die Sie übereinstimmende Labels angegeben haben, die das Modell bisher jedoch nicht kannte. Diese Qualitätsschätzungen sind eine Qualitätsfunktion des Machine-Learning-Modells (abhängig von der Anzahl der Datensätze, die Sie für das Trainieren der Transformation gekennzeichnet haben). Der end-to-end oder *wahre* Erinnerungswert (der nicht automatisch durch den berechnet wird`ML transform`) wird auch durch den `ML transform` Filtermechanismus beeinflusst, der eine Vielzahl möglicher Übereinstimmungen mit dem maschinell erlernten Modell vorschlägt. 

Sie können diese Filtermethode hauptsächlich durch Angabe des Optimierungswerts **Niedrigere Kostengenauigkeit** optimieren. Wenn sich der Optimierungswert der **Genauigkeit** annähert, führt das System eine gründlichere und aufwändigere Suche nach möglicherweise übereinstimmenden Datensatzpaaren durch. Es werden mehr Datensatzpaare in Ihr maschinell gelerntes Modell `ML transform` eingespeist, und Ihr end-to-end oder Ihr wahrer Erinnerungswert nähert sich der geschätzten Erinnerungsmetrik. Das hat zur Folge, dass Änderungen in der end-to-end Qualität Ihrer Matches aufgrund von Änderungen beim Kompromiss zwischen Kosten und Genauigkeit Ihrer Treffer in der Regel nicht in der Qualitätsschätzung berücksichtigt werden.

#### Tags (Markierungen)
<a name="w2aac37c11c24c23c13b5c13"></a>

 Tags sind Bezeichnungen, die Sie einer Ressource zuweisen können. AWS Jedes Tag besteht aus einem Schlüssel und einem optionalen Wert. Tags können verwendet werden, um Ihre Ressource zu durchsuchen und zu filtern oder Ihre AWS Kosten zu verfolgen. 

## Transformationen mithilfe von Labels beibringen
<a name="console-machine-learning-transforms-teaching-transforms"></a>

 Sie können Ihrer ML-Transformation mithilfe von Beschriftungen (Beispiele) beibringen, indem Sie auf der Detailseite der ML-Transformation die Option **Transformation beibringen** auswählen. Wenn Sie Ihrem Machine-Learning-Algorithmus Beispiele (sogenannte Labels) beibringen, können Sie vorhandene Labels zur Verwendung auswählen oder eine Labeldatei erstellen. 

![\[Der Screenshot zeigt einen Assistenten zum Einlernen der Transformation mithilfe von Labels.\]](http://docs.aws.amazon.com/de_de/glue/latest/dg/images/machine-learning-teach-transform.png)

+  **Beschriftung** – Wenn Sie über Labels verfügen, wählen Sie **Ich habe Labels**. Wenn Sie keine Labels haben, können Sie trotzdem mit dem nächsten Schritt fortfahren, um eine Label-Datei zu generieren. 
+  **Label-Datei generieren** – AWS Glue extrahiert Datensätze aus Ihren Quelldaten und schlägt potenziell passende Datensätze vor. Sie wählen den Amazon-S3-Bucket aus, in dem die generierte Label-Datei gespeichert werden soll. Wählen Sie **Label-Datei generieren**, um den Vorgang zu starten. Wenn Sie fertig sind, wählen Sie **Label-Datei herunterladen**. Die heruntergeladene Datei enthält eine Spalte für Labels, in die Sie die Labels eintragen können. 
+  **Labels aus Amazon S3 hochladen** – Wählen Sie die fertige Label-Datei aus dem Amazon-S3-Bucket aus, in dem die Label-Datei gespeichert ist. Wählen Sie dann aus, ob Sie die Labels an Ihre vorhandenen Labels anfügen oder Ihre vorhandenen Labels überschreiben möchten. Wählen Sie **Label-Datei aus Amazon S3 hochladen** aus. 

# Tutorial: Erstellen einer Transformation für maschinelles Lernen mit AWS Glue
<a name="machine-learning-transform-tutorial"></a>

Dieses Tutorial führt Sie durch die Aktionen zum Erstellen und Verwalten einer Machine Learning(ML)-Transformation mit AWS Glue. Bevor Sie dieses Tutorial verwenden, sollten Sie mit dem Hinzufügen von Crawlern und Aufträgen und dem Bearbeiten von Skripts mithilfe der AWS Glue-Konsole vertraut sein. Sie sollten auch wissen, wie Dateien gesucht und zur Amazon Simple Storage Service (Amazon S3)-Konsole heruntergeladen werden.

In diesem Beispiel erstellen Sie eine `FindMatches`-Transformation zur Suche nach übereinstimmenden Datensätzen, trainieren sie im Identifizieren übereinstimmender und nicht übereinstimmender Datensätze und verwenden sie in einem AWS Glue-Auftrag. Der AWS Glue-Auftrag schreibt eine neue Amazon-S3-Datei mit einer zusätzlichen Spalte mit dem Namen `match_id`. 

Die in diesem Tutorial verwendeten Quelldaten befinden sich in einer Datei mit dem Namen `dblp_acm_records.csv`. Diese Datei ist eine modifizierte Version akademischer Publikationen (DBLP und ACM), die aus dem [DBLP ACM-Originaldatensatz](https://doi.org/10.3886/E100843V2) verfügbar sind. Die Datei `dblp_acm_records.csv` ist eine CSV-Datei (durch Kommas voneinander getrennte Werte) im UTF-8-Format ohne BOM (Byte-Order Mark, Markierung der Byte-Reihenfolge). 

Eine zweite Datei, `dblp_acm_labels.csv`, ist eine Labeling-Beispieldatei mit übereinstimmenden und nicht übereinstimmenden Datensätzen, mit der die Transformation im Rahmen des Tutorials trainiert wird. 

**Topics**
+ [Schritt 1: Crawlen der Quelldaten](#ml-transform-tutorial-crawler)
+ [Schritt 2: Hinzufügen einer Machine Learning-Transformation](#ml-transform-tutorial-create)
+ [Schritt 3: Trainieren Ihrer Machine Learning-Transformation](#ml-transform-tutorial-teach)
+ [Schritt 4: Beurteilen der Qualität Ihrer Machine Learning-Transformation](#ml-transform-tutorial-estimate-quality)
+ [Schritt 5: Hinzufügen und Ausführen eines Auftrags mit Ihrer Machine Learning-Transformation](#ml-transform-tutorial-add-job)
+ [Schritt 6: Überprüfen der Ausgabedaten von Amazon S3](#ml-transform-tutorial-data-output)

## Schritt 1: Crawlen der Quelldaten
<a name="ml-transform-tutorial-crawler"></a>

Durchforsten Sie zunächst die Amazon-S3-CSV-Quelldatei, um eine entsprechende Metadatendatei in Data Catalog zu erstellen.

**Wichtig**  
Um den Crawler dazu anzuweisen, eine Tabelle für ausschließlich die CSV-Datei zu erstellen, speichern Sie die CSV-Quelldaten in einem anderen Amazon-S3-Ordner als andere Dateien.

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die AWS Glue Konsole unter [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/).

1. Wählen Sie im Navigationsbereich **Crawlers (Crawler)** und anschließend **Add crawler (Crawler hinzufügen)** aus. 

1. Befolgen Sie die Anweisungen des Assistenten zum Erstellen und Ausführen eines Crawlers mit dem Namen `demo-crawl-dblp-acm` mit Ausgabe zur Datenbank `demo-db-dblp-acm`. Wenn der Assistent ausgeführt wird, erstellen Sie die Datenbank `demo-db-dblp-acm`, sofern sie noch nicht vorhanden ist. Wählen Sie einen Amazon S3 S3-Include-Pfad für Beispieldaten in der aktuellen AWS Region. Für `us-east-1` lautet der Amazon-S3-Include-Pfad zur Quelldatei beispielsweise `s3://ml-transforms-public-datasets-us-east-1/dblp-acm/records/dblp_acm_records.csv`. 

   Wenn der Crawler erfolgreich ist, erstellt er die Tabelle `dblp_acm_records_csv` mit den folgenden Spalten: id (ID), title (Titel), authors (Autoren), venue (Ort), year (Jahr) und source (Quelle).

## Schritt 2: Hinzufügen einer Machine Learning-Transformation
<a name="ml-transform-tutorial-create"></a>

Fügen Sie als Nächstes eine Machine Learning-Transformation hinzu, die auf dem Schema Ihrer Datenquellentabelle basiert, die von dem Crawler mit dem Namen `demo-crawl-dblp-acm` erstellt wurde.

1. Wählen Sie auf der AWS Glue-Konsole im Navigationsbereich unter **Datenintegration und ETL** die Optionen **Datenklassifizierungstools > Datensatzabgleich** und anschließend **Transformation hinzufügen** aus. Folgen Sie dem Assistenten beim Erstellen einer `Find matches`-Transformation mit den folgenden Eigenschaften. 

   1. Geben Sie für **Transform Name (Transformationsname)** den Namen **demo-xform-dblp-acm** ein. Dies ist der Name der Transformation, der bei der Suche nach Übereinstimmungen in den Quelldaten verwendet wird.

   1. Wählen Sie für **IAM role (IAM-Rolle)** eine IAM-Rolle aus, die zum Zugriff auf die Amazon-S3-Quelldaten, Labeling-Datei und AWS Glue-API-Operationen berechtigt ist. Weitere Informationen finden Sie unter [Erstellen einer IAM-Rolle für AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/create-an-iam-role.html) im *AWS Glue -Entwicklerhandbuch*.

   1. Wählen Sie als **Datenquelle** die Tabelle mit dem Namen **dblp\$1acm\$1records\$1csv** in der Datenbank aus. **demo-db-dblp-acm**

   1. Wählen Sie für **Primary key (Primärschlüssel)** die Primärschlüsselspalte für die Tabelle **id** aus.

1. Wählen Sie im Assistenten **Finish (Fertig stellen)** und kehren Sie zur Liste **ML transforms (ML-Transformationen)** zurück.

## Schritt 3: Trainieren Ihrer Machine Learning-Transformation
<a name="ml-transform-tutorial-teach"></a>

Als Nächstes trainieren Sie Ihre Machine Learning-Transformation bei der Verwendung der Labeling-Beispieldatei des Tutorials.

Eine Machine Language-Transformation kann erst dann in einem ETL-Auftrag (Extract, Transform and Load, Extrahieren, Transformieren und Laden) verwendet werden, wenn ihr Status **Ready for use (Einsatzbereit)** lautet. Sie müssen Ihre Transformation als Vorbereitung anhand von Beispielen übereinstimmender und nicht übereinstimmender Datensätze darin trainieren, wie übereinstimmende und nicht übereinstimmende Datensätze zu identifizieren sind. Zum Trainieren Ihrer Transformation können Sie **Generate a label file (Eine Labling-Datei generieren)** wählen, Labels hinzufügen und danach **Upload label file (Labeling-Datei hochladen)** wählen. In diesem Tutorial verwenden Sie die Beispiel-Labeling-Datei `dblp_acm_labels.csv`. Weitere Informationen über den Labeling-Prozess finden Sie unter [Labeling](machine-learning.md#machine-learning-labeling).

1. Wählen Sie im Navigationsbereich der AWS Glue-Konsole die Option **Datensatzabgleich** aus.

1. Wählen Sie die `demo-xform-dblp-acm`-Transformation aus und klicken Sie dann auf **Action (Aktion)** und **Teach (Trainieren)**. Befolgen Sie die Anweisungen des Assistenten zum Trainieren Ihrer `Find matches`-Transformation. 

1. Wählen Sie auf der Eigenschaftsseite der Transformation **I have labels (Im Besitz von Labels)**. Wählen Sie einen Amazon S3 S3-Pfad zur Musteretikettierungsdatei in der aktuellen AWS Region. Beispiel: Für `us-east-1` laden Sie die bereitgestellte Labeling-Datei aus dem Amazon-S3-Pfad `s3://ml-transforms-public-datasets-us-east-1/dblp-acm/labels/dblp_acm_labels.csv` mit der Option **overwrite (Überschreiben)**, um vorhandene Labels zu überschreiben. Die Labeling-Datei muss sich in Amazon S3 in derselben Region wie die AWS Glue-Konsole befinden.

   Beim Hochladen einer Labeling-Datei wird in AWS Glue eine Aufgabe zum Hinzufügen oder Überschreiben der Labels gestartet, mit der die Transformation bei der Verarbeitung der Datenquelle trainiert wird.

1. Wählen Sie auf der letzten Seite des Assistenten **Finish (Fertig stellen)** und kehren Sie zur Liste **ML transforms (ML-Transformationen)** zurück.

## Schritt 4: Beurteilen der Qualität Ihrer Machine Learning-Transformation
<a name="ml-transform-tutorial-estimate-quality"></a>

Anschließend können Sie die Qualität Ihrer Machine Learning-Transformation beurteilen. Die Qualität hängt vom Ausmaß des bisher von Ihnen vorgenommenen Labeling ab. Weitere Informationen zur Beurteilung der Qualität finden Sie unter [Schätzen der Qualität](console-machine-learning-transforms.md#console-machine-learning-transforms-metrics).

1. Wählen Sie in der AWS Glue-Konsole im Navigationsbereich unter **Datenintegration und ETL** die Optionen **Datenklassifizierungstools > Datensatzabgleich** aus. 

1. Wählen Sie die Transformation `demo-xform-dblp-acm` und danach die Registerkarte **Estimate quality (Qualität beurteilen)** aus. Diese Registerkarte zeigt die aktuellen Qualitätsbeurteilungen für die Transformation an, sofern verfügbar. 

1. Wählen Sie **Estimate quality (Qualität beurteilen)**, um eine Aufgabe zur Beurteilung der Qualität der Transformation zu starten. Die Genauigkeit der Qualitätsbeurteilung basiert auf dem Labeling der Quelldaten.

1. Navigieren Sie zur Registerkarte **History (Verlauf)**. In diesem Bereich werden Aufgabenausführungen für die Transformation aufgelistet, einschließlich der Aufgabe **Estimating quality (Qualitätsbeurteilung)**. Um weitere Einzelheiten zur Ausführung zur erhalten, wählen Sie **Logs (Protokolle)**. Stellen Sie sicher, dass der Status der Ausführung **Succeeded (Erfolgreich)** lautet, wenn sie beendet ist.

## Schritt 5: Hinzufügen und Ausführen eines Auftrags mit Ihrer Machine Learning-Transformation
<a name="ml-transform-tutorial-add-job"></a>

In diesem Schritt verwenden Sie Ihre Machine Learning-Transformation zum Hinzufügen und Ausführen eines Auftrags in AWS Glue. Wenn dier Transformation `demo-xform-dblp-acm` **Ready for use (Betriebsbereit)** ist, können Sie sie in einem ETL-Auftrag verwenden.

1. Wählen Sie im Navigationsbereich der AWS Glue-Konsole die Option **Jobs (Aufträge)** aus.

1. Wählen Sie **Add job (Auftrag hinzufügen)** und befolgen Sie die Schritte im Assistenten zum Erstellen eines ETL-Spark-Auftrags mit einem generierten Skript. Wählen Sie die folgenden Eigenschaftswerte für Ihre Transformation aus:

   1. Wählen Sie unter **Name** den Beispieljob in diesem Tutorial aus **demo-etl-dblp-acm**.

   1. Wählen Sie unter **IAM role (IAM-Rolle)** eine IAM-Rolle mit der Berechtigung für die Amazon-S3-Quelldaten, die Labeling-Datei und AWS Glue-API-Operationen aus. Weitere Informationen finden Sie unter [Erstellen einer IAM-Rolle für AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/create-an-iam-role.html) im *AWS Glue -Entwicklerhandbuch*.

   1. Wählen Sie für **ETL language (ETL-Sprache)** die Option **Scala** aus. Das ist die Programmiersprache im ETL-Skript.

   1. Wählen Sie als **Namen der Skriptdatei **demo-etl-dblp-acm****. Das ist der Dateiname der Scala-Skript (identisch mit dem Auftragsnamen).

   1. Wählen Sie unter **Data source (Datenquelle)** als Quelle **dblp\$1acm\$1records\$1csv** aus. Die von Ihnen ausgewählte Datenquelle muss mit dem Datenquellen-Schema der Machine-Learning-Transformation übereinstimmen.

   1. Wählen Sie unter **Transform type (Transformationstyp)** die Option **Find matching records (Übereinstimmende Datensätze suchen)** aus, um einen Auftrag mit einer Machine Learning-Transformation zu erstellen.

   1. Deaktivieren Sie **Remove duplicate records (Doppelte Datensätze entfernen)**. Doppelte Datensätze sollen nicht entfernt werden, da den geschriebenen Ausgabedatensätzen ein zusätziches `match_id`-Feld hinzugefügt wird. 

   1. Wählen Sie für **Transformieren** die Transformation für maschinelles Lernen aus **demo-xform-dblp-acm**, die für den Job verwendet wird.

   1. Wählen Sie für **Create tables in your data target (Tabellen in Ihren Zieldaten erstellen)** das Erstellen von Tabellen mit den folgenden Eigenschaften:
      + **Data store type (Datenspeichertyp)** — **Amazon S3**
      + **Format** — **CSV**
      + **Compression type (Komprimierungstyp)** — **None**
      + **Zielpfad** — Der Amazon S3 S3-Pfad, in den die Ausgabe des Jobs geschrieben wird (in der aktuellen AWS Konsolenregion)

1. Wählen Sie **Save Job und edit script (Auftrag speichern und Skript bearbeiten)**, um die Skript-Editor-Seite anzuzeigen.

1. Bearbeiten Sie das Skript, um eine Anweisung hinzufügen, die verlasst, dass die Ausgabe zu **Target path (Zielpfad)** in eine einzelne Partitionsdatei geschrieben wird. Fügen Sie diese Anweisung unmittelbar nach der Anweisung ein, mit der die `FindMatches`-Tansformation ausgeführt wird. Die Anweisung gleicht der folgenden.

   ```
   val single_partition = findmatches1.repartition(1) 
   ```

   Sie müssen die Anweisung `.writeDynamicFrame(findmatches1)` so ändern, dass die Ausgabe als `.writeDynamicFrame(single_partion)` geschrieben wird. 

1. Wählen Sie nach dem Bearbeiten des Skripts **Save (Speichern)**. Das geänderte Skript sieht in etwa wie der folgende Code, aber angepasst an Ihre Umgebung, aus.

   ```
   import com.amazonaws.services.glue.GlueContext
   import com.amazonaws.services.glue.errors.CallSite
   import com.amazonaws.services.glue.ml.FindMatches
   import com.amazonaws.services.glue.util.GlueArgParser
   import com.amazonaws.services.glue.util.Job
   import com.amazonaws.services.glue.util.JsonOptions
   import org.apache.spark.SparkContext
   import scala.collection.JavaConverters._
   
   object GlueApp {
     def main(sysArgs: Array[String]) {
       val spark: SparkContext = new SparkContext()
       val glueContext: GlueContext = new GlueContext(spark)
       // @params: [JOB_NAME]
       val args = GlueArgParser.getResolvedOptions(sysArgs, Seq("JOB_NAME").toArray)
       Job.init(args("JOB_NAME"), glueContext, args.asJava)
       // @type: DataSource
       // @args: [database = "demo-db-dblp-acm", table_name = "dblp_acm_records_csv", transformation_ctx = "datasource0"]
       // @return: datasource0
       // @inputs: []
       val datasource0 = glueContext.getCatalogSource(database = "demo-db-dblp-acm", tableName = "dblp_acm_records_csv", redshiftTmpDir = "", transformationContext = "datasource0").getDynamicFrame()
       // @type: FindMatches
       // @args: [transformId = "tfm-123456789012", emitFusion = false, survivorComparisonField = "<primary_id>", transformation_ctx = "findmatches1"]
       // @return: findmatches1
       // @inputs: [frame = datasource0]
       val findmatches1 = FindMatches.apply(frame = datasource0, transformId = "tfm-123456789012", transformationContext = "findmatches1", computeMatchConfidenceScores = true)
     
     
       // Repartition the previous DynamicFrame into a single partition. 
       val single_partition = findmatches1.repartition(1)    
    
       
       // @type: DataSink
       // @args: [connection_type = "s3", connection_options = {"path": "s3://aws-glue-ml-transforms-data/sal"}, format = "csv", transformation_ctx = "datasink2"]
       // @return: datasink2
       // @inputs: [frame = findmatches1]
       val datasink2 = glueContext.getSinkWithFormat(connectionType = "s3", options = JsonOptions("""{"path": "s3://aws-glue-ml-transforms-data/sal"}"""), transformationContext = "datasink2", format = "csv").writeDynamicFrame(single_partition)
       Job.commit()
     }
   }
   ```

1. Wählen Sie **Run job (Auftrag ausführen)**, um die Auftragsausführung zu starten. Überprüfen Sie den Status des Auftrags in der Auftragsliste. Wenn der Auftrag abgeschlossen ist, wurde die Registerkarte **ML transform (ML-Transformation)**, **History (Verlauf)** um eine neue**Run ID (Ausführungs-ID)**-Zeile vom Typ **ETL job (ETL-Auftrag)** erweitert.

1. Navigieren Sie zur Registerkarte **Jobs (Aufträge)**, **History (Verlauf)**. In diesem Bereich werden Auftragsausführungen aufgelistet. Um weitere Einzelheiten zur Ausführung zur erhalten, wählen Sie **Logs (Protokolle)**. Stellen Sie sicher, dass der Status der Ausführung **Succeeded (Erfolgreich)** lautet, wenn sie beendet ist.

## Schritt 6: Überprüfen der Ausgabedaten von Amazon S3
<a name="ml-transform-tutorial-data-output"></a>

In diesem Schritt überprüfen Sie die Ausgabe der Auftragsausführung in dem Amazon-S3-Bucket, den Sie beim Hinzufügen des Auftrags ausgewählt haben. Sie können die Ausgabedatei auf Ihren lokalen Computer herunterladen und überprüfen, ob übereinstimmende Datensätze identifiziert wurden.

1. Öffnen Sie die Amazon S3 S3-Konsole unter [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Laden Sie die Ziel-Ausgabedatei des Auftrags `demo-etl-dblp-acm` herunter. Öffnen Sie die Datei in einer Tabellenkalkulationsanwendung (Sie müssen möglicherweise die Dateierweiterung `.csv` anhängen, damit die Datei ordnunsgemäß geöffnet wird).

   Die folgende Abbildung zeigt einen Ausschnitt der Ausgabe in Microsoft Excel.  
![\[Excel-Tabelle mit der Ausgabe der Transformation.\]](http://docs.aws.amazon.com/de_de/glue/latest/dg/images/demo_output_dblp_acm.png)

   Die Datenquelle und die Zieldatei besitzen beide 4 911 Datensätze. Die Transformation `Find matches` fügt jedoch eine weitere Spalte mit dem Namen `match_id` zur Identifizierung übereinstimmender Datensätze in der Ausgabe hinzu. Zeilen mit derselben `match_id` werden als übereinstimmende Datensätze angesehen. Der `match_confidence_score` ist eine Zahl zwischen 0 und 1, die eine Schätzung der Qualität der von `Find matches` gefundenen Übereinstimmungen liefert.

1. Sortieren Sie die Ausgabedatei nach `match_id`, damit übereinstimmende Datensätze leicht ersichtlich sind. Vergleichen Sie die Werte in den anderen Spalten, um festzustellen, ob Sie den Ergebnissen der Transformation `Find matches` zustimmen. Wenn dies nicht der Fall ist, können Sie die Transformation durch Hinzufügen weiterer Labels weiter trainieren. 

   Sie können die Datei auch nach einem anderen Feld, z  B. `title`, sortieren, um festzustellen, ob Datensätze mit ähnlichen Titeln dieselbe `match_id` besitzen. 

# Inkrementelle Übereinstimmungen finden
<a name="machine-learning-incremental-matches"></a>

Mithilfe dem Feature „FindMatches“ können Sie doppelte oder übereinstimmende Datensätze in Ihrem Dataset identifizieren, auch wenn die Datensätze nicht über eine gemeinsame eindeutige Kennung verfügen und keine Felder exakt übereinstimmen. Die erste Version der Suchübereinstimmungen transformiert übereinstimmende Datensätze innerhalb eines einzelnen Datensatzes. Wenn Sie dem Datensatz neue Daten hinzufügen, mussten Sie sie mit dem vorhandenen sauberen Datensatz zusammenführen und die Übereinstimmung mit dem vollständig zusammengeführten Datensatz erneut ausführen.

Mit dem Feature zur inkrementellen Übereinstimmung können inkrementelle Datensätze leichter mit vorhandenen übereinstimmenden Datensätzen abgeglichen werden. Angenommen, Sie möchten potenzielle Daten mit vorhandenen Kundendatensätzen abgleichen. Die Fähigkeit zur inkrementellen Übereinstimmung bietet Ihnen die Flexibilität, Hunderttausende neuer Interessenten mit einer bestehenden Datenbank von Interessenten und Kunden abzugleichen, indem Sie die Ergebnisse in einer einzigen Datenbank oder Tabelle zusammenführen. Durch den Abgleich nur zwischen den neuen und den vorhandenen Datensätzen reduziert die Optimierung der Suche nach inkrementellen Übereinstimmungen die Berechnungszeit, was auch die Kosten senkt.

Die Verwendung der inkrementellen Übereinstimmung ähnelt „Find Matches“, wie unter [Tutorial: Erstellen einer Transformation für maschinelles Lernen mit AWS Glue](machine-learning-transform-tutorial.md) beschrieben. In diesem Thema werden nur die Unterschiede bei der inkrementellen Übereinstimmung identifiziert.

Weitere Informationen finden Sie im Blog-Beitrag zu [Inkrementelle Datenübereinstimmung](https://aws.amazon.com/blogs/big-data/incremental-data-matching-using-aws-lake-formation/).

## Ausführen eines Auftrags zu inkrementellen Übereinstimmungen
<a name="machine-learning-incremental-matches-add"></a>

Nehmen wir Folgendes an: 
+ Sie haben den vorhandenen Datensatz in die Tabelle *first\$1records* gecrawlt. Der Datensatz *first\$1records* muss ein übereinstimmender Datensatz oder die Ausgabe des übereinstimmenden Auftrags sein.
+ Sie haben eine Transformation zum Finden von Übereinstimmungen erstellt und mit AWS Glue-Version 2.0 trainiert. Dies ist die einzige Version von AWS Glue, die inkrementelle Übereinstimmungen unterstützt.
+ Die ETL-Sprache ist Scala. Python wird ebenfalls unterstützt.
+ Das bereits generierte Modell heißt `demo-xform`.

1. Crawlen Sie den inkrementellen Datensatz in die Tabelle *second\$1records*.

1. Wählen Sie im Navigationsbereich der AWS Glue-Konsole die Option **Jobs (Aufträge)** aus.

1. Wählen Sie **Add job (Auftrag hinzufügen)** und befolgen Sie die Schritte im Assistenten zum Erstellen eines ETL-Spark-Auftrags mit einem generierten Skript. Wählen Sie die folgenden Eigenschaftswerte für Ihre Transformation aus:

   1. Für **Name** wählen Sie **demo-etl** aus.

   1. Wählen Sie unter **IAM role (IAM-Rolle)** eine IAM-Rolle mit der Berechtigung für die Amazon-S3-Quelldaten, die Labeling-Datei und [AWS Glue-API-Operationen](https://docs.aws.amazon.com/glue/latest/dg/create-an-iam-role.html) aus.

   1. Wählen Sie für **ETL language (ETL-Sprache)** die Option **Scala** aus.

   1. Wählen Sie unter **Script file name (Skript-Dateiname)** als Namen **demo-etl** aus. Dies ist der Dateiname des Scala-Skripts.

   1. Für **Datenquelle** wählen Sie **first\$1records** aus. Die von Ihnen ausgewählte Datenquelle muss mit dem Datenquellen-Schema der Machine-Learning-Transformation übereinstimmen.

   1. Wählen Sie unter **Transform type (Transformationstyp)** die Option **Find matching records (Übereinstimmende Datensätze suchen)** aus, um einen Auftrag mit einer Machine Learning-Transformation zu erstellen.

   1. Wählen Sie die Option für den inkrementellen Abgleich und für **Datenquelle** die Tabelle mit dem Namen **second\$1records** aus.

   1. Wählen Sie unter **Transform (Transformation)** die von diesem Auftrag verwendete Machine Learning-Transformation **demo-xform** aus.

   1. Klicken Sie auf **Erstellen von Tabellen in Ihrem Datenziel** oder **Verwenden von Tabellen im Data Catalog und Aktualisieren Ihres Datenziels**.

1. Wählen Sie **Save Job und edit script (Auftrag speichern und Skript bearbeiten)**, um die Skript-Editor-Seite anzuzeigen.

1. Wählen Sie **Run job (Auftrag ausführen)**, um die Auftragsausführung zu starten.

# Verwendung FindMatches in einem visuellen Job
<a name="find-matches-visual-job"></a>

 Um die **FindMatches**Transformation in zu verwendenAWS Glue Studio, können Sie den **Custom Transform-Knoten** verwenden, der die FindMatches API aufruft. Weitere Informationen zur Verwendung einer benutzerdefinierten Transformation finden Sie unter [Erstellen einer benutzerdefinierten Transformation](https://docs.aws.amazon.com/glue/latest/ug/transforms-custom.html) 

**Anmerkung**  
 Derzeit funktioniert die FindMatches API nur mit`Glue 2.0`. Um einen Job mit der benutzerdefinierten Transformation auszuführen, die die FindMatches API aufruft, stellen Sie sicher, dass sich die AWS Glue Version auf `Glue 2.0` der Registerkarte **Jobdetails** befindet. Wenn die Version von nicht vorhanden AWS Glue ist`Glue 2.0`, schlägt der Job zur Laufzeit fehl und es wird die folgende Fehlermeldung angezeigt: „Der Name '' kann nicht aus 'FindMatchesawsglueml.transforms' importiert werden“. 

## Voraussetzungen
<a name="adding-find-matches-to-a-visual-job-prerequisites"></a>
+  Um die Transformation **Übereinstimmungen suchen** zu verwenden, öffnen Sie die AWS Glue Studio-Konsole unter [https://console.aws.amazon.com/gluestudio/](https://console.aws.amazon.com/gluestudio/). 
+  Erstellen Sie eine Machine-Learning-Transformation. Beim Erstellen wird eine transformId generiert. Sie benötigen diese ID für die folgenden Schritte. Weitere Informationen darüber, wie Sie eine Machine Learning-Transformation erstellen, finden Sie unter [Hinzufügen und Bearbeiten von Machine-Learning-Transformationen](https://docs.aws.amazon.com/glue/latest/dg/console-machine-learning-transforms.html#console-machine-learning-transforms-actions). 

## Eine Transformation wird hinzugefügt FindMatches
<a name="adding-find-matches-to-a-visual-job"></a>

**Um eine FindMatches Transformation hinzuzufügen:**

1.  Öffnen Sie im AWS Glue Studio-Auftrags-Editor das Bedienfeld Ressourcen, indem Sie auf das Kreuzsymbol in der oberen linken Ecke des visuellen Auftragsdiagramms klicken, und wählen Sie eine Datenquelle aus, indem Sie die **Registerkarte Daten** wählen. Dies ist die Datenquelle, die Sie auf Übereinstimmungen überprüfen möchten.   
![\[Der Screenshot zeigt ein Kreuzsymbol innerhalb eines Kreises. Wenn Sie im visuellen Auftrag-Editor darauf klicken, öffnet sich das Bedienfeld Ressourcen.\]](http://docs.aws.amazon.com/de_de/glue/latest/dg/images/resource-panel-blank-canvas.png)

1.  Wählen Sie den Knoten Datenquelle, öffnen Sie das Bedienfeld Ressourcen, indem Sie auf das Kreuzsymbol in der oberen linken Ecke des visuellen Auftragsdiagramms klicken, und suchen Sie nach „benutzerdefinierte Transformation“. Wählen Sie den Knoten **Benutzerdefinierte Transformation**, um ihn dem Diagramm hinzuzufügen. Die **Benutzerdefinierte Transformation** ist mit dem Datenquellenknoten verknüpft. Ist dies nicht der Fall, können Sie auf den Knoten **Benutzerdefinierte Transformation** klicken und die Registerkarte **Knoteneigenschaften** auswählen. Wählen Sie dann unter **Übergeordnete Knoten** die Datenquelle aus. 

1.  Klicken Sie im visuellen Diagramm auf den Knoten **Benutzerdefinierte Transformation**, wählen Sie dann die Registerkarte **Knoteneigenschaften** aus und benennen Sie die benutzerdefinierte Transformation. Es wird empfohlen, die Transformation umzubenennen, damit der Name der Transformation im visuellen Diagramm leicht erkennbar ist. 

1.  Wählen Sie die Registerkarte **Transformation**, auf der Sie den Code-Block bearbeiten können. Hier kann der Code zum Aufrufen der FindMatches API hinzugefügt werden.   
![\[Der Screenshot zeigt den Codeblock auf der Registerkarte Transformation, wenn der Knoten Benutzerdefinierte Transformation ausgewählt ist.\]](http://docs.aws.amazon.com/de_de/glue/latest/dg/images/custom-transform-code-block.png)

    Der Code-Block enthält vorab ausgefüllten Code, um Ihnen den Einstieg zu erleichtern. Überschreiben Sie den vorab ausgefüllten Code mit der folgenden Vorlage. Die Vorlage verfügt über einen Platzhalter für die **transformId**, den Sie bereitstellen können. 

   ```
   def MyTransform (glueContext, dfc) -> DynamicFrameCollection:
       dynf = dfc.select(list(dfc.keys())[0])
       from awsglueml.transforms import FindMatches
       findmatches = FindMatches.apply(frame = dynf, transformId = "<your id>")
       return(DynamicFrameCollection({"FindMatches": findmatches}, glueContext))
   ```

1.  Klicken Sie im visuellen Diagramm auf den Knoten **Benutzerdefinierte Transformation** und öffnen Sie das Bedienfeld Ressourcen, indem Sie auf das Kreuzsymbol in der oberen linken Ecke des visuellen Auftragsdiagramms klicken und nach „Aus Sammlung auswählen“ suchen. Die Standardauswahl muss nicht geändert werden, da es DynamicFrame in der Sammlung nur eine gibt. 

1.  Sie können weitere Transformationen hinzufügen oder das Ergebnis speichern, das nun um die zusätzlichen Spalten zum Suchen nach Übereinstimmungen erweitert wird. Wenn Sie diese neuen Spalten in nachgelagerten Transformationen referenzieren möchten, müssen Sie sie dem Ausgabeschema der Transformation hinzufügen. Am einfachsten geht das, indem Sie die Registerkarte **Datenvorschau** auswählen und dann auf der Registerkarte Schema die Option „Schema zu Datenvorschau verwenden“ auswählen. 

1.  Zur Anpassung können Sie zusätzliche Parameter hinzufügen FindMatches, die an die Methode „Anwenden“ übergeben werden. Siehe [FindMatches Klasse](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-pyspark-transforms-findmatches.html). 

## Eine FindMatches inkrementelle Transformation hinzufügen
<a name="find-matches-incrementally-visual-job"></a>

 Bei inkrementellen Übereinstimmungen entspricht der Vorgang dem **Hinzufügen einer FindMatches Transformation** mit den folgenden Unterschieden: 
+  Anstelle eines übergeordneten Knotens für die benutzerdefinierte Transformation benötigen Sie zwei übergeordnete Knoten. 
+  Der erste übergeordnete Knoten sollte der Datensatz sein. 
+  Der zweite übergeordnete Knoten sollte der inkrementelle Datensatz sein. 

   Ersetzen Sie im Vorlagen-Codeblock die `transformId` durch Ihre `transformId`: 

  ```
  def MyTransform (glueContext, dfc) -> DynamicFrameCollection:
      dfs = list(dfc.values())
      dynf = dfs[0]
      inc_dynf = dfs[1]
      from awsglueml.transforms import FindIncrementalMatches
      findmatches = FindIncrementalMatches.apply(existingFrame = dynf, incrementalFrame = inc_dynf,
                                      transformId = "<your id>")
      return(DynamicFrameCollection({"FindMatches": findmatches}, glueContext))
  ```
+  Optionale Parameter finden Sie unter [FindIncrementalMatches Klasse](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-crawler-pyspark-transforms-findincrementalmatches.html). 