{"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\/da\/blog\/administrirovanie\/chto-mozhet-pojti-ne-tak-s-data-science-sbor-dannyh","title":{"rendered":"Hvad kan g\u00e5 galt med Data Science? Indsamling af data","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=\"Hvad kan g\u00e5 galt med Data Science? Indsamling af data\" src=\"\/wp-content\/uploads\/2020\/07\/49fb91fc3e45754e437b2c1fc4fec12f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\nI dag findes der utallige kurser i Data Science, og det er velkendt, at den st\u00f8rste indtjening inden for Data Science ofte kommer fra netop Data Science-kurser (hvorfor grave, n\u00e5r man kan s\u00e6lge spader?). Den prim\u00e6re ulempe ved disse kurser er, at de ikke har noget med det virkelige arbejde at g\u00f8re: Ingen vil give dig rene, behandlede data i det \u00f8nskede format. Og n\u00e5r du afslutter dit kursus og begynder at tackle en \u00e6gte opgave, dukker der mange nuancer op.<\/p>\n<p>Derfor starter vi en r\u00e6kke noter ved navn \"Hvad kan g\u00e5 galt med Data Science\", baseret p\u00e5 virkelige h\u00e6ndelser, der er sket for mig, mine venner og kolleger. Vi vil analysere typiske Data Science-opgaver med virkelige eksempler: s\u00e5dan foreg\u00e5r det faktisk. Vi starter i dag med dataindsamlingsopgaven.<\/p>\n<p>Og det f\u00f8rste, folk st\u00f8der p\u00e5, n\u00e5r de begynder at arbejde med rigtige data, er faktisk at indsamle de relevante data. Den centrale pointe i denne artikel:<\/p>\n<blockquote><p><b>Vi undervurderer systematisk tid, ressourcer og indsats kr\u00e6vet til indsamling, rensning og forberedelse af data.<\/b><\/p><\/blockquote>\n<p>\nOg vigtigst af alt, vi vil diskutere, hvad der kan g\u00f8res for at undg\u00e5 dette.<\/p>\n<p>If\u00f8lge forskellige vurderinger tager rensning, transformation, data processing, feature engineering osv. 80-90% af tiden, mens analysen tager 10-20%, mens n\u00e6sten alt undervisningsmaterialet udelukkende fokuserer p\u00e5 analysen.<\/p>\n<p>Lad os se p\u00e5 en typisk simpel analytisk opgave i tre versioner og se, hvilke \"formildende omst\u00e6ndigheder\" der kan v\u00e6re.<\/p>\n<p>Og som eksempel vil vi igen se p\u00e5 lignende variationer af dataindsamlingsopgaven og sammenligning af f\u00e6llesskaber for:<\/p>\n<ol>\n<li>To subreddits p\u00e5 Reddit<\/li>\n<li>To sektioner p\u00e5 Habr<\/li>\n<li>To grupper p\u00e5 Odnoklassniki<\/li>\n<\/ol>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>En hypotetisk tilgang i teorien<\/h2>\n<p>\n\u00c5bne hjemmesiden og l\u00e6se eksempler, hvis det giver mening, afs\u00e6tte et par timer til l\u00e6sning, et par timer til at kode efter eksemplerne og debugge. Tilf\u00f8j et par timer til indsamling. L\u00e6g nogle timer til overs (gang med to og tilf\u00f8j N timer).<\/p>\n<p><b>Det centrale punkt: tidsvurderingen er baseret p\u00e5 antagelser og g\u00e6tterier om, hvor lang tid det vil tage.<\/b><\/p>\n<p>Analysen af tiden b\u00f8r starte med vurderingen af f\u00f8lgende parametre for den hypotetiske opgave, som beskrevet ovenfor:<\/p>\n<ul>\n<li>Hvad er datast\u00f8rrelsen, og hvor meget skal der indsamles fysisk (*se nedenfor*).<\/li>\n<li>Hvor lang tid tager det at samle en post, og hvor lang tid skal der ventes, inden man kan samle den anden.<\/li>\n<li>Implementer en kode, der gemmer tilstand og genstarter, n\u00e5r (og ikke hvis) alt g\u00e5r ned.<\/li>\n<li>Find ud af, om vi har brug for godkendelse, og planl\u00e6g tid til at f\u00e5 adgang via API.<\/li>\n<li>Planl\u00e6g antallet af fejl som en funktion af datakompleksitet \u2014 vurd\u00e9r det ud fra den specifikke opgave: struktur, hvor mange transformationer, hvad og hvordan vi udtr\u00e6kker.<\/li>\n<li>Planl\u00e6g netv\u00e6rksfejl og problemer med projektets uventede adf\u00e6rd.<\/li>\n<li>Vurder, om de n\u00f8dvendige funktioner er i dokumentationen, og hvis de ikke er, hvordan og hvor meget der kr\u00e6ves for en workaround.<\/li>\n<\/ul>\n<p>\nDet vigtigste for tidsvurderingen er, at du faktisk skal investere tid og kr\u00e6fter i \u00bbpr\u00f8vehandling\u00ab \u2014 kun da vil din planl\u00e6gning v\u00e6re passende. S\u00e5 selvom du bliver presset til at sige \u00bbhvor lang tid tager det at indsamle data\u00ab \u2014 find tid til en foranalyse og argument\u00e9r for, hvor meget tiden vil variere afh\u00e6ngigt af de reelle parametre for opgaven.<\/p>\n<p>Og nu vil vi demonstrere konkrete eksempler, hvor s\u00e5danne parametre vil \u00e6ndre sig.<\/p>\n<p><b>Det centrale punkt: vurderingen er baseret p\u00e5 analysen af n\u00f8glefaktorer, der p\u00e5virker omfanget og kompleksiteten af arbejdet.<\/b><\/p>\n<p>Vurdering baseret p\u00e5 g\u00e6ttelser er en god tilgang, n\u00e5r de funktionelle elementer er relativt sm\u00e5, og der ikke er s\u00e5 mange faktorer, der v\u00e6sentligt kan p\u00e5virke opbygningen af opgaven. Men i tilf\u00e6lde af en r\u00e6kke Data Science-opgaver bliver s\u00e5danne faktorer ekstremt mange, og denne tilgang bliver inad\u00e6kvat.<\/p>\n<h2>Sammenligning af Reddit-f\u00e6llesskaber<\/h2>\n<p>\nLad os starte med det enkleste tilf\u00e6lde (som senere vil vise sig). For at v\u00e6re helt \u00e6rlig, st\u00e5r vi over for et praktisk perfekt tilf\u00e6lde, lad os tjekke vores kompleksitetscheckliste:<\/p>\n<ul>\n<li>Der er en p\u00e6n, forst\u00e5elig og dokumenteret API.<\/li>\n<li>Meget enkelt, og vigtigst af alt, kan man automatisk generere en token.<\/li>\n<li>Der er <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/praw-dev\/praw\">python wrapper<\/a><\/noindex> \u2014 med en masse eksempler.<\/li>\n<li>F\u00e6llesskabet, der arbejder med dataanalyse og indsamling p\u00e5 Reddit (inklusive YouTube-videoer, der forklarer, hvordan man bruger python wrapper) <noindex><a rel=\"nofollow\" href=\"https:\/\/www.programcreek.com\/python\/example\/86599\/praw.Reddit\">her for eksempel<\/a><\/noindex>.<\/li>\n<li>De n\u00f8dvendige metoder findes sandsynligvis i API'et. Desuden ser koden kompakt og ren ud, nedenfor et eksempel p\u00e5 en funktion, der samler kommentarer til et indl\u00e6g.<\/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>Udtaget fra <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/timendum\/reddit-utilities\/blob\/master\/thread-export.py\">denne<\/a><\/noindex> samlingen af nyttige v\u00e6rkt\u00f8jer til indpakning.<\/i><\/p>\n<p>Selvom vi har den bedste situation her, er der stadig flere vigtige faktorer fra det virkelige liv at overveje:<\/p>\n<ul>\n<li>API-limits \u2014 vi er n\u00f8dt til at hente data i batch (vente mellem anmodninger osv.).<\/li>\n<li>Indsamlingstid \u2014 for en fuld analyse og sammenligning skal der afs\u00e6ttes betydelig tid til, at spiders kan gennems\u00f8ge subreddit.<\/li>\n<li>Botten skal k\u00f8re p\u00e5 en server \u2014 du kan ikke bare starte den p\u00e5 din b\u00e6rbare, pakke den v\u00e6k i en rygs\u00e6k og tage af sted. Derfor k\u00f8rte jeg alt p\u00e5 en VPS. Med promokoden habrahabr10 kan du spare yderligere 10%.<\/li>\n<li>Fysisk utilg\u00e6ngelighed af nogle data (de er synlige for administratorer eller for sv\u00e6re at indsamle) \u2014 det skal tages i betragtning, ikke alle data kan i praksis indsamles inden for rimelig tid.<\/li>\n<li>Netv\u00e6rksfejl: arbejde med netv\u00e6rket er sv\u00e6rt.<\/li>\n<li>Dette er levende, rigtige data \u2014 de er ikke rene.<\/li>\n<\/ul>\n<p>\nSelvf\u00f8lgelig skal de n\u00e6vnte nuancer indt\u00e6nkes i udviklingen. De specifikke timer\/dage afh\u00e6nger af udviklingsoplevelsen eller erfaringen med lignende opgaver, men vi ser, at dette er en udelukkende ingeni\u00f8ropgave og ikke kr\u00e6ver yderligere indgreb for at l\u00f8se det \u2014 alt kan vurderes godt, nedskrives og gennemf\u00f8res.<\/p>\n<h2>Sammenligning af sektioner p\u00e5 Habr<\/h2>\n<p>\nLad os g\u00e5 videre til en mere interessant og ikke-triviel situation med sammenligning af str\u00f8mme og\/eller sektioner p\u00e5 Habr.<\/p>\n<p>Lad os tjekke vores kompleksitetstjekliste \u2014 her, for at forst\u00e5 hvert punkt, skal man allerede lege lidt med selve opgaven og eksperimentere.<\/p>\n<ul>\n<li>F\u00f8rst t\u00e6nker du, at der er et API, men det er der ikke. Ja, Habr har et API, men det er kun utilg\u00e6ngeligt for brugere (eller fungerer m\u00e5ske slet ikke).<\/li>\n<li>S\u00e5 begynder du bare at parse html \u2014 \u00abimport requests\u00bb, hvad kan g\u00e5 galt?<\/li>\n<li>Men hvordan parser man overhovedet? Den enkleste og mest brugte tilgang er at iterere over ID'er, men det er ikke den mest effektive, og man bliver n\u00f8dt til at h\u00e5ndtere forskellige tilf\u00e6lde \u2014 for eksempel t\u00e6thed af rigtige ID'er blandt alle eksisterende.\n<p><img decoding=\"async\" alt=\"Hvad kan g\u00e5 galt med Data Science? Indsamling af data\" src=\"\/wp-content\/uploads\/2020\/07\/2c67fc14f672e92979edd617314210da.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Udtaget fra <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/218607\/\">denne<\/a><\/noindex> af artiklen.<\/i><\/li>\n<li>R\u00e5data indhyllet i HTML over nettet er en smerte. For eksempel \u00f8nsker du at indsamle og gemme en artikels vurdering: du har udtrukket score fra HTML'en og besluttet at gemme den som et tal til videre behandling:\u00a0\n<p>1) int(score) giver en fejl: da minus er p\u00e5 Habr, som i strengen \"\u20135\" \u2014 det er et kort bindestreg og ikke et minus-tegn (overraskende, ikke?), s\u00e5 p\u00e5 et tidspunkt m\u00e5tte jeg v\u00e6kke parseren til live med s\u00e5dan en frygtelig l\u00f8sning.<\/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>\nDer kan slet ikke v\u00e6re datoer, plusser eller minusser (som vi ser ovenfor i funktionen check_date, og det har v\u00e6ret tilf\u00e6ldet).<\/p>\n<p>2) Uescaped specialtegn - de vil komme, man skal v\u00e6re forberedt.<\/p>\n<p>3) Strukturen \u00e6ndrer sig afh\u00e6ngigt af postenstype.<\/p>\n<p>4) Gamle indl\u00e6g kan have **m\u00e6rkelig struktur**.<\/li>\n<li>I bund og grund skal man h\u00e5ndtere fejlbehandling og hvad der kan eller ikke kan ske, og man kan ikke forudsige med sikkerhed, hvad der vil g\u00e5 galt, og hvordan strukturen kan v\u00e6re, og hvad der kan falde fra hinanden - man m\u00e5 bare pr\u00f8ve og tage hensyn til de fejl, som parseren kaster.<\/li>\n<li>Derefter indser du, at du skal parse i flere tr\u00e5de ellers vil parsing i \u00e9n tr\u00e5d tage 30+ timer (det er ren k\u00f8retid for den nuv\u00e6rende enkelttr\u00e5d parser, der sover og ikke rammer under nogen bans). I <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/276383\/\">denne<\/a><\/noindex> artikkelen f\u00f8rte dette p\u00e5 et tidspunkt til en lignende ordning:<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Hvad kan g\u00e5 galt med Data Science? Indsamling af data\" src=\"\/wp-content\/uploads\/2020\/07\/9ad1853f3ee2c9321ee9f1a5e3efea7d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nS\u00e5 checklisten for kompleksitet:<\/p>\n<ul>\n<li>Arbejdet med netv\u00e6rket og parsing af HTML med iteration og looping over ID.<\/li>\n<li>Dokumenter af ikke-homogen struktur.<\/li>\n<li>Mange steder, hvor koden nemt kan g\u00e5 ned.<\/li>\n<li>Det er n\u00f8dvendigt at skrive || kode.<\/li>\n<li>Manglende n\u00f8dvendig dokumentation, eksempler p\u00e5 kode og\/eller et f\u00e6llesskab.<\/li>\n<\/ul>\n<p>\nDen betingede tidsvurdering for denne opgave vil v\u00e6re 3-5 gange h\u00f8jere end for indsamling af data fra Reddit.<\/p>\n<h2>Sammenligning af grupper p\u00e5 Odnoklassniki<\/h2>\n<p>\nLad os g\u00e5 videre til den mest teknisk interessante sag af dem, der er n\u00e6vnt. For mig var den interessant, fordi den ved f\u00f8rste \u00f8jekast ser temmelig triviel ud, men det viser sig slet ikke at v\u00e6re tilf\u00e6ldet - s\u00e5 snart du stikker en pind i den.<\/p>\n<p>Vi starter med vores kompleksitetscheckliste og bem\u00e6rker, at mange af dem vil v\u00e6re langt mere komplekse, end de ser ud ved f\u00f8rste \u00f8jekast:<\/p>\n<ul>\n<li>API'et eksisterer, men det mangler n\u00e6sten helt de n\u00f8dvendige funktioner.<\/li>\n<li>Til bestemte funktioner skal du anmode om adgang via e-mail, s\u00e5 adgangsudbydelsen er ikke \u00f8jeblikkelig.<\/li>\n<li>Den er forf\u00e6rdelig dokumenteret (for at begynde med, der blandes russiske og engelske termer overalt, og det er fuldst\u00e6ndig inkonsekvent \u2014 nogle gange skal du bare g\u00e6tte, hvad de vil have dig til at g\u00f8re et sted) og desuden er den ikke designet til at indsamle data, for eksempel, <noindex><a rel=\"nofollow\" href=\"https:\/\/apiok.ru\/dev\/methods\/rest\/discussions\/discussions.getComments\">den funktion, vi har brug for<\/a><\/noindex>.<\/li>\n<li>Den kr\u00e6ver session i dokumentationen, men i praksis bruger den ikke en \u2014 og der er ingen m\u00e5de at forst\u00e5 alle nuancerne i API-tilstandene p\u00e5, bortset fra at trykke p\u00e5 og h\u00e5be, at noget fungerer.<\/li>\n<li>Der mangler eksempler og et f\u00e6llesskab; den eneste st\u00f8ttepunkt til at samle information er en lille <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/alternativshik\/python-odnoklassniki\">wrapper<\/a><\/noindex> i Python (uden mange anvendelseseksempler).<\/li>\n<li>Den mest fungerende l\u00f8sning ser ud til at v\u00e6re Selenium, da mange de n\u00f8dvendige data er l\u00e5st.<br \/>\n1) Det vil sige, at der er autorisation gennem en fiktiv bruger (og manuel registrering).<\/p>\n<p>2) Men med Selenium er der ingen garantier for korrekt og gentagelig funktion (i hvert fald ikke i tilf\u00e6lde med ok.ru).<\/p>\n<p>3) Ok.ru-webstedet indeholder JavaScript-fejl og opf\u00f8rer sig nogle gange m\u00e6rkeligt og inkonsekvent.<\/p>\n<p>4) Du skal arbejde med paginering, indl\u00e6sning af elementer osv.\u2026<\/p>\n<p>5) API-fejl, som wrapper'en returnerer, skal du h\u00e5ndtere med n\u00f8dstrategier, for eksempel s\u00e5dan her (et stykke eksperimentel kode):<\/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#det giver mening at holde styr p\u00e5 allerede behandlede diskussioner\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>\nMin yndlingsfejl var:<\/p>\n<p><code>OdnoklassnikiError(\"Fejl(kode: 'None', beskrivelse: 'HTTP fejl', metode: 'discussions.getComments', parametre: \u2026)\")<\/code><\/p>\n<p>6) I sidste ende ser kombinationen af Selenium + API ud til at v\u00e6re den mest rationelle l\u00f8sning.<\/li>\n<li>Der er behov for tilstandens bevarelse og systemgenstart, behandling af mange fejl, herunder inkonsekvent opf\u00f8rsel fra webstedet \u2014 og disse fejl er ret sv\u00e6re at forestille sig (hvis du ikke professionelt skriver parsere, selvf\u00f8lgelig).<\/li>\n<\/ul>\n<p>\nDen omtrentlige tidsvurdering for denne opgave vil v\u00e6re 3-5 gange h\u00f8jere end for at indsamle data fra Habr. Selvom vi i tilf\u00e6lde af Habr bruger en brutal tilgang med HTML-parsing, kan vi i kritiske omr\u00e5der med OK arbejde med API.<\/p>\n<h2>Konklusioner<\/h2>\n<p>\nUanset hvor meget man end m\u00e5tte forlange en vurdering af tidsrammen \"p\u00e5 stedet\" (vi planl\u00e6gger trods alt i dag!), kan gennemf\u00f8relsen af et omfattende data pipeline-modul sj\u00e6ldent vurderes pr\u00e6cist uden en analyse af opgaveparametrene. <\/p>\n<p>Hvis man taler lidt mere filosofisk, s\u00e5 passer strategierne for vurdering i agile-retning godt til ingeni\u00f8ropgaver, men der opst\u00e5r vanskeligheder med mere eksperimentelle og p\u00e5 sin vis \"kreative\" og forskningsrelaterede opgaver, dvs. mindre forudsigelige, som i de eksempler vi har gennemg\u00e5et her. <\/p>\n<p>Selvf\u00f8lgelig er dataindsamling et tydeligt illustrativt eksempel \u2014 det virker som en helt simpel og teknisk ukompliceret opgave, og det er netop i detaljerne, at dyret ofte gemmer sig. Og det er i denne opgave, man kan se hele spektret af mulige variationer af, hvad der kan g\u00e5 galt, og hvor lang tid arbejdet faktisk kan tage. <\/p>\n<p>Ser man overfladisk p\u00e5 opgavekarakteristikaene uden yderligere eksperimenter, s\u00e5 ligner Reddit og OK hinanden: der er en API, en python wrapper, men i bund og grund er forskellen enorm. Hvis man vurderer ud fra disse parametre, ser det ud til, at parsing af Habr er mere kompleks end OK \u2014 men i praksis er det helt omvendt, og det kan man finde ud af ved at lave simple eksperimenter til analyse af opgaveparametrene.<\/p>\n<p>Efter min erfaring er den mest effektive tilgang en grov tidsvurdering for den indledende analyse og de f\u00f8rste enkle eksperimenter, l\u00e6sning af dokumentationen \u2014 det er disse, der vil g\u00f8re det muligt for dig at give en pr\u00e6cis vurdering af hele arbejdet. I termerne fra den popul\u00e6re agile metodologi beder jeg om at f\u00e5 oprettet en ticket til \"vurdering af opgaveparametre\", som jeg kan basere mine vurderinger af, hvad der er muligt at udf\u00f8re inden for et \"sprint\", og give en mere pr\u00e6cis vurdering for hver opgave.<\/p>\n<p>Derfor synes det mest effektivt at freml\u00e6gge et argument, der ville vise en \"ikke-teknisk\" specialist, hvor meget tiden og ressourcerne kan variere afh\u00e6ngigt af de parametre, der endnu skal vurderes.<\/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=\"Hvad kan g\u00e5 galt med Data Science? Indsamling af data\" src=\"\/wp-content\/uploads\/2020\/07\/2ca567a078c8500d37dfcf982e76252c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Kilde: <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.3 - 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\/da\/blog\/administrirovanie\/chto-mozhet-pojti-ne-tak-s-data-science-sbor-dannyh\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Hvad kan g\u00e5 galt med Data Science? Indsamling af data | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/chto-mozhet-pojti-ne-tak-s-data-science-sbor-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/89206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=89206"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/89206\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/89207"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=89206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=89206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=89206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}