{"id":89206,"date":"2020-07-20T07:41:57","date_gmt":"2020-07-20T05:41:57","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/chto-mozhet-pojti-ne-tak-s-data-science-sbor-dannyh"},"modified":"2020-07-20T07:41:57","modified_gmt":"2020-07-20T05:41:57","slug":"chto-mozhet-pojti-ne-tak-s-data-science-sbor-dannyh","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/chto-mozhet-pojti-ne-tak-s-data-science-sbor-dannyh","title":{"rendered":"Was kann bei Data Science schiefgehen? Datensammlung","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/510944\/\"><img decoding=\"async\" alt=\"Was kann bei Data Science schiefgehen? Datensammlung\" src=\"\/wp-content\/uploads\/2020\/07\/49fb91fc3e45754e437b2c1fc4fec12f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\nHeute gibt es 100.500 Kurse im Bereich Data Science, und es ist bekannt, dass man mit Data Science-Kursen am meisten Geld verdienen kann (warum graben, wenn man Schaufeln verkaufen kann?). Der Hauptnachteil dieser Kurse ist, dass sie nichts mit der echten Arbeit zu tun haben: Niemand wird Ihnen klare, verarbeitete Daten im ben\u00f6tigten Format zur Verf\u00fcgung stellen. Und wenn Sie die Kurse abgeschlossen haben und beginnen, an einer echten Aufgabe zu arbeiten, tauchen viele Nuancen auf.<\/p>\n<p>Daher starten wir eine Serie von Beitr\u00e4gen mit dem Titel \u00abWas bei Data Science schiefgehen kann\u00bb, basierend auf realen Ereignissen, die mir, meinen Freunden und Kollegen widerfahren sind. Wir werden typische Data Science-Aufgaben an realen Beispielen analysieren: wie es tats\u00e4chlich abl\u00e4uft. Heute beginnen wir mit dem Thema Datensammlung.<\/p>\n<p>Das erste, wor\u00fcber die Menschen stolpern, wenn sie beginnen, mit echten Daten zu arbeiten, ist tats\u00e4chlich die Sammlung der relevanten Daten. Die zentrale Botschaft dieses Artikels lautet:<\/p>\n<blockquote><p><b>Wir untersch\u00e4tzen systematisch die Zeit, Ressourcen und Anstrengungen f\u00fcr die Sammlung, Reinigung und Vorbereitung von Daten.<\/b><\/p><\/blockquote>\n<p>\nUnd vor allem werden wir besprechen, was zu tun ist, um dies zu vermeiden.<\/p>\n<p>Sch\u00e4tzungen zufolge nehmen Datenbereinigung, -transformation, Datenverarbeitung, Merkmalsengineering usw. 80-90 % der Zeit in Anspruch, w\u00e4hrend die Analyse nur 10-20 % in Anspruch nimmt, obwohl nahezu das gesamte Lernmaterial ausschlie\u00dflich auf die Analyse fokussiert ist.<\/p>\n<p>Lassen Sie uns ein typisches Beispiel f\u00fcr eine einfache Analyseaufgabe in drei Varianten durchgehen und sehen, welche \"erschwerenden Faktoren\" auftreten k\u00f6nnen.<\/p>\n<p>Als Beispiel werden wir erneut \u00e4hnliche Variationen der Aufgabe zur Datensammlung und zum Vergleich von Gemeinschaften betrachten f\u00fcr:<\/p>\n<ol>\n<li>Zwei Subreddits von Reddit<\/li>\n<li>Zwei Sektionen von Habr<\/li>\n<li>Zwei Gruppen von Odnoklassniki<\/li>\n<\/ol>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Ein hypothetischer Ansatz in der Theorie<\/h2>\n<p>\n\u00d6ffnen Sie die Website und lesen Sie die Beispiele. Falls alles klar ist, planen Sie mehrere Stunden zum Lesen, mehrere Stunden f\u00fcr den Code zu den Beispielen und zur Fehlersuche. F\u00fcgen Sie mehrere Stunden f\u00fcr die Sammlung hinzu. Planen Sie einige zus\u00e4tzliche Stunden ein (verdoppeln Sie die Zeit und addieren Sie N Stunden).<\/p>\n<p><b>Der Schl\u00fcsselpunkt: Die zeitliche Sch\u00e4tzung basiert auf Annahmen und Vermutungen dar\u00fcber, wie viel Zeit es in Anspruch nehmen wird.<\/b><\/p>\n<p>Beginnen Sie die Analyse der Zeit mit der Bewertung der folgenden Parameter f\u00fcr die hypothetische Aufgabe, die oben beschrieben wurde:<\/p>\n<ul>\n<li>Wie gro\u00df sind die Daten und wie viel davon muss physisch gesammelt werden (*siehe unten*).<\/li>\n<li>Wie lange dauert das Zusammenstellen eines Datensatzes und wie lange muss man warten, bevor man den zweiten sammeln kann?<\/li>\n<li>Code zur Zustandsbewahrung implementieren und einen Neustart initiieren, wenn (und nicht wenn) alles abst\u00fcrzt.<\/li>\n<li>Kl\u00e4rung, ob eine Autorisierung notwendig ist und Zeit f\u00fcr den Zugriff \u00fcber die API einplanen.<\/li>\n<li>Die Anzahl der Fehler als Funktion der Datenkomplexit\u00e4t festlegen \u2013 bewerten anhand der spezifischen Aufgabe: Struktur, wie viele Umwandlungen, was und wie wir extrahieren.<\/li>\n<li>Netzwerkfehler und Probleme mit dem unkonventionellen Verhalten des Projekts einplanen.<\/li>\n<li>Bewerten, ob die erforderlichen Funktionen in der Dokumentation vorhanden sind, und falls nicht, wie viel Zeit f\u00fcr die Implementierung einer L\u00f6sung ben\u00f6tigt wird.<\/li>\n<\/ul>\n<p>\nDas Wichtigste f\u00fcr die zeitliche Einsch\u00e4tzung ist, dass Sie tats\u00e4chlich Zeit und M\u00fche f\u00fcr eine \u201aProbebohrung\u2018 investieren m\u00fcssen \u2013 nur dann wird Ihre Planung ad\u00e4quat sein. Daher, egal wie sehr man Sie dr\u00e4ngt zu sagen: \u201aWie viel Zeit ben\u00f6tigt man f\u00fcr die Datensammlung?\u2018 \u2013 nehmen Sie sich die Zeit f\u00fcr eine vorl\u00e4ufige Analyse und begr\u00fcnden Sie, dass die Zeit je nach realen Parametern der Aufgabe variieren wird.<\/p>\n<p>Und jetzt zeigen wir konkrete Beispiele, wo solche Parameter sich \u00e4ndern werden.<\/p>\n<p><b>Der Schl\u00fcsselpunkt: Die Bewertung basiert auf der Analyse der Schl\u00fcsselfaktoren, die das Volumen und die Komplexit\u00e4t der Arbeit beeinflussen.<\/b><\/p>\n<p>Eine bewertung, die auf Vermutungen basiert, ist ein guter Ansatz, wenn die funktionalen Elemente relativ klein sind und nicht viele Faktoren vorhanden sind, die die Struktur der Aufgabe erheblich beeinflussen k\u00f6nnen. Im Fall mancher Data-Science-Aufgaben jedoch gibt es \u00e4u\u00dferst viele solcher Faktoren, wodurch dieser Ansatz unzureichend wird.<\/p>\n<h2>Vergleich von Reddit-Communities<\/h2>\n<p>\nLassen Sie uns mit dem einfachsten Fall beginnen (wie sich herausstellen wird). Um ehrlich zu sein, handelt es sich hier um einen nahezu idealen Fall. Lassen Sie uns unsere Checklist zur Komplexit\u00e4t \u00fcberpr\u00fcfen:<\/p>\n<ul>\n<li>Es gibt eine saubere, verst\u00e4ndliche und dokumentierte API.<\/li>\n<li>Ein Token wird extrem einfach und vor allem automatisch generiert.<\/li>\n<li>Es gibt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/praw-dev\/praw\">Python-Wrapper<\/a><\/noindex> \u2014 mit einer Vielzahl von Beispielen.<\/li>\n<li>Eine Community, die sich mit der Analyse und Sammlung von Daten auf Reddit besch\u00e4ftigt (bis hin zu YouTube-Videos, die erkl\u00e4ren, wie man den Python-Wrapper verwendet) <noindex><a rel=\"nofollow\" href=\"https:\/\/www.programcreek.com\/python\/example\/86599\/praw.Reddit\">hier zum Beispiel<\/a><\/noindex>.<\/li>\n<li>Die Methoden, die wir ben\u00f6tigen, existieren wahrscheinlich in der API. Dar\u00fcber hinaus sieht der Code kompakt und sauber aus; hier ist ein Beispiel einer Funktion, die Kommentare zu einem Beitrag sammelt.<\/li>\n<\/ul>\n<p><\/p>\n<pre><code class=\"python\">def get_comments(submission_id):\n    reddit = Reddit(check_for_updates=False, user_agent=AGENT)\n    submission = reddit.submission(id=submission_id)\n    more_comments = submission.comments.replace_more()\n    if more_comments:\n        skipped_comments = sum(x.count for x in more_comments)\n        logger.debug('\u00dcber %d MoreComments \u00fcbersprungen (%d Kommentare)',\n                     len(more_comments), skipped_comments)\n    return submission.comments.list()\n<\/code><\/pre>\n<p><i>Entnommen aus <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/timendum\/reddit-utilities\/blob\/master\/thread-export.py\">dieser<\/a><\/noindex> Sammlungen n\u00fctzlicher Dienste zur Einbettung.<\/i><\/p>\n<p>Obwohl wir hier den besten Fall haben, sollten wir dennoch mehrere wichtige Faktoren aus der realen Welt ber\u00fccksichtigen:<\/p>\n<ul>\n<li>API-Limits \u2013 wir sind gezwungen, Daten in Chargen abzurufen (Pausen zwischen den Anfragen usw.).<\/li>\n<li>Sammlungszeit \u2013 f\u00fcr eine vollst\u00e4ndige Analyse und den Vergleich muss man betr\u00e4chtliche Zeit einplanen, damit der Crawler durch die Subreddit navigieren kann.<\/li>\n<li>Der Bot muss auf dem Server laufen \u2013 Sie k\u00f6nnen ihn nicht einfach auf einem Laptop starten, in einen Rucksack stecken und sich auf den Weg machen. Deshalb habe ich alles auf einem VPS gestartet. Mit dem Aktionscode habrahabr10 k\u00f6nnen Sie zus\u00e4tzlich 10% sparen.<\/li>\n<li>Physische Unzug\u00e4nglichkeit bestimmter Daten (sie sind nur f\u00fcr Admins sichtbar oder sind zu kompliziert zu sammeln) \u2013 das muss ber\u00fccksichtigt werden, nicht alle Daten k\u00f6nnen grunds\u00e4tzlich in angemessener Zeit gesammelt werden.<\/li>\n<li>Netzwerkfehler: Die Arbeit mit dem Netzwerk ist problematisch.<\/li>\n<li>Das sind echte, lebendige Daten \u2013 sie sind nie sauber.<\/li>\n<\/ul>\n<p>\nNat\u00fcrlich m\u00fcssen die genannten Aspekte in die Entwicklung einflie\u00dfen. Die konkreten Stunden\/ Tage h\u00e4ngen von der Erfahrung in der Entwicklung oder bei \u00e4hnlichen Aufgaben ab. Dennoch sehen wir, dass es sich hier um eine rein ingenieurtechnische Aufgabe handelt, die keine zus\u00e4tzlichen Ma\u00dfnahmen zur L\u00f6sung erfordert \u2014 man kann alles sehr gut bewerten, aufschl\u00fcsseln und umsetzen.<\/p>\n<h2>Vergleich der Abschnitte von Habra<\/h2>\n<p>\nKommen wir zu einem interessanteren und nicht-trivialen Fall, dem Vergleich von Str\u00f6men und\/oder Abschnitten von Habra.<\/p>\n<p>\u00dcberpr\u00fcfen wir unsere Checkliste zur Komplexit\u00e4t \u2014 hier wird es notwendig sein, jeden Punkt etwas genauer zu betrachten und zu experimentieren.<\/p>\n<ul>\n<li>Zuerst denken Sie, dass es eine API gibt, aber die gibt es nicht. Ja, Habra hat eine API, aber die ist nur f\u00fcr Benutzer nicht zug\u00e4nglich (oder funktioniert vielleicht \u00fcberhaupt nicht).<\/li>\n<li>Dann fangen Sie einfach an, HTML zu parsen \u2014 \"import requests\", was kann schon schiefgehen?<\/li>\n<li>Und wie parsieren wir \u00fcberhaupt? Der einfachste und am h\u00e4ufigsten verwendete Ansatz besteht darin, \u00fcber die IDs zu iterieren; dies ist jedoch nicht der effektivste und man muss unterschiedliche F\u00e4lle bearbeiten \u2014 hier ist beispielsweise die Dichte der realen IDs unter allen existierenden.\n<p><img decoding=\"async\" alt=\"Was kann bei Data Science schiefgehen? Datensammlung\" src=\"\/wp-content\/uploads\/2020\/07\/2c67fc14f672e92979edd617314210da.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Entnommen aus <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/218607\/\">dieser<\/a><\/noindex> des Artikels gehen.<\/i><\/li>\n<li>Rohdaten, die in HTML \u00fcber das Netzwerk gewickelt sind, sind problematisch. Zum Beispiel m\u00f6chten Sie die Bewertung eines Artikels sammeln und speichern: Sie extrahieren den Score aus dem HTML und entscheiden, ihn als Zahl f\u00fcr weitere Verarbeitung zu speichern.\u00a0\n<p>1) int(score) wirft einen Fehler: Da auf Habr die Minuszeichen wie z. B. in der Zeile \"\u20135\" ein kurzes Gedankenstrich sind, nicht ein Minuszeichen (\u00fcberraschend, oder?), musste ich den Parser irgendwann mit diesem schrecklichen Fix zum Laufen bringen.<\/p>\n<pre><code class=\"python\">try:\n      score_txt = post.find(class_=\"score\").text.replace(u\"\u2013\",\"-\").replace(u\"+\",\"+\")\n      score = int(score_txt)\n      if check_date(date):\n        post_score += score\n<\/code><\/pre>\n<p>\nEs gibt keine Daten, Plus oder Minus (wie wir oben in der Funktion check_date sehen k\u00f6nnen \u2014 so war es tats\u00e4chlich).<\/p>\n<p>2) Unescaped Sonderzeichen \u2014 sie kommen, man muss darauf vorbereitet sein.<\/p>\n<p>3) Die Struktur \u00e4ndert sich je nach Art des Beitrags.<\/p>\n<p>4) Alte Beitr\u00e4ge k\u00f6nnen eine **seltsame Struktur** haben.<\/li>\n<li>Im Wesentlichen muss die Fehlerbehandlung und alles, was passieren kann oder nicht, behandelt werden, und man kann nicht sicher vorhersagen, was schiefgehen wird und wie die Struktur sein k\u00f6nnte und was wo wegfallen k\u00f6nnte \u2014 man muss es einfach versuchen und die Fehler ber\u00fccksichtigen, die der Parser wirft.<\/li>\n<li>Dann versteht man, dass man in mehreren Threads parsen muss, andernfalls dauert das Parsen in einem einzigen Thread \u00fcber 30 Stunden (das ist die reine Ausf\u00fchrungszeit eines bereits laufenden Einzel-Thread-Parsers, der schl\u00e4ft und nicht unter irgendwelche Sperren f\u00e4llt). In <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/276383\/\">dieser<\/a><\/noindex> dem Artikel f\u00fchrte das irgendwann zu einem solchen Schema:<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Was kann bei Data Science schiefgehen? Datensammlung\" src=\"\/wp-content\/uploads\/2020\/07\/9ad1853f3ee2c9321ee9f1a5e3efea7d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZusammenfassung des Schwierigkeits-Checklists:<\/p>\n<ul>\n<li>Arbeiten mit dem Netzwerk und HTML-Parsen mit Iterationen und ID-Durchl\u00e4ufen.<\/li>\n<li>Dokumente mit heterogener Struktur.<\/li>\n<li>Viele Stellen, an denen der Code leicht abst\u00fcrzen kann.<\/li>\n<li>Es ist notwendig, || Code zu schreiben.<\/li>\n<li>Fehlende ben\u00f6tigte Dokumentation, Code-Beispiele und\/oder eine Community.<\/li>\n<\/ul>\n<p>\nDie gesch\u00e4tzte Zeit f\u00fcr diese Aufgabe wird 3-5 Mal h\u00f6her sein als das Sammeln von Daten von Reddit.<\/p>\n<h2>Vergleich von Gruppen in Odnoklassniki<\/h2>\n<p>\nKommen wir zum technisch interessantesten Fall aus den beschriebenen. Er war f\u00fcr mich interessant, weil er auf den ersten Blick recht trivial aussieht, sich aber als ganz anders erweist \u2013 sobald man mit einem Stock darauf zeigt.<\/p>\n<p>Wir beginnen mit unserer Schwierigkeits-Checkliste und merken an, dass viele von ihnen viel komplizierter sein werden, als sie zun\u00e4chst erscheinen:<\/p>\n<ul>\n<li>Die API ist vorhanden, aber es fehlen fast vollst\u00e4ndig die ben\u00f6tigten Funktionen.<\/li>\n<li>F\u00fcr bestimmte Funktionen muss man per E-Mail um Zugriff bitten, das hei\u00dft, die Gew\u00e4hrung des Zugriffs erfolgt nicht sofort.<\/li>\n<li>Die Dokumentation ist schrecklich (um es mal zu sagen, dort vermischen sich \u00fcberall russische und englische Begriffe, und das absolut inkonsistent \u2014 manchmal muss man einfach raten, was von einem an welcher Stelle gew\u00fcnscht wird) und dar\u00fcber hinaus ist sie designtechnisch nicht geeignet, um Daten zu erhalten, zum Beispiel <noindex><a rel=\"nofollow\" href=\"https:\/\/apiok.ru\/dev\/methods\/rest\/discussions\/discussions.getComments\">die Funktion, die wir ben\u00f6tigen<\/a><\/noindex>.<\/li>\n<li>Es erfordert eine Sitzung in der Dokumentation, wird jedoch in der Praxis nicht verwendet \u2014 und es gibt keine M\u00f6glichkeit, die Feinheiten der API-Modi herauszufinden, au\u00dfer durch Herumprobieren und Hoffen, dass etwas funktioniert.<\/li>\n<li>Beispiele und eine Community fehlen, der einzige Anhaltspunkt f\u00fcr die Informationsbeschaffung ist ein kleiner <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/alternativshik\/python-odnoklassniki\">wrapper<\/a><\/noindex> in Python (mit wenigen Anwendungsbeispielen).<\/li>\n<li>Die vielversprechendste Option scheint Selenium zu sein, da viele ben\u00f6tigte Daten unzug\u00e4nglich sind.<br \/>\n1) Das bedeutet, die Authentifizierung erfolgt \u00fcber einen fiktiven Benutzer (und die Registrierung erfolgt manuell).<\/p>\n<p>2) Mit Selenium gibt es jedoch keine Garantie f\u00fcr eine korrekte und wiederholbare Funktion (definitiv im Fall von ok.ru).<\/p>\n<p>3) Die Website ok.ru enth\u00e4lt JavaScript-Fehler und verh\u00e4lt sich manchmal seltsam und inkonsistent.<\/p>\n<p>4) Es muss Pagination, das Nachladen von Elementen usw. behandelt werden...<\/p>\n<p>5) API-Fehler, die vom Wrapper zur\u00fcckgegeben werden, m\u00fcssen workaroundm\u00e4\u00dfig bearbeitet werden, zum Beispiel so (ein St\u00fcck experimenteller Code):<\/p>\n<pre><code class=\"python\">def get_comments(args, context, discussions):\n    pause = 1\n    if args.extract_comments:\n        all_comments = set()\n#es macht Sinn, bereits verarbeitete Diskussionen nachzuverfolgen\n        for discussion in tqdm(discussions): \n            try:\n                comments = get_comments_from_discussion_via_api(context, discussion)\n            except odnoklassniki.api.OdnoklassnikiError as e:\n                if \"NOT_FOUND\" in str(e):\n                    comments = set()\n                else:\n                    print(e)\n                    bp()\n                    pass\n            all_comments |= comments\n            time.sleep(pause)\n        return all_comments\n<\/code><\/pre>\n<p>\nMein liebstes Fehler war:<\/p>\n<p><code>OdnoklassnikiError(\"Fehler(code: 'None', Beschreibung: 'HTTP-Fehler', Methode: 'discussions.getComments', params: \u2026)\")<\/code><\/p>\n<p>6) Letztendlich scheint die Kombination aus Selenium + API die vern\u00fcnftigste L\u00f6sung zu sein.<\/li>\n<li>Es ist notwendig, den Zustand zu speichern und das System neu zu starten, sowie viele Fehler zu behandeln, einschlie\u00dflich inkonsistentem Verhalten der Website \u2014 und zwar solche Fehler, die ziemlich schwer vorstellbar sind (es sei denn, Sie schreiben professionell Parser, nat\u00fcrlich).<\/li>\n<\/ul>\n<p>\nDie gesch\u00e4tzte Zeit f\u00fcr diese Aufgabe wird 3- bis 5-mal h\u00f6her sein als beim Sammeln von Informationen von Habra. W\u00e4hrend wir bei Habra einen direkten Ansatz mit HTML-Parsen verwenden, k\u00f6nnen wir bei OK an kritischen Stellen mit der API arbeiten.<\/p>\n<h2>Fazit<\/h2>\n<p>\nEgal, wie sehr man von Ihnen eine \"Vorort\"-Zeitsch\u00e4tzung verlangt (wir haben schlie\u00dflich heute Planung!), ist es praktisch nie m\u00f6glich, die Ausf\u00fchrungszeit qualitativ zu sch\u00e4tzen, ohne die Parameter der Aufgabe zu analysieren. <\/p>\n<p>Wenn wir etwas philosophischer sprechen, dann passen die Sch\u00e4tzstrategien im Agile-Bereich gut zu ingenieurtechnischen Aufgaben, aber bei experimentelleren und, in gewissem Sinne, \"kreativen\" und forschungsorientierten Aufgaben, also weniger vorhersehbaren, entstehen Schwierigkeiten, \u00e4hnlich wie in den Beispielen, die wir hier behandelt haben. <\/p>\n<p>Nat\u00fcrlich ist die Datensammlung ein sehr anschauliches Beispiel \u2013 in der Regel scheint diese Aufgabe unglaublich einfach und technisch unproblematisch zu sein, und genau in den Details versteckt sich hier h\u00e4ufig der Teufel. Und gerade bei dieser Aufgabe kann man das gesamte Spektrum m\u00f6glicher Varianten aufzeigen, was schiefgehen kann und wie sehr sich die Arbeit in die L\u00e4nge ziehen kann. <\/p>\n<p>Wenn man die Eigenschaften der Aufgabe fl\u00fcchtig betrachtet, wirken Reddit und OK \u00e4hnlich: Es gibt eine API und einen Python-Wrapper, aber im Grunde genommen ist der Unterschied enorm. Betrachtet man diese Parameter, scheint das Parsen von Habr komplizierter zu sein als bei OK \u2013 in der Praxis ist das genau umgekehrt, und das l\u00e4sst sich leicht herausfinden, indem man einfache Experimente zur Analyse der Aufgabendetails durchf\u00fchrt.<\/p>\n<p>Nach meiner Erfahrung ist der effektivste Ansatz eine grobe Zeitabsch\u00e4tzung, die Sie f\u00fcr die grundlegende Analyse, erste einfache Experimente und das Lesen der Dokumentation ben\u00f6tigen. Diese Schritte erm\u00f6glichen es Ihnen, eine pr\u00e4zise Sch\u00e4tzung f\u00fcr die gesamte Arbeit abzugeben. In den Begriffen der beliebten Agile-Methodik bitte ich, ein Ticket f\u00fcr die \u201eSch\u00e4tzung der Aufgabenparameter\u201c zu erstellen, auf dessen Basis ich beurteilen kann, was im Rahmen eines \u201eSprints\u201c machbar ist und eine genauere Sch\u00e4tzung f\u00fcr jede Aufgabe abgeben kann.<\/p>\n<p>Deshalb scheint das \u00fcberzeugendste Argument zu sein, das einem 'nicht-technischen' Spezialisten aufzeigt, wie sehr die Zeit- und Ressourcenaufw\u00e4nde je nach noch zu sch\u00e4tzenden Parametern variieren k\u00f6nnen.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/ruvds.com\/ru-rub?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=param&amp;utm_content=datascience1#order\"><img decoding=\"async\" alt=\"Was kann bei Data Science schiefgehen? Datensammlung\" src=\"\/wp-content\/uploads\/2020\/07\/2ca567a078c8500d37dfcf982e76252c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/510944\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 100500 \u043a\u0443\u0440\u0441\u043e\u0432 \u043f\u043e Data Science \u0438 \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0435\u043d\u0435\u0433 \u0432 Data Science \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u0443\u0440\u0441\u0430\u043c\u0438 \u043f\u043e Data Science (\u0437\u0430\u0447\u0435\u043c \u043a\u043e\u043f\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u043b\u043e\u043f\u0430\u0442\u044b?). \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0438\u043d\u0443\u0441 \u044d\u0442\u0438\u0445 \u043a\u0443\u0440\u0441\u043e\u0432 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439: \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0434\u0430\u0441\u0442 \u0432\u0430\u043c \u0447\u0438\u0441\u0442\u044b\u0435, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":89207,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-89206","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 100500 \u043a\u0443\u0440\u0441\u043e\u0432 \u043f\u043e Data Science \u0438 \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0435\u043d\u0435\u0433 \u0432 Data Science \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u0443\u0440\u0441\u0430\u043c\u0438 \u043f\u043e Data Science (\u0437\u0430\u0447\u0435\u043c \u043a\u043e\u043f\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u043b\u043e\u043f\u0430\u0442\u044b?). \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0438\u043d\u0443\u0441 \u044d\u0442\u0438\u0445 \u043a\u0443\u0440\u0441\u043e\u0432 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439: \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0434\u0430\u0441\u0442 \u0432\u0430\u043c \u0447\u0438\u0441\u0442\u044b\u0435, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/chto-mozhet-pojti-ne-tak-s-data-science-sbor-dannyh\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0427\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0439\u0442\u0438 \u043d\u0435 \u0442\u0430\u043a \u0441 Data Science? \u0421\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 100500 \u043a\u0443\u0440\u0441\u043e\u0432 \u043f\u043e Data Science \u0438 \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0435\u043d\u0435\u0433 \u0432 Data Science \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u0443\u0440\u0441\u0430\u043c\u0438 \u043f\u043e Data Science (\u0437\u0430\u0447\u0435\u043c \u043a\u043e\u043f\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u043b\u043e\u043f\u0430\u0442\u044b?). \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0438\u043d\u0443\u0441 \u044d\u0442\u0438\u0445 \u043a\u0443\u0440\u0441\u043e\u0432 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439: \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0434\u0430\u0441\u0442 \u0432\u0430\u043c \u0447\u0438\u0441\u0442\u044b\u0435, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/chto-mozhet-pojti-ne-tak-s-data-science-sbor-dannyh\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-07-20T05:41:57+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-20T05:41:57+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Was kann im Data Science schiefgehen? Datensammlung | ProHoster","description":"Heute gibt es 100.500 Kurse zu Data Science, und es ist allgemein bekannt, dass man mit Data Science am meisten Geld verdienen kann, indem man Data Science-Kurse verkauft (warum graben, wenn man Schaufeln verkaufen kann?). Der Hauptnachteil dieser Kurse besteht darin, dass sie nichts mit der realen Arbeit zu tun haben: Niemand wird Ihnen saubere, verarbeitete Daten im ben\u00f6tigten Format zur Verf\u00fcgung stellen.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/chto-mozhet-pojti-ne-tak-s-data-science-sbor-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0427\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0439\u0442\u0438 \u043d\u0435 \u0442\u0430\u043a \u0441 Data Science? \u0421\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 | ProHoster","og:description":"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 100500 \u043a\u0443\u0440\u0441\u043e\u0432 \u043f\u043e Data Science \u0438 \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0435\u043d\u0435\u0433 \u0432 Data Science \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u0443\u0440\u0441\u0430\u043c\u0438 \u043f\u043e Data Science (\u0437\u0430\u0447\u0435\u043c \u043a\u043e\u043f\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u043b\u043e\u043f\u0430\u0442\u044b?). \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0438\u043d\u0443\u0441 \u044d\u0442\u0438\u0445 \u043a\u0443\u0440\u0441\u043e\u0432 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439: \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0434\u0430\u0441\u0442 \u0432\u0430\u043c \u0447\u0438\u0441\u0442\u044b\u0435, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/chto-mozhet-pojti-ne-tak-s-data-science-sbor-dannyh","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-07-20T05:41:57+00:00","article:modified_time":"2020-07-20T05:41:57+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"89206","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:51:09","updated":"2022-10-04 00:46:34"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/89206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=89206"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/89206\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/89207"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=89206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=89206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=89206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}