{"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 im Bereich 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 im Bereich Data Science schiefgehen? Datensammlung.\" src=\"\/wp-content\/uploads\/2020\/07\/49fb91fc3e45754e437b2c1fc4fec12f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\nHeute gibt es 100500 Data Science-Kurse, und es ist schon lange 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 tats\u00e4chlichen Arbeit zu tun haben: Niemand wird Ihnen saubere, bearbeitete Daten im ben\u00f6tigten Format zur Verf\u00fcgung stellen. Und wenn Sie von den Kursen kommen und beginnen, ein echtes Problem zu l\u00f6sen, tauchen viele Nuancen auf.<\/p>\n<p>Deshalb beginnen wir eine Reihe von Notizen mit dem Titel \u201eWas kann im Data Science schiefgehen\u201c, die auf realen Ereignissen basieren, die mir, meinen Kollegen und Freunden passiert sind. Wir werden typische Data Science-Aufgaben an realen Beispielen untersuchen: wie das tats\u00e4chlich abl\u00e4uft. Heute beginnen wir mit der Aufgabe der Datensammlung.<\/p>\n<p>Und das Erste, wor\u00fcber Menschen stolpern, wenn sie beginnen, mit echten Daten zu arbeiten, ist die Sammlung genau der relevanten Daten. Die zentrale Botschaft dieses Artikels:<\/p>\n<blockquote><p><b>Wir untersch\u00e4tzen systematisch die Zeit, Ressourcen und den Aufwand 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>Nach verschiedenen Sch\u00e4tzungen nehmen Reinigung, Transformation, Datenverarbeitung, Feature Engineering usw. 80-90 % der Zeit in Anspruch, w\u00e4hrend die Analyse nur 10-20 % ben\u00f6tigt, wobei praktisch das gesamte Lehrmaterial sich ausschlie\u00dflich auf die Analyse konzentriert.<\/p>\n<p>Lassen Sie uns anhand eines einfachen analytischen Beispiels in drei Varianten untersuchen, welche \u201eerschwerenden Umst\u00e4nde\u201c es geben kann.<\/p>\n<p>Und als Beispiel wiederum betrachten wir \u00e4hnliche Variationen der Aufgabe zur Datensammlung und des Vergleichs von Gemeinschaften f\u00fcr:<\/p>\n<ol>\n<li>Zwei Subreddits von Reddit<\/li>\n<li>Zwei Abteilungen 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 bedingter Ansatz in der Theorie<\/h2>\n<p>\nDie Website zu \u00f6ffnen und die Beispiele durchzulesen, wenn es klar ist, einige Stunden f\u00fcr das Lesen einzuplanen, einige Stunden f\u00fcr den Code nach den Beispielen und die Fehlersuche. F\u00fcgen Sie einige Stunden f\u00fcr die Sammlung hinzu. Legen Sie einige Stunden als Puffer drauf (mal zwei multiplizieren und N Stunden hinzuzuf\u00fcgen).<\/p>\n<p><b>Der Schl\u00fcsselpunkt: Die Zeitabsch\u00e4tzung basiert auf Annahmen und Vermutungen dar\u00fcber, wie lange es dauern wird.<\/b><\/p>\n<p>Die Analyse der Zeit muss mit der Bewertung der folgenden Parameter f\u00fcr die oben beschriebene bedingte Aufgabe beginnen:<\/p>\n<ul>\n<li>Wie gro\u00df sind die Daten und wie viel muss physisch gesammelt werden (*siehe unten*).<\/li>\n<li>Wie viel Zeit ben\u00f6tigt die Sammlung eines Datensatzes und wie lange muss man warten, bevor man den zweiten sammeln kann.<\/li>\n<li>Das Schreiben von Code einplanen, der den Zustand speichert und einen Neustart beginnt, wenn (und nicht wenn) alles abst\u00fcrzt.<\/li>\n<li>\u00dcberpr\u00fcfen, ob wir eine Authentifizierung ben\u00f6tigen, und die Zeit f\u00fcr den Zugriff \u00fcber die API einplanen.<\/li>\n<li>Die Anzahl der Fehler als Funktion der Komplexit\u00e4t der Daten einplanen \u2014 anhand der konkreten Aufgabe bewerten: Struktur, wie viele Transformationen, was und wie wir extrahieren.<\/li>\n<li>Netzwerkfehler und Probleme mit dem nicht standardm\u00e4\u00dfigen Verhalten des Projekts einplanen.<\/li>\n<li>Bewerten, ob die ben\u00f6tigten Funktionen in der Dokumentation vorhanden sind, und falls nicht, wie viele Resourcen f\u00fcr einen Workaround ben\u00f6tigt werden.<\/li>\n<\/ul>\n<p>\nDas Wichtigste f\u00fcr die Zeitbewertung ist, dass Sie tats\u00e4chlich Zeit und M\u00fche f\u00fcr eine \"Erkundung\" aufwenden m\u00fcssen \u2014 nur dann wird Ihre Planung angemessen sein. Also, egal wie sehr man Sie dr\u00e4ngt, zu sagen: \"Wie viel Zeit brauchen wir, um Daten zu sammeln\" \u2014 nehmen Sie sich die Zeit f\u00fcr eine vorl\u00e4ufige Analyse und argumentieren Sie, dass die Zeit je nach den realen Parametern der Aufgabe stark variieren wird.<\/p>\n<p>Und jetzt zeigen wir konkrete Beispiele, bei denen solche Parameter tats\u00e4chlich variieren werden.<\/p>\n<p><b>Der Schl\u00fcsselpunkt: Die Sch\u00e4tzung basiert auf der Analyse der wichtigsten Faktoren, die das Volumen und die Komplexit\u00e4t der Arbeit beeinflussen.<\/b><\/p>\n<p>Eine sch\u00e4tzungsbasierte Ann\u00e4herung ist ein guter Ansatz, wenn die funktionalen Elemente relativ klein sind und es nicht allzu viele Faktoren gibt, die die Struktur der Aufgabe erheblich beeinflussen k\u00f6nnen. Aber in vielen Data-Science-Aufgaben werden solche Faktoren extrem zahlreich, und dieser Ansatz wird unangemessen.<\/p>\n<h2>Vergleich von Reddit-Communities<\/h2>\n<p>\nBeginnen wir mit dem einfachsten Fall (wie sich sp\u00e4ter herausstellen wird). Ganz ehrlich, wir haben es hier mit einem nahezu idealen Fall zu tun, lassen Sie uns unsere Komplexit\u00e4ts-Checkliste \u00fcberpr\u00fcfen:<\/p>\n<ul>\n<li>Es gibt eine klare, verst\u00e4ndliche und dokumentierte API.<\/li>\n<li>Es ist extrem einfach, und vor allem wird das Token automatisch generiert.<\/li>\n<li>Ja <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/praw-dev\/praw\">python wrapper<\/a><\/noindex> \u2014 mit vielen Beispielen.<\/li>\n<li>Eine Community, die Datenanalyse und -sammlung auf Reddit betreibt (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 ben\u00f6tigten Methoden existieren wahrscheinlich in der API. Dar\u00fcber hinaus sieht der Code kompakt und sauber aus; hier ist ein Beispiel f\u00fcr eine 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('Skipped %d MoreComments (%d comments)',\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 Tools zur Verpackung.<\/i><\/p>\n<p>Auch wenn wir hier den besten Fall haben, sollten wir dennoch eine Reihe wichtiger Faktoren aus der Realit\u00e4t ber\u00fccksichtigen:<\/p>\n<ul>\n<li>API-Limits \u2013 wir sind gezwungen, Daten in Batches abzurufen (wir m\u00fcssen zwischen den Anfragen warten usw.).<\/li>\n<li>Zeitaufwand f\u00fcr die Erfassung \u2013 f\u00fcr eine vollst\u00e4ndige Analyse und den Vergleich m\u00fcssen wir erheblich Zeit einplanen, damit der Spider durch das Subreddit l\u00e4uft.<\/li>\n<li>Der Bot muss auf einem Server laufen \u2013 Sie k\u00f6nnen ihn nicht einfach auf Ihrem Laptop starten, in Ihren Rucksack packen und mitnehmen. Daher habe ich alles auf einem VPS gestartet. Mit dem Promo-Code habrahabr10 kann man weitere 10% sparen.<\/li>\n<li>Physische Unzug\u00e4nglichkeit bestimmter Daten (die f\u00fcr Administratoren sichtbar sind oder zu kompliziert gesammelt werden) \u2013 das muss ber\u00fccksichtigt werden, nicht alle Daten k\u00f6nnen innerhalb eines angemessenen Zeitrahmens gesammelt werden.<\/li>\n<li>Netzwerkfehler: Die Arbeit mit dem Netzwerk ist schmerzhaft.<\/li>\n<li>Das sind echte, lebendige Daten \u2013 sie sind nie sauber.<\/li>\n<\/ul>\n<p>\nNat\u00fcrlich m\u00fcssen die genannten Nuancen in die Entwicklung eingeplant werden. Die konkreten Stunden\/Tage h\u00e4ngen von der Erfahrung in der Entwicklung oder der Arbeit an \u00e4hnlichen Aufgaben ab, dennoch sehen wir, dass es sich hier um eine rein ingenieurtechnische Aufgabe handelt, die keine zus\u00e4tzlichen Bewegungen zur L\u00f6sung erfordert \u2013 man kann alles sehr gut einsch\u00e4tzen, planen und umsetzen.<\/p>\n<h2>Vergleich der Hub-Sektionen<\/h2>\n<p>\nKommen wir zu einem interessanteren und nicht-triviale Fall, dem Vergleich von Streams und\/oder Sektionen des Hubs.<\/p>\n<p>\u00dcberpr\u00fcfen wir unsere Checkliste zur Komplexit\u00e4t \u2013 hier muss man, um jeden Punkt zu verstehen, schon ein wenig mit der Aufgabe interagieren und experimentieren.<\/p>\n<ul>\n<li>Zuerst denkt man, dass es eine API gibt, aber es gibt sie nicht. Ja, ja, Habr hat eine API, aber sie ist nur f\u00fcr Benutzer nicht zug\u00e4nglich (oder funktioniert vielleicht \u00fcberhaupt nicht).<\/li>\n<li>Danach f\u00e4ngt man einfach an, HTML zu parsen \u2013 \u201eimport requests\u201c, was k\u00f6nnte schon schiefgehen?<\/li>\n<li>Und wie parst man \u00fcberhaupt? Der einfachste und h\u00e4ufig verwendete Ansatz ist, \u00fcber die ID zu iterieren, wobei zu beachten ist, dass es nicht der effizienteste Weg ist und verschiedene F\u00e4lle behandelt werden m\u00fcssen \u2013 hier zum Beispiel die Dichte der echten IDs unter allen existierenden.\n<p><img decoding=\"async\" alt=\"Was kann im Bereich 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> Artikel.<\/i><\/li>\n<li>Rohdaten, die in HTML \u00fcber das Netzwerk gewickelt sind, sind l\u00e4stig. Zum Beispiel m\u00f6chten Sie die Bewertung eines Artikels sammeln und speichern: Sie extrahieren den Score aus dem HTML und entscheiden sich, ihn als Zahl f\u00fcr die weitere Verarbeitung zu speichern.\u00a0\n<p>1) int(score) wirft einen Fehler: da auf Habra minus, wie zum Beispiel in der Zeile \"\u20135\" \u2014 das ist ein kurzes Minuszeichen, kein Minuszeichen (\u00fcberraschend, oder?), musste der Parser irgendwann mit so einem schrecklichen Fix wiederbelebt werden.<\/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 kann sein, dass es keine Daten, Plus- oder Minuszeichen gibt (wie wir oben in der Funktion check_date sehen k\u00f6nnen, kam das vor).<\/p>\n<p>2) Unescaped Sonderzeichen \u2014 sie werden kommen, man muss vorbereitet sein.<\/p>\n<p>3) Die Struktur \u00e4ndert sich je nach Art des Beitrags.<\/p>\n<p>4) \u00c4ltere Beitr\u00e4ge k\u00f6nnen eine **seltsame Struktur** haben.<\/li>\n<li>Im Grunde genommen m\u00fcssen Fehlerbehandlungen und das, was passieren kann oder nicht, behandelt werden. Man kann nicht sicher vorhersagen, was schiefgehen wird und wie die Struktur anders sein k\u00f6nnte und wo etwas ausf\u00e4llt \u2014 man muss es einfach ausprobieren und die Fehler ber\u00fccksichtigen, die der Parser auswirft.<\/li>\n<li>Dann verstehen Sie, dass Sie in mehreren Threads parsen m\u00fcssen, sonst dauert das Parsen in einem einzigen Thread \u00fcber 30 Stunden (das ist die reine Ausf\u00fchrungszeit eines bereits funktionierenden einheitlichen 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 dies irgendwann zu einem solchen Schema:<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Was kann im Bereich Data Science schiefgehen? Datensammlung.\" src=\"\/wp-content\/uploads\/2020\/07\/9ad1853f3ee2c9321ee9f1a5e3efea7d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZusammengefasst die Checkliste nach Schwierigkeit:<\/p>\n<ul>\n<li>Arbeiten mit dem Netzwerk und Parsen von HTML mit Iteration und Durchlauf nach ID.<\/li>\n<li>Dokumente mit unterschiedlicher Struktur.<\/li>\n<li>Es gibt viele Stellen, an denen der Code leicht fehlschlagen kann.<\/li>\n<li>Es ist notwendig, || Code zu schreiben.<\/li>\n<li>Die ben\u00f6tigte Dokumentation, Codebeispiele und\/oder eine Community fehlen.<\/li>\n<\/ul>\n<p>\nDie Sch\u00e4tzung der Zeit f\u00fcr diese Aufgabe wird 3-5 mal h\u00f6her sein als f\u00fcr 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. F\u00fcr mich war er genau deshalb interessant, weil er auf den ersten Blick ziemlich trivial aussieht, aber das ganz und gar nicht ist \u2014 sobald man mit einem Stock darauf zeigt.<\/p>\n<p>Es beginnt mit unserer Schwierigkeit-Checkliste und wir werden feststellen, dass viele von ihnen viel komplizierter sind, als sie zun\u00e4chst erscheinen:<\/p>\n<ul>\n<li>Das API existiert, aber es fehlen fast vollst\u00e4ndig die ben\u00f6tigten Funktionen.<\/li>\n<li>F\u00fcr bestimmte Funktionen muss man per E-Mail um Zugang bitten, also ist die Gew\u00e4hrung des Zugangs nicht sofort.<\/li>\n<li>Die Dokumentation ist schrecklich (beginnend damit, dass \u00fcberall russische und englische Begriffe inkonsistent vermischt werden \u2014 manchmal muss man einfach raten, was von einem erwartet wird) und mehr noch, sie ist designtechnisch ungeeignet, um Daten zu sammeln, zum Beispiel <noindex><a rel=\"nofollow\" href=\"https:\/\/apiok.ru\/dev\/methods\/rest\/discussions\/discussions.getComments\">die gew\u00fcnschte Funktion<\/a><\/noindex>.<\/li>\n<li>Erfordert eine Session in der Dokumentation, benutzt sie jedoch in der Praxis nicht \u2014 es gibt keine M\u00f6glichkeit, alle Feinheiten der API-Modi zu verstehen, au\u00dfer durch Herumprobieren und Hoffen, dass irgendetwas funktioniert.<\/li>\n<li>Es fehlen Beispiele und eine Community, der einzige Anhaltspunkt zur Informationssammlung ist ein kleiner <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/alternativshik\/python-odnoklassniki\">Wrapper<\/a><\/noindex> in Python (ohne viele Anwendungsbeispiele).<\/li>\n<li>Die sinnvollste Option scheint Selenium zu sein, da viele ben\u00f6tigte Daten gesperrt sind.<br \/>\n1) Das hei\u00dft, es erfolgt eine Authentifizierung \u00fcber einen fiktiven Benutzer (und manuelle Registrierung).<\/p>\n<p>2) Allerdings gibt es mit Selenium keine Garantien f\u00fcr korrekte und wiederholbare Funktionalit\u00e4t (zumindest im Fall von ok.ru genau).<\/p>\n<p>3) Die Seite ok.ru enth\u00e4lt JavaScript-Fehler und verh\u00e4lt sich manchmal seltsam und inkonsistent.<\/p>\n<p>4) Man muss sich mit Pagination, dem Nachladen von Elementen usw. besch\u00e4ftigen\u2026<\/p>\n<p>5) API-Fehler, die der Wrapper zur\u00fcckgibt, m\u00fcssen umst\u00e4ndlich bearbeitet werden, zum Beispiel so (ein St\u00fcck experimentellen Codes):<\/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, den \u00dcberblick \u00fcber bereits verarbeitete Diskussionen zu behalten\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 Lieblingsfehler war:<\/p>\n<p><code>OdnoklassnikiError(\"Fehler(code: 'None', Beschreibung: 'HTTP-Fehler', Methode: 'discussions.getComments', Parameter: \u2026)\")<\/code><\/p>\n<p>6) Letztendlich scheint die Kombination aus Selenium + API die rationalste L\u00f6sung zu sein.<\/li>\n<li>Es ist notwendig, den Zustand zu erhalten und das System neu zu starten, viele Fehler zu verarbeiten, einschlie\u00dflich inkonsistentem Verhalten der Website \u2014 dabei handelt es sich um Fehler, die sich nur schwer vorstellen lassen (es sei denn, man programmiert professionell Parser).<\/li>\n<\/ul>\n<p>\nDie gesch\u00e4tzte Zeit f\u00fcr diese Aufgabe wird 3-5 mal h\u00f6her sein als f\u00fcr das Sammeln von Daten von Habr. Obwohl wir beim Habr einen direkten Ansatz mit HTML-Parsen anwenden, k\u00f6nnen wir bei ok.ru an kritischen Stellen mit der API arbeiten.<\/p>\n<h2>Das DBMS Tarantool ist ein attraktives, zukunftstr\u00e4chtiges Produkt zur Erstellung von hochbelasteten Anwendungen.<\/h2>\n<p>\nEgal, wie sehr Sie von Ihnen eine Einsch\u00e4tzung der Fristen \u201evor Ort\u201c verlangen (wir haben schlie\u00dflich heute Planung!), ist es praktisch nie m\u00f6glich, die Ausf\u00fchrungszeit auch nur ansatzweise ohne Analyse der Aufgabendetails qualitativ zu bewerten. <\/p>\n<p>Wenn wir etwas philosophischer sprechen, dann passen Bewertungsstrategien im Agile-Bereich gut zu ingenieurtechnischen Aufgaben, aber bei experimentelleren und in gewissem Sinne \u201ekreativen\u201c und forschenden Aufgaben, also solchen, die weniger vorhersehbar sind, treten Schwierigkeiten auf, wie in den Beispielen, die wir hier behandelt haben. <\/p>\n<p>Nat\u00fcrlich ist das Sammeln von Daten ein anschauliches Beispiel \u2013 normalerweise scheint diese Aufgabe unglaublich einfach und technisch unkompliziert zu sein, und genau in den Details versteckt sich hier oft der Teufel. An dieser Aufgabe l\u00e4sst sich das gesamte Spektrum m\u00f6glicher Varianten aufzeigen, was schiefgehen k\u00f6nnte und wie sehr die Arbeit sich verz\u00f6gern kann. <\/p>\n<p>Wenn man die Anforderungen an die Aufgabe oberfl\u00e4chlich betrachtet, ohne zus\u00e4tzliche Experimente, scheinen Reddit und OK \u00e4hnlich zu sein: Es gibt eine API, einen Python-Wrapper, aber im Grunde genommen ist der Unterschied riesig. Nach diesen Kriterien sieht das Parsen von Habr komplizierter aus als OK \u2013 in der Praxis ist es jedoch genau umgekehrt, und genau das kann durch einfache Experimente zur Analyse der Aufgabenparameter herausgefunden werden.<\/p>\n<p>Nach meiner Erfahrung ist der effektivste Ansatz eine grobe Sch\u00e4tzung der Zeit, die Sie f\u00fcr die eigentliche Voranalyse, einfache erste Experimente und das Lesen der Dokumentation ben\u00f6tigen \u2013 diese erm\u00f6glichen es Ihnen, eine genaue Sch\u00e4tzung f\u00fcr die gesamte Arbeit abzugeben. In den Begriffen der beliebten Agile-Methodologie bitte ich darum, ein Ticket f\u00fcr \u201eBewertung der Aufgabenparameter\u201c zu erstellen, auf dessen Grundlage ich eine Sch\u00e4tzung abgeben kann, was im Rahmen des \u201eSprints\u201c machbar ist, sowie eine genauere Sch\u00e4tzung f\u00fcr jede Aufgabe.<\/p>\n<p>Daher scheint der effektivste Ansatz ein Argument zu sein, das einem \u201enicht-technischen\u201c Spezialisten zeigt, wie stark die Zeit und die Ressourcen je nach den Parametern variieren werden, die noch bewertet werden m\u00fcssen.<\/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 im Bereich 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 5.0.2 - aioseo.com -->\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) 5.0.2\" \/>\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: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 mit Data Science schiefgehen? Datensammlung | ProHoster","description":"","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: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":{"focus":[],"additional":[]},"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":"2026-08-11 12:50:12","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"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}]}}