{"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\/et\/blog\/administrirovanie\/chto-mozhet-pojti-ne-tak-s-data-science-sbor-dannyh","title":{"rendered":"Mis v\u00f5ib Data Science'iga valesti minna? Andmete kogumine","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=\"Mis v\u00f5ib Data Science&#039;iga valesti minna? Andmete kogumine\" src=\"\/wp-content\/uploads\/2020\/07\/49fb91fc3e45754e437b2c1fc4fec12f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\nT\u00e4nap\u00e4eval on olemas 100500 Data Science'i kursust ja on ammu teada, et enim raha saab teenida just Data Science'i kursustega (miks kaevata, kui saab labidaid m\u00fc\u00fca?). Nende kursuste peamine miinus on see, et need ei oma mitte midagi pistmist reaalse t\u00f6\u00f6ga: keegi ei anna teile katkematuid, t\u00f6\u00f6deldud andmeid vajaliku formaadina. Ja kui te kursustega l\u00f5petate ja hakkate lahendama t\u00f5elist probleemi, selguvad palju n\u00fcansse.<\/p>\n<p>Seet\u00f5ttu alustame m\u00e4rkmike seeriat \"Mis v\u00f5ib Data Science'iga valesti minna\", mis on p\u00f5hinenud minu, minu s\u00f5prade ja kolleegide tegelikel juhtumitel. Vaatame reaalseid n\u00e4iteid t\u00fc\u00fcpilistest Data Science'i \u00fclesannetest: kuidas see tegelikult k\u00e4ib. Alustame t\u00e4na andmete kogumise \u00fclesandega.<\/p>\n<p>Ja esimene asi, millele inimesed, kes hakkavad t\u00f6\u00f6tama reaalsete andmetega, takerduvad, on selle samade meie jaoks asjakohaste andmete kogumine. Selle artikli peamine s\u00f5num:<\/p>\n<blockquote><p><b>Me alahindame s\u00fcsteemselt aega, ressursse ja pingutusi andmete kogumiseks, puhastamiseks ja ettevalmistamiseks.<\/b><\/p><\/blockquote>\n<p>\nJa k\u00f5ige t\u00e4htsam, arutame, mida teha, et seda v\u00e4ltida.<\/p>\n<p>Erinevate hinnangute kohaselt kulub andmete puhastamisele, t\u00f6\u00f6tlemisele, omaduste inseneerimisele jne 80-90% ajast, samas kui anal\u00fc\u00fcsile vaid 10-20%, kuigi praktiliselt kogu \u00f5ppeaine keskendub ainult anal\u00fc\u00fcsile.<\/p>\n<p>Vaatame, kuidas t\u00fc\u00fcpiline lihtne anal\u00fc\u00fcs \u00fclesanne k\u00e4ib kolmes variandis ja n\u00e4eme, millised v\u00f5ivad olla \"leebed asjaolud\".<\/p>\n<p>Ja n\u00e4iteks vaatame taas sarnaseid andmete kogumise \u00fclesande variatsioone ja v\u00f5rreldes kogukondi:<\/p>\n<ol>\n<li>Kahest Redditi subreddidist<\/li>\n<li>Kahest Habra osast<\/li>\n<li>Kahest Klassikaaslaste grupist<\/li>\n<\/ol>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Teoreetiline l\u00e4henemine<\/h2>\n<p>\nAva veebileht ja loe n\u00e4iteid, kui on selge, pane paar tundi lugemiseks, paar tundi koodi n\u00e4idetele ja t\u00f5rkeotsingule. Lisa paar tundi kogumisele. Lisa paar tundi varuks (korda kahel ja lisa N tundi).<\/p>\n<p><b>Peamine punkt: ajahinnang p\u00f5hineb oletustel ja arvamistel selle kohta, kui kaua see aega v\u00f5tab.<\/b><\/p>\n<p>Aja anal\u00fc\u00fcsi alustamiseks on vajalik hinnata j\u00e4rgmisi parameetreid tingimuslikuks \u00fclesandeks, nagu eespool kirjeldatud:<\/p>\n<ul>\n<li>Mis on andmete maht ja kui palju tuleb f\u00fc\u00fcsiliselt koguda (*vt allpool*).<\/li>\n<li>Kui kaua v\u00f5tab \u00fche salvestuse kogumine ja kui kaua tuleb oodata, enne kui saab koguda teise.<\/li>\n<li>Koodide kirjutamise kinnitamine, mis salvestab oleku ja alustab uuesti, kui (ja mitte kui) k\u00f5ik kukub.<\/li>\n<li>Selgitada v\u00e4lja, kas meil on vaja autentimist ja h\u00f5lmata API-juurdep\u00e4\u00e4su saamise aega.<\/li>\n<li>Logige veateateid andmete keerukuse funktsioonina - hinnake konkreetse \u00fclesande alusel: struktuur, mitu muundurit, mida ja kuidas ekstrakteerime.<\/li>\n<li>Hinnake v\u00f5rgu vigu ja probleemid projekti ebatavalise k\u00e4itumise t\u00f5ttu.<\/li>\n<li>Hinnake, kas vajalikud funktsioonid on dokumentatsioonis olemas ja kui ei, siis kui palju ja milliseid lahendusi on vaja.<\/li>\n<\/ul>\n<p>\nOluline on see, et aja hindamiseks peate tegelikult kulutama aega ja vaeva \u00ablahingu uurimiseks\u00bb - ainult siis on teie planeerimine adekvaatne. Seet\u00f5ttu, kui teid surutakse \u00fctlema \u00abkui palju aega on vaja andmete kogumiseks\u00bb - leidke aega esialgseks anal\u00fc\u00fcsiks ja argumenteerige, et aeg varieerub s\u00f5ltuvalt \u00fclesande tegelikest parameetritest.<\/p>\n<p>Ja n\u00fc\u00fcd n\u00e4itame konkreetseid n\u00e4iteid, kus sellised parameetrid muudavad.<\/p>\n<p><b>Oluline punkt: hindamine p\u00f5hineb v\u00f5tmetegurite anal\u00fc\u00fcsil, mis m\u00f5jutavad t\u00f6\u00f6 mahtu ja keerukust.<\/b><\/p>\n<p>Hindamine, mis p\u00f5hineb oletustel - see on hea l\u00e4henemine, kui funktsionaalsed elemendid on piisavalt v\u00e4ikesed ja tegureid, mis v\u00f5ivad \u00fclesande struktuuri olulisel m\u00e4\u00e4ral m\u00f5jutada, ei ole liiga palju. Kuid paljude Data Science'i \u00fclesannete puhul muutub selliseid tegureid \u00e4\u00e4rmiselt palju ja selline l\u00e4henemine muutub ebapiisavaks.<\/p>\n<h2>Redditi kogukondade v\u00f5rdlemine<\/h2>\n<p>\nAlustame k\u00f5ige lihtsama juhtumiga (kuidas hiljem selgub). \u00dcldiselt, kui olla t\u00e4iesti aus, on meie ees praktiliselt ideaalne juhtum, kontrollime meie keerukuse kontrollnimekirja:<\/p>\n<ul>\n<li>On olemas korras, arusaadav ja dokumenteeritud API.<\/li>\n<li>E \u00e4\u00e4retult lihtne ja peamine, et token saadakse automaatselt.<\/li>\n<li>Jah <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/praw-dev\/praw\">python wrapper<\/a><\/noindex> \u2014 palju n\u00e4idiseid.<\/li>\n<li>Kogukond, mis tegeleb andmete anal\u00fc\u00fcsi ja kogumisega Redditis (kuni YouTube'i videoteni, mis selgitavad, kuidas kasutada python wrapper'it) <noindex><a rel=\"nofollow\" href=\"https:\/\/www.programcreek.com\/python\/example\/86599\/praw.Reddit\">n\u00e4iteks siin<\/a><\/noindex>.<\/li>\n<li>Meie vajalikud meetodid t\u00f5en\u00e4oliselt eksisteerivad API-s. Veelgi enam, kood n\u00e4eb v\u00e4lja kompaktne ja puhas, allpool on n\u00e4ide funktsioonist, mis kogub postituste kommentaare.<\/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>V\u00f5etud <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/timendum\/reddit-utilities\/blob\/master\/thread-export.py\">selle<\/a><\/noindex> mugavuste utiliitide valik.<\/i><\/p>\n<p>Kuigi meil on parim v\u00f5imalik olukord, tuleb siiski arvesse v\u00f5tta mitmeid olulisi tegureid reaalsest elust:<\/p>\n<ul>\n<li>API piirangud \u2014 oleme sunnitud andmeid partiide kaupa v\u00f5tma (ootama p\u00e4ringute vahel jne).<\/li>\n<li>Kogumise aeg \u2014 p\u00f5hjalikuks anal\u00fc\u00fcsiks ja v\u00f5rdlemiseks peab arvestama m\u00e4rkimisv\u00e4\u00e4rset aega, et \u00e4mblik saaks alajaotuse l\u00e4bi vaadata.<\/li>\n<li>Pott peab t\u00f6\u00f6tama serveris \u2014 te ei saa seda lihtsalt s\u00fclearvutisse k\u00e4ivitada, seljakotti panna ja asju ajama minna. Seet\u00f5ttu jooksutasin k\u00f5ik VPS-is. Kasutades kupongi habrahabr10, saate s\u00e4\u00e4sta veel 10% hinnast.<\/li>\n<li>M\u00f5nede andmete f\u00fc\u00fcsiline k\u00e4ttesaamatus (need on n\u00e4htavad administraatoritele v\u00f5i liiga keerulised koguda) \u2014 seda tuleb arvesse v\u00f5tta, mitte k\u00f5ik andmed ei pruugi normaalse ajaga kergesti k\u00e4tte saada.<\/li>\n<li>V\u00f5rgut\u00f6\u00f6 vead: t\u00f6\u00f6tamine v\u00f5rgus \u2014 see on piin.<\/li>\n<li>Need on elavad t\u00f5elised andmed \u2014 need ei ole kunagi puhtad.<\/li>\n<\/ul>\n<p>\nMuidugi tuleb arvesse v\u00f5tta n\u00e4idatud n\u00fcansse arendusse. Konkreetne tundide\/p\u00e4evade arv s\u00f5ltub arenduse kogemusest v\u00f5i sarnaste \u00fclesannete t\u00e4itmise kogemusest, kuid me n\u00e4eme, et see \u00fclesanne on rangelt inseneritehniline ega n\u00f5ua t\u00e4iendavaid pingutusi lahendamiseks \u2014 k\u00f5ike saab v\u00e4ga h\u00e4sti hinnata, \u00fcles kirjutada ja teha.<\/p>\n<h2>Habrasektsioonide v\u00f5rdlemine<\/h2>\n<p>\nLiigume edasi huvitavama ja mittetriviaalsete juhudeni, v\u00f5rreldes vooge ja\/v\u00f5i Habrasektsioone.<\/p>\n<p>Kontrollime meie keerukuse kontrollnimekirja \u2014 siin, et m\u00f5ista iga punkti, tuleb veidi katsetada \u00fclesande ja eksperimenteerida.<\/p>\n<ul>\n<li>Esmalt arvate, et API on olemas, aga seda ei ole. Jah, Habril on API, kuid see ei ole kasutajatele juurdep\u00e4\u00e4setav (v\u00f5ib-olla ei t\u00f6\u00f6ta isegi \u00fcldse).<\/li>\n<li>Siis hakkate lihtsalt html-i parseerima \u2014 \"import requests\", mis v\u00f5ib valesti minna?<\/li>\n<li>Ja kuidas tegelikult parseerida? Lihtsaim ja k\u00f5ige sagedamini kasutatav l\u00e4henemine on ID-de kaupa iteratsioon, olgu \u00f6eldud, et see ei ole k\u00f5ige t\u00f5husam ja tuleb t\u00f6\u00f6delda erinevaid juhtumeid \u2014 siin on n\u00e4iteks t\u00f5eliste ID-de tihedus k\u00f5igi olemasolevate seas.\n<p><img decoding=\"async\" alt=\"Mis v\u00f5ib Data Science&#039;iga valesti minna? Andmete kogumine\" src=\"\/wp-content\/uploads\/2020\/07\/2c67fc14f672e92979edd617314210da.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>V\u00f5etud <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/218607\/\">selle<\/a><\/noindex> artiklist.<\/i><\/li>\n<li>Toorand andmed, mis on HTML-i sisse m\u00e4hitud \u00fcle v\u00f5rgu, on t\u00f5eline peavalu. N\u00e4iteks, kui soovite koguda ja salvestada artikli ratingit: l\u00f5ikate skoori HTML-ist v\u00e4lja ja otsustate selle edasise t\u00f6\u00f6tlemise jaoks numbrina salvestada.\u00a0\n<p>1) int(score) p\u00f5hjustab vea: kuna Habril on miinus, nagu n\u00e4iteks real \"\u20135\" \u2014 see on l\u00fchike \u00fctlemine, mitte miinusm\u00e4rk (\u00fcllatav, eks?), seet\u00f5ttu tuli mingil hetkel parser j\u00e4lle ellu tuua sellise kohutava lahendusega.<\/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>\nKuup\u00e4evade, plusside ja miinuste olemasolu v\u00f5ib \u00fcldse puududa (nagu me n\u00e4eme \u00fcleval funktsioonis check_date ja selliseid juhtumeid on olnud).<\/p>\n<p>2) Escapetumatud erim\u00e4rgid \u2014 need tulevad, peab olema valmis.<\/p>\n<p>3) Struktuur muutub s\u00f5ltuvalt postituse t\u00fc\u00fcbist.<\/p>\n<p>4) Vanad postitused v\u00f5ivad olla **veidra struktuuriga**.<\/li>\n<li>Sisuliselt tuleb veateate k\u00e4sitlemine ja see, mis v\u00f5ib v\u00f5i ei pruugi juhtuda, l\u00e4bi m\u00f5elda; ei saa kindlalt ennustada, mis l\u00e4heb valesti ja milline struktuur veel on ning kus midagi v\u00f5ib laguneda \u2014 tuleb lihtsalt proovida ja arvestada parsinud veaolukordadega.<\/li>\n<li>Siis m\u00f5istate, et tuleb l\u00f5imida mitme protsessi, vastasel juhul kulub \u00fche protsessiga parsimiseks \u00fcle 30 tunni (see on puhtalt t\u00f6\u00f6aja j\u00e4lgimisega seotud \u00fcheprotsessilise parsingu aeg, mis magab ja ei satu allapoole mingeid banne). <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/276383\/\">selle<\/a><\/noindex> artiklis viis see mingil hetkel sellise skeemini:<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Mis v\u00f5ib Data Science&#039;iga valesti minna? Andmete kogumine\" src=\"\/wp-content\/uploads\/2020\/07\/9ad1853f3ee2c9321ee9f1a5e3efea7d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKokkuv\u00f5tteks keerukuse kontrollnimekiri:<\/p>\n<ul>\n<li>T\u00f6\u00f6 v\u00f5rgu ja HTML-i parseerimisega, ID-de kaupa iteratsioon ja l\u00e4bimine.<\/li>\n<li>Dokumendid on heterogeense struktuuriga.<\/li>\n<li>Palju kohti, kus kood v\u00f5ib kergesti kokku kukkuda.<\/li>\n<li>On vajalik kirjutada || kood.<\/li>\n<li>Puuduvad vajalikud dokumendid, koodin\u00e4ited ja\/v\u00f5i kogukond.<\/li>\n<\/ul>\n<p>\nKonditsionaalne ajahinnang selle \u00fclesande jaoks on 3-5 korda suurem kui andmete kogumine Redditist.<\/p>\n<h2>V\u00f5rdlus klassikaaslaste gruppidega.<\/h2>\n<p>\nLiigume edasi huvitavamate tehniliste juhtumitega, mis on loetletud. Minu jaoks oli see huvitav just seet\u00f5ttu, et esmapilgul n\u00e4eb see v\u00e4lja piisavalt triviaalne, kuid see pole sugugi nii \u2014 niipea, kui te sellesse pulga torkate.<\/p>\n<p>Alustame meie keerukuse kontrollnimekirjast ja m\u00e4rkige, et paljud neist osutub oluliselt keerulisemaks, kui nad alguses n\u00e4ivad:<\/p>\n<ul>\n<li>API on olemas, kuid selles puuduvad peaaegu t\u00e4ielikult vajalikud funktsioonid.<\/li>\n<li>Teatud funktsioonide jaoks tuleb ligip\u00e4\u00e4su k\u00fcsida e-posti teel, see t\u00e4hendab, et ligip\u00e4\u00e4su andmine ei ole kohene.<\/li>\n<li>See dokumentatsioon on kohutav (alustame sellest, et segunevad vene ja ingliskeelsed terminid, t\u00e4iesti ebaj\u00e4rjekindlalt \u2014 m\u00f5nikord tuleb lihtsalt arvata, mida teilt kuskil soovitakse) ja veelgi enam, see ei sobi andmete saamiseks, n\u00e4iteks <noindex><a rel=\"nofollow\" href=\"https:\/\/apiok.ru\/dev\/methods\/rest\/discussions\/discussions.getComments\">vajaliku funktsiooni<\/a><\/noindex>.<\/li>\n<li>N\u00f5uab dokumentatsioonis seanssi, kuid tegelikkuses ei kasuta seda \u2014 ja puudub igasugune v\u00f5imalus k\u00f5iki API re\u017eiimide n\u00fcansse m\u00f5ista, v\u00e4lja arvatud kl\u00f5psamine ja lootmine, et midagi t\u00f6\u00f6tab.<\/li>\n<li>Puuduvad n\u00e4idised ja kogukond, ainus tugikoht teabe kogumiseks on v\u00e4ike <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/alternativshik\/python-odnoklassniki\">wrapper<\/a><\/noindex> Pythonis (ilma paljude kasutusn\u00e4idisteta).<\/li>\n<li>T\u00f6\u00f6tav variant tundub olevat Selenium, kuna paljud vajalikud andmed on lukustuse all.<br \/>\n1) See t\u00e4hendab, et autentimine toimub vale kasutaja kaudu (ja registreerimine k\u00e4sitsi).<\/p>\n<p>2) Siiski, Seleniumi kasutamisel puuduvad garantiid korrektseks ja korduvaks t\u00f6\u00f6ks (seda v\u00e4hemalt ok.ru puhul kindlasti).<\/p>\n<p>3) O\u041a.ru leht sisaldab JavaScripti vigu ja k\u00e4itub m\u00f5nikord kummaliselt ja ebaj\u00e4rjekindlalt.<\/p>\n<p>4) Tuleb tegeleda lehek\u00fclgede jagamisega, elementide laadimisega jne ...<\/p>\n<p>5) API vead, mis wrapper tagastab, tuleb v\u00f5imalikult painlikult t\u00f6\u00f6delda, n\u00e4iteks nii (katkend eksperimentaalsest koodist):<\/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#on m\u00f5istlik j\u00e4lgida juba t\u00f6\u00f6deldud arutelusid\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>\nMinu lemmikviga oli:<\/p>\n<p><code>OdnoklassnikiError(\"Error(code: 'None', description: 'HTTP error', method: 'discussions.getComments', params: \u2026)\")<\/code><\/p>\n<p>6) L\u00f5ppkokkuv\u00f5ttes tundub variant Selenium + API olema k\u00f5ige m\u00f5istlikum valik.<\/li>\n<li>On vajalik oleku s\u00e4ilitamine ja s\u00fcsteemi taask\u00e4ivitamine, paljude vigade t\u00f6\u00f6tlemine, sealhulgas saidi ebaj\u00e4rjekindel k\u00e4itumine \u2014 need vead on \u00fcsna keerulised ette kujutada (kui te peaksite professionaalselt kirjutama parsi, muidugi).<\/li>\n<\/ul>\n<p>\nSelle \u00fclesande ajakulu hinnang on 3-5 korda k\u00f5rgem kui andmete kogumine Habrist. Kuigi Habriga, kasutatakse mehaanilist l\u00e4henemist HTML-i p\u00e4ringutele, siis O\u041a puhul saame kriitilistes kohtades t\u00f6\u00f6tada API-ga.<\/p>\n<h2>J\u00e4reldused<\/h2>\n<p>\nKuidas te ei peaks hindama \u201ekohapeal\u201d (t\u00e4na on ju planeerimine!) mahuka andmet\u00f6\u00f6tlusprotsessi pipelaini, on t\u00e4itmise aeg praktiliselt kunagi isegi kvaliteetselt hindamiseks v\u00f5imalik, ilma \u00fclesande parameetrite anal\u00fc\u00fcsita. <\/p>\n<p>Kui r\u00e4\u00e4kida natuke filosoofilisemalt, siis agiilsed hindamistrateegiad sobivad h\u00e4sti inseneriteemade jaoks, kuid katsetavates ja teatud m\u00f5ttes \u201eloomingulistes\u201d ja uurimuslikes \u00fclesannetes, st v\u00e4hem ennustatavates, tekivad raskused, nagu n\u00e4ites, mida oleme siin k\u00e4sitlenud. <\/p>\n<p>Muidugi, andmete kogumine on lihtsalt erksaks illustratiivseks n\u00e4iteks \u2014 tavaliselt tundub see \u00fclesanne uskumatult lihtne ja tehniliselt keeruline ning just detailides peitub tihti kurat. Ja just selle \u00fclesandega saame n\u00e4idata kogu spektrit v\u00f5imalike variantide kohta, mis v\u00f5ib valesti minna ja kui kaua t\u00f6\u00f6 t\u00e4pselt venida v\u00f5ib. <\/p>\n<p>Kui pilk visata \u00fclesande omadustele ilma t\u00e4iendavate katseteta, siis Reddit ja OK paistavad sarnased: on API, Python wrapper, kuid sisuliselt on erinevus tohutu. Kui hinnata nende parameetrite p\u00f5hjal, siis Hubberi kraapimine tundub keerulisem kui OK \u2014 kuid praktikas on see hoopis vastupidi ja just seda saab selgeks teha, kui l\u00e4bi viia lihtsad eksperimendid \u00fclesande parameetrite anal\u00fc\u00fcsimiseks.<\/p>\n<p>Minu kogemuste kohaselt on k\u00f5ige t\u00f5husam l\u00e4henemine umbkaudne ajahindamine, mis on vajalik eelanal\u00fc\u00fcsi ja lihtsate esialgsete katsete, dokumentatsiooni lugemise jaoks \u2014 just need v\u00f5imaldavad teil anda t\u00e4pset hinnangut kogu t\u00f6\u00f6 jaoks. Populaarse agiilse metoodika m\u00f5istetena \u2014 palun avage mulle pilet \u201e\u00fclesande parameetrite hindamiseks\u201d, mille p\u00f5hjal saan anda hinnangu sellele, mida on v\u00f5imalik teha \u201esprinti\u201d raames, ja anda t\u00e4psema hinnangu iga \u00fclesande kohta.<\/p>\n<p>Seet\u00f5ttu n\u00e4ib k\u00f5ige t\u00f5husam olevat argumendina n\u00e4idata \u201emitte tehnilisele\u201d spetsialistile, kui palju varieerub aeg ja ressursid vastavalt parameetritele, mida tuleb veel hinnata.<\/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=\"Mis v\u00f5ib Data Science&#039;iga valesti minna? Andmete kogumine\" src=\"\/wp-content\/uploads\/2020\/07\/2ca567a078c8500d37dfcf982e76252c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Allikas: <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.1.1 - 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\/et\/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.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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\udd47Mis v\u00f5ib Data Science'i puhul valesti minna? Andmete kogumine | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/chto-mozhet-pojti-ne-tak-s-data-science-sbor-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/89206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=89206"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/89206\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/89207"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=89206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=89206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=89206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}