{"id":2519,"date":"2021-01-22T00:00:25","date_gmt":"2021-01-21T23:00:25","guid":{"rendered":"https:\/\/devstage.bix-consulting.com\/?p=2519"},"modified":"2023-05-24T09:42:58","modified_gmt":"2023-05-24T07:42:58","slug":"erstellung-und-verwendung-von-autoencodern-mit-der-sap-pal","status":"publish","type":"post","link":"https:\/\/www.bix-consulting.com\/en\/erstellung-und-verwendung-von-autoencodern-mit-der-sap-pal\/","title":{"rendered":"Creation and use of autoencoders with SAP PAL"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8220;1&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p>Datens\u00e4tze, die im Machine Learning (ML) verwendet werden sollen, sind in der Praxis meist unverarbeitet und immens gro\u00df. Die meisten ML-Algorithmen ben\u00f6tigen die Eingangsdaten in einer spezifischen Form, die durch Datenvorverarbeitung bereitgestellt wird. Selbst dann ist das vorliegende Datenmodell meist jedoch sehr komplex.<\/p>\n<p>Ein weiteres Problem bei Datens\u00e4tzen kann die fehlende Balance zwischen Klassen sein. Bei einem Klassifizierungsvorhaben wird dem jeweiligen ML-Algorithmus ein Datensatz zugef\u00fchrt, der neben regul\u00e4ren Attributen und einem Index auch ein Klassenattribut besitzt. So zum Beispiel bei einer Kundenabwanderungsanalyse. Hier sind alle Tupel mit einem Wert versehen, ob der jeweilige Kunde abgesprungen ist oder nicht, das Klassenattribut. Ist der Datensatz f\u00fcr die Kundenabwanderungsanalyse nun aber nicht balanciert und springen z.B. nur 20% der Kunden ab, kann das mit dem verwendeten ML-Algorithmus zu Ungenauigkeiten im resultierenden Modell f\u00fchren. Um gleichzeitig den Problemen der hohen Komplexit\u00e4t von Datens\u00e4tzen und der fehlenden Balance entgegenzuwirken, k\u00f6nnen mithilfe der SAP Predictive Analysis Library (PAL) Autoencoder erstellt werden.<\/p>\n<p>Bei einem Autoencoder handelt es sich um ein k\u00fcnstlich neuronales Netzwerk (KNN). Wie in Abbildung 1 gezeigt, besteht ein Autoencoder aus f\u00fcnf elementaren Bestandteilen. Die Originaldaten, den Encoder, die reduzierten Daten, den Decoder und die r\u00fcckentwickelten Originaldaten. Anders als bei herk\u00f6mmlichen KNNs ist das Ziel nicht die letzte Schicht des Netzwerks, sondern die mittlere Schicht. Bei dem Training des Autoencoders werden die Originaldaten, sowohl als Eingabe der ersten Schicht, als auch als Ziel f\u00fcr die letzte Schicht verwendet. In den verbleibenden Schichten werden die Daten reduziert, komprimiert und anschlie\u00dfend wieder bestm\u00f6glich zur\u00fcckgebildet. In der mittleren Schicht des KNNs liegt also eine reduzierte Form der Originaldaten mit weniger Dimensionen vor. In der Regel werden Autoencoder f\u00fcr Anomalie-Analysen und Noise-Reduction (Filterung von St\u00f6rwerten\/-elementen) verwendet. (<span style=\"color: #000000;\"><a href=\"https:\/\/towardsdatascience.com\/auto-encoder-what-is-it-and-what-is-it-used-for-part-1-3e5c6f017726\" style=\"color: #000000;\" target=\"_blank\" rel=\"noopener\"><span style=\"color: #ff9900;\">https:\/\/towardsdatascience.com\/auto-encoder-what-is-it-and-what-is-it-used-for-part-1-3e5c6f017726<\/span>)<\/a><\/span><\/p>\n<p>[\/et_pb_text][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2021\/01\/Abbildung-1.png&#8220; title_text=&#8220;Abbildung 1&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; text_font_size=&#8220;12px&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #808080;\">Abbildung 1: Bestandteile eines Autoencoders<\/span><\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p>In dem von uns bearbeiteten Szenario wurde ein Datensatz zur Kundenabwanderungsanalyse verwendet. Zusammen mit dem Index und dem Klassenattribut hat der Datensatz 21 Attribute, wie Geschlecht, Dauer des Kundenverh\u00e4ltnisses, monatliche Kosten, etc. Bevor der Datensatz durch die SAP PAL verarbeitet wurde, wurden die Attributauspr\u00e4gungen skaliert. So wurden alle Attribute zwischen 0,3 und 0,7 skaliert, au\u00dfer das Klassenattribut, welches zwischen 0 und 1 skaliert wurde, um einen Fokus auf dieses Attribut zu legen. Daraufhin wurde mit der SAP PAL ein KNN auf Basis des Datensatzes erstellt. F\u00fcr die Erstellung eines solchen Netzwerkes sind lediglich die Eingabedaten, eine Parameter-Tabelle und eine leere Tabelle f\u00fcr das resultierende Modell notwendig. Das KNN wird dann von der SAP PAL im json-Format in der Modell-Tabelle gespeichert, aufgeteilt auf mehrere Zeilen mit je 5000 Zeichen. Anschlie\u00dfend wurde die Modell-Tabelle exportiert und mit einfach Mitteln in Python zerlegt, um als separate Modell-Tabellen f\u00fcr den Encoder und den Decoder zur\u00fcck in die HANA-Datenbank importiert werden zu k\u00f6nnen. Dieser Schritt kann nach Bedarf jedoch auch mithilfe von SQL ohne Export im System selbst durchgef\u00fchrt werden. Durch Verwendung der PREDICT-Prozedur der SAP PAL konnten die beiden Modelle verwendet werden. Auf diese Weise konnte das 19-dimensionale Datenmodell (21 abz\u00fcglich Index und Klassenattribut) zu einem zwei-dimensionalen Datensatz mithilfe des Encoders umgewandelt werden.<\/p>\n<p>Abbildung 2 zeigt den verwendeten Datensatz in codierter Form. Zus\u00e4tzlich wird auch ein Nutzen des Autoencoders dargestellt. Aus dem Datensatz wurde ein zuf\u00e4lliges Tupel ausgew\u00e4hlt und eine Merkmalsauspr\u00e4gung auf 13 (was weit \u00fcber dem skalierten Maximum 0,7 liegt) gesetzt, was ganz klar einen Ausrei\u00dfer, eine Anomalie, darstellt. Mithilfe der PREDICT-Prozedur konnten die zwei-dimensionalen Auspr\u00e4gungen f\u00fcr dieses Tupel berechnet werden. Es sticht deutlich unter den restlichen Datenpunkten heraus.<\/p>\n<p>Ein weiterer Nutzen des Autoencoders wird ebenfalls in Abbildung 2 deutlich. Den verwendeten Datensatz um mehr Tupel zu erweitern, ist in der zwei-dimensionalen Darstellung kein Problem. Werden Tupel der Klasse der abwandernden Kunden ben\u00f6tigt, k\u00f6nnen diese einfach in dem korrespondierenden Cluster hinzugef\u00fcgt werden. Das ist in diesem Fall besonders einfach, weil bei der vorangegangenen Skalierung ein Fokus auf das Klassenattribut gelegt wurde und die Tupel auf diese Weise automatisch vom KNN stark danach sortiert wurden. Wurden neue Tupel nach Belieben hinzugef\u00fcgt, k\u00f6nnen die Tupel mit dem Decoder wieder zur\u00fcck in die urspr\u00fcnglichen Dimensionen \u00fcbersetzt werden.<\/p>\n<p>[\/et_pb_text][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2021\/01\/Abbildung-2.png&#8220; title_text=&#8220;Abbildung 2&#8243; _builder_version=&#8220;4.19.5&#8243; _module_preset=&#8220;default&#8220; hover_enabled=&#8220;0&#8243; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220; alt=&#8220;Churn, Tupel&#8220; sticky_enabled=&#8220;0&#8243;][\/et_pb_image][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; text_font_size=&#8220;12px&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p><span style=\"color: #808080;\">Abbildung 2: Darstellung des codierten Datensatzes<\/span><\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p><strong><\/strong><\/p>\n<p><strong>Fazit<\/strong><\/p>\n<p>Autoencoder lassen sich zu verschiedenen Zwecken einsetzen und sind mit der SAP PAL problemlos zu erstellen. Die Aufteilung des von der SAP PAL erstellten Modells in Encoder und Decoder kann je nach Umsetzung aufwendig sein, kann jedoch durch geeignete SQL-Prozeduren als ein Einmal-Aufwand abgewickelt werden. Bei der Anomalie-Analyse ist besonders herauszustellen, wie visuell die Analyse betrieben werden kann, da eine zwei-dimensionale Darstellung von codierten Daten leicht umzusetzen ist. In dem von uns praktisch umgesetzten Szenario konnte der verwendete Datensatz in zwei-dimensionaler Form um Tupel einer bestimmten Klasse (abspringende Kunden) erg\u00e4nzt werden. Nach der Umwandlung mit dem Decoder hatte der erweiterte Datensatz daraufhin deutlich verbesserte Ergebnisse bei dem verwendeten ML-Algorithmus zur Kundenabwanderungsanalyse hervorgebracht. Die hinzugef\u00fcgten Tupel, haben au\u00dferdem den bereits existierenden Tupeln stark ge\u00e4hnelt, wodurch der Datensatz durch generierte Tupel nicht zu stark verf\u00e4lscht wurde.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_column type=&#8220;4_4&#8243; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; text_font=&#8220;Roboto|300|||||||&#8220; text_font_size=&#8220;30px&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<p style=\"text-align: center;\"><span style=\"color: #000000;\">Ansprechpartner<\/span><\/p>\n<p>[\/et_pb_text][et_pb_image src=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2020\/08\/Oliver-Ossenbrink-e1598705178874.png&#8220; align=&#8220;center&#8220; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; transform_translate=&#8220;-4px|22px&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][\/et_pb_image][et_pb_text _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; text_font=&#8220;Roboto|300|||||||&#8220; text_font_size=&#8220;16px&#8220; transform_translate=&#8220;-3px|30px&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;]<\/p>\n<div class=\"elementor-element elementor-element-d95ca40 elementor-widget elementor-widget-heading\" data-id=\"d95ca40\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n<div class=\"elementor-widget-container\">\n<h3 class=\"elementor-heading-title elementor-size-default\" style=\"text-align: center;\">Oliver Ossenbrink<\/h3>\n<\/div>\n<\/div>\n<div class=\"elementor-element elementor-element-c4afb6c elementor-widget elementor-widget-heading\" data-id=\"c4afb6c\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n<div class=\"elementor-widget-container\">\n<p class=\"elementor-heading-title elementor-size-default\" style=\"text-align: center;\">Gesch\u00e4ftsf\u00fchrung Vertrieb und HR<\/p>\n<\/div>\n<\/div>\n<p>[\/et_pb_text][et_pb_social_media_follow _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; transform_scale_linked=&#8220;off&#8220; transform_translate=&#8220;0px|35px&#8220; transform_translate_linked=&#8220;off&#8220; text_orientation=&#8220;center&#8220; locked=&#8220;off&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220;][et_pb_social_media_follow_network url=&#8220;mailto:oliver.ossenbrink@bix-consulting.de?cc=vertrieb@bix-consulting.de&#8220; _builder_version=&#8220;4.16&#8243; _module_preset=&#8220;default&#8220; background_image=&#8220;https:\/\/www.bix-consulting.com\/wp-content\/uploads\/2020\/08\/E-Mail.png&#8220; background_enable_image=&#8220;on&#8220; background_size=&#8220;contain&#8220; global_colors_info=&#8220;{}&#8220; theme_builder_area=&#8220;post_content&#8220; follow_button=&#8220;off&#8220; url_new_window=&#8220;on&#8220;][\/et_pb_social_media_follow_network][\/et_pb_social_media_follow][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Datens\u00e4tze, die im Machine Learning (ML) verwendet werden sollen, sind in der Praxis meist unverarbeitet und immens gro\u00df. Die meisten ML-Algorithmen ben\u00f6tigen die Eingangsdaten in einer spezifischen Form, die durch Datenvorverarbeitung bereitgestellt wird. Selbst dann ist das vorliegende Datenmodell meist jedoch sehr komplex. Ein weiteres Problem bei Datens\u00e4tzen kann die fehlende Balance zwischen Klassen sein. [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":2526,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","_lmt_disableupdate":"","_lmt_disable":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"iawp_total_views":7,"footnotes":""},"categories":[18],"tags":[136,138,43,39,26,45,29,31,139,48,34,40,137,134,141,132,38,27,44,41,50,140,42,133,49,46,47,135],"class_list":["post-2519","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-autoencoder","tag-automatisch","tag-beratung","tag-big-data","tag-bix","tag-bix-beratung","tag-bix-consulting","tag-bix-sap","tag-code","tag-consulting","tag-data","tag-data-science","tag-encoder","tag-erstellung","tag-erstellung-encoder","tag-pal","tag-ratingen","tag-sap","tag-sap-beratung","tag-sap-bw","tag-sap-consulting","tag-sap-encoder","tag-sap-hana","tag-sap-pal","tag-sap-solutions","tag-service","tag-solution","tag-verwendung"],"modified_by":"admin","_links":{"self":[{"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/posts\/2519","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/comments?post=2519"}],"version-history":[{"count":0,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/posts\/2519\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/media\/2526"}],"wp:attachment":[{"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/media?parent=2519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/categories?post=2519"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bix-consulting.com\/en\/wp-json\/wp\/v2\/tags?post=2519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}