{"id":192965,"date":"2024-03-05T10:31:19","date_gmt":"2024-03-05T09:31:19","guid":{"rendered":"https:\/\/liora.io\/de\/?p=192965"},"modified":"2026-02-06T05:59:44","modified_gmt":"2026-02-06T04:59:44","slug":"missingno-die-beste-bibliothek-um-deine-fehlenden-daten-zu-visualisieren","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/missingno-die-beste-bibliothek-um-deine-fehlenden-daten-zu-visualisieren","title":{"rendered":"Missingno: Die beste Bibliothek, um deine fehlenden Daten zu visualisieren!"},"content":{"rendered":"<style>\n.elementor-heading-title{padding:0;margin:0;line-height:1}.elementor-widget-heading .elementor-heading-title[class*=elementor-size-]>a{color:inherit;font-size:inherit;line-height:inherit}.elementor-widget-heading .elementor-heading-title.elementor-size-small{font-size:15px}.elementor-widget-heading .elementor-heading-title.elementor-size-medium{font-size:19px}.elementor-widget-heading .elementor-heading-title.elementor-size-large{font-size:29px}.elementor-widget-heading .elementor-heading-title.elementor-size-xl{font-size:39px}.elementor-widget-heading .elementor-heading-title.elementor-size-xxl{font-size:59px}<\/style><p><strong>Einer der wichtigsten Schritte in einem Data-Science-Projekt, bevor wir mit dem Entwurf der Machine-Learning-Modelle beginnen, ist die Bereinigung unseres Datensatzes. Dies beinhaltet das Entfernen von Duplikaten, das Kodieren bestimmter Variablen, aber vor allem das Ersetzen fehlender Werte.<\/strong><\/p>\t\t\n\t\t<p>Es ist nicht ungew\u00f6hnlich, dass der <a href=\"https:\/\/liora.io\/de\/dataset-definition\">Datensatz, mit dem wir arbeiten<\/a>, <strong>nicht vollst\u00e4ndig ist und fehlende Werte enth\u00e4lt,<\/strong> die als &#8222;NaN&#8220; bezeichnet werden. Wenn diese Werte nicht entfernt oder durch verschiedene Techniken ersetzt werden, k\u00f6nnen sie die Leistung unserer Modelle beeintr\u00e4chtigen.<\/p>\t\t\n\t\t\t<h3>Hier kommt Missingno ins Spiel!<\/h3>\t\t\n\t\t<p><strong>Missingno<\/strong> ist nicht nur nach einem ber\u00fchmten Pok\u00e9mon-Bug benannt, sondern auch eine <a href=\"https:\/\/liora.io\/de\/imbalanced-learn-alles-ueber-die-python-bibliothek-zur-reequilibrierung-von-ml-datasets\">Python-Bibliothek<\/a> f\u00fcr &#8222;missing data visualization&#8220;, mit der du die fehlenden Werte in deinem Datensatz besser verstehen und analysieren kannst! Diese von Aleksey &#8222;ResidentMario&#8220; Bilogur entwickelte Bibliothek ist frei zug\u00e4nglich auf seinem<a href=\"https:\/\/liora.io\/de\/github-repository-das-muss-fuer-programmierer\"> Github-Repository<\/a> und ist nat\u00fcrlich mit dem <a href=\"https:\/\/liora.io\/de\/pandas-read_sql-sql-sprache-mit-dieser-bibliothek-lesen\">Pandas-Modul kompatibel.<\/a><\/p><p>Wie alle Bibliotheken wird auch Missingno mit dem Befehl pip install missingo installiert und dann mit import missingo as msno in ein <a href=\"https:\/\/liora.io\/de\/data-cleaning-python-programmierung-teil-3\">Python-Programm importiert.<\/a><\/p><p>Sehen wir uns die vier Arten von Visualisierungen an, die mit Missingno m\u00f6glich sind!<\/p>\t\t\n\t\t\t<h3>Das Balkendiagramm (bar chart)<\/h3>\t\t\n\t\t<p>Das auf Missingno angebotene Balkendiagramm wird mit der Funktion msno.bar(df) gezeichnet und sieht wie folgt aus:<\/p>\t\t\n\t\t\t<style>\n.elementor-widget-image{text-align:center}.elementor-widget-image a{display:inline-block}.elementor-widget-image a img[src$=\".svg\"]{width:48px}.elementor-widget-image img{vertical-align:middle;display:inline-block}<\/style>\t\t\t\t\t\t\t\t\t<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/2024\/02\/image3.png\" title=\"\" alt=\"\" loading=\"lazy\">\t\t\t\t\t\t\t\t\t\t\t<figcaption><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t<p>In diesem Diagramm symbolisiert jeder Balken eine Spalte des Datensatzes, und ihre H\u00f6he entspricht dem Anteil der Nicht-Null-Werte in jeder Spalte. Wir haben links den Prozentsatz der vollst\u00e4ndigen Werte, rechts die Werte der Indizes und oben die Anzahl der Zeilen.<\/p><p>F\u00fcr diesen Datensatz enthalten z. B. die Spalten DATE, TIME oder NUMBERS OF PERSONS INJURED keine fehlenden Werte. Umgekehrt enth\u00e4lt die Spalte OFF STREET NAME nur sehr wenige Werte, w\u00e4hrend NUMBER OF CYCLISTS INJURED \/ KILLED v\u00f6llig ohne Werte sind.<\/p>\t\t\n\t\t\t\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\"><div class=\"wp-block-button \"><a class=\"wp-block-button__link wp-element-button \" href=\"https:\/\/liora.io\/de\/weiterbildung-data-analyst\">Alles \u00fcber Missingno<\/a><\/div><\/div>\n\n\t\t\t<h3>Die Nullit\u00e4tsmatrix<\/h3>\t\t\n\t\t<p>Die <strong>Nullit\u00e4tsmatrix<\/strong> wird mit der Funktion msno.matrix(df) erstellt:<\/p>\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/2024\/02\/image4.png\" title=\"\" alt=\"\" loading=\"lazy\">\t\t\t\t\t\t\t\t\t\t\t<figcaption><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t<p>Diese <a href=\"https:\/\/liora.io\/de\/grafana-alles-ueber-diese-loesung-zur-datenanalyse\">Matrix l\u00e4sst sich fast wie das erste Histogramm weiter oben interpretieren:<\/a> F\u00fcr jede Spalte gilt: Je schraffierter das K\u00e4stchen ist, desto mehr von Null verschiedene Werte enth\u00e4lt es. Umgekehrt symbolisiert das Vorhandensein von mehr oder weniger gro\u00dfen wei\u00dfen Balken, dass es keine Werte gibt.<\/p><p>Auf der rechten Seite der <strong>Matrix<\/strong> befindet sich au\u00dferdem eine d\u00fcnne Kurve, die von links nach rechts schwingt, wobei die rechte Seite die Anzahl der Spalten im Datensatz darstellt und die linke Seite somit null ist. Wenn also in einer bestimmten Zeile in jeder Spalte ein Wert steht, neigt sich die Kurve nach rechts. Andernfalls, wenn die Werte ausgehen, neigt sich die Kurve nach links.<\/p>\t\t\n\t\t\t<h3>Die Korrelationsmatrix (Heatmap)<\/h3>\t\t\n\t\t<p>Wie bei Seaborn wird die Korrelationsmatrix von Missingno mit msno.heatmap(df) dargestellt:<\/p>\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/2024\/02\/image2.png\" title=\"\" alt=\"\" loading=\"lazy\">\t\t\t\t\t\t\t\t\t\t\t<figcaption><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t<p>Die Werte der <strong>Korrelationsmatrix,<\/strong> die auch als &#8222;Nullit\u00e4tskorrelationen&#8220; oder &#8222;nullity correlations&#8220; bezeichnet werden, liegen zwischen -1 und 1 :<\/p><ul><li>Ein Wert nahe -1 bedeutet, dass, wenn eine Variable auftritt, es sehr wahrscheinlich ist, dass die andere Variable fehlt.<\/li><li>Ein Wert nahe 0 bedeutet, dass es keine besondere Korrelation dar\u00fcber gibt, ob zwei Variablen Werte aufweisen oder nicht.<\/li><li>Ein Wert nahe 1 bedeutet, dass, wenn eine Variable auftritt, es sehr wahrscheinlich ist, dass die andere Variable vorhanden ist.<\/li><\/ul><p>In der obigen Matrix gibt es z. B. sehr starke Korrelationen zwischen einigen Spalten VEHICLE TYPE CODE und CONTRIBUTING FACTOR VEHICLE, d. h. die Informationen \u00fcber die Fahrzeuge scheinen die gleiche Vollst\u00e4ndigkeit der Werte zu haben (sowohl vorhandene als auch fehlende). Umgekehrt ist OFF STREET NAME sehr unkorreliert mit ON \/ CROSS STREET NAME, d.h. wo in dieser ersten Spalte Daten fehlen, sind die anderen beiden Spalten sehr vollst\u00e4ndig.<\/p>\t\t\n\t\t\t\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\"><div class=\"wp-block-button \"><a class=\"wp-block-button__link wp-element-button \" href=\"https:\/\/liora.io\/de\/weiterbildung-data-scientist\">Alles meistern auf Missingno<\/a><\/div><\/div>\n\n\t\t\t<h3>Das Dendrogramm<\/h3>\t\t\n\t\t<p>Hinter diesem etwas barbarischen Namen verbirgt sich ein <a href=\"https:\/\/liora.io\/de\/dendrogramm\"><strong>Baumdiagramm,<\/strong> das h\u00e4ufig in un\u00fcberwachtem Machine Learning verwendet wird,<\/a> um die Hierarchie von Clustern darzustellen. In Missingno zeichnen wir es mit der Methode msno.dendrogram(df) nach:<\/p>\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t<figure>\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/2024\/02\/image1.png\" title=\"\" alt=\"\" loading=\"lazy\">\t\t\t\t\t\t\t\t\t\t\t<figcaption><\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t<p>Das <strong>Dendrogramm<\/strong> erm\u00f6glicht es, die Spalten nach ihrer Nullit\u00e4tskorrelation zu gruppieren. Je n\u00e4her die Spalten beieinander liegen, desto gr\u00f6\u00dfer ist diese Korrelation (desto mehr gibt es einen Zusammenhang zwischen ihrem Vorhandensein oder Fehlen von Werten).<\/p><p>Hier zum Beispiel k\u00f6nnen wir drei Gruppen unterscheiden:<\/p><ul><li>Die Spalten ganz rechts, von CONTRIBUTING FACTOR VEHICLE 1 bis TIME, in denen es keine fehlenden Werte gibt;<\/li><li>Spalten in der Mitte, von CONTRIBUTING FACTOR VEHICLE 2 bis VEHICLE TYPE CODE 1, die einen leichten Anteil an fehlenden Werten enthalten;<\/li><li>die Spalten ganz links, von OFF STREET NAME bis VEHICLE TYPE CODE 5, die fast leer sind.<\/li><\/ul>\t\t\n\t\t\t<h3>Fazit<\/h3>\t\t\n\t\t<p>Die<strong> Missingno-Bibliothek<\/strong> ist daher ideal, wenn wir in unserem Datensatz auf fehlende Werte sto\u00dfen, um zu visualisieren, wo sich diese Werte befinden und wie sie sich auf unsere Variablen auswirken.<\/p><p>Die verf\u00fcgbaren Grafiken k\u00f6nnen in zwei Kategorien unterschieden werden:<\/p><ol><li>solche, die die Anteile der vorhandenen und fehlenden Werte in jeder Spalte anzeigen (Balkendiagramm, Nullstellenmatrix), und<\/li><li>solche, die die Nullstellenkorrelationen zwischen den Variablen untersuchen (Korrelationsmatrix, Dendrogramm).<\/li><\/ol><p>Um ein Experte im Umgang mit Daten zu werden, z\u00f6gere nicht, die von Liora angebotenen Kurse Data Scientist &amp; Data Analyst zu absolvieren!<\/p>\t\t\n\t\t\t\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\"><div class=\"wp-block-button \"><a class=\"wp-block-button__link wp-element-button \" href=\"https:\/\/liora.io\/de\/weiterbildung-data-scientist\">Melde dich f\u00fcr einen unserer Datentrainings an<\/a><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Einer der wichtigsten Schritte in einem Data-Science-Projekt, bevor wir mit dem Entwurf der Machine-Learning-Modelle beginnen, ist die Bereinigung unseres Datensatzes. Dies beinhaltet das Entfernen von Duplikaten, das Kodieren bestimmter Variablen, aber vor allem das Ersetzen fehlender Werte. Es ist nicht ungew\u00f6hnlich, dass der Datensatz, mit dem wir arbeiten, nicht vollst\u00e4ndig ist und fehlende Werte enth\u00e4lt, [&hellip;]<\/p>\n","protected":false},"author":76,"featured_media":193005,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_theme","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2472],"class_list":["post-192965","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-ki"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/192965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/76"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=192965"}],"version-history":[{"count":1,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/192965\/revisions"}],"predecessor-version":[{"id":216949,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/192965\/revisions\/216949"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/193005"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=192965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=192965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}