

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.

# 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. 