{"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\/it\/blog\/administrirovanie\/chto-mozhet-pojti-ne-tak-s-data-science-sbor-dannyh","title":{"rendered":"Cosa pu\u00f2 andare storto con la Data Science? Raccolta dati","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=\"Cosa pu\u00f2 andare storto con la Data Science? Raccolta dati\" src=\"\/wp-content\/uploads\/2020\/07\/49fb91fc3e45754e437b2c1fc4fec12f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\nOggi ci sono 100500 corsi di Data Science e \u00e8 gi\u00e0 noto che i corsi di Data Science sono il modo migliore per guadagnare nel campo: per quale motivo scavare quando puoi vendere pale? Il principale svantaggio di questi corsi \u00e8 che non hanno nulla a che fare con il lavoro reale: nessuno ti fornir\u00e0 dati puliti e lavorati nel formato corretto. E quando finisci il corso e inizi a affrontare un vero problema, emergono molte sfide.<\/p>\n<p>Per questo motivo, iniziamo una serie di articoli \"Cosa pu\u00f2 andare storto con il Data Science\", basati su eventi reali accaduti a me, ai miei amici e colleghi. Analizzeremo esempi concreti di compiti tipici di Data Science: come avviene realmente. Iniziamo oggi con la questione della raccolta dei dati.<\/p>\n<p>E il primo ostacolo che incontrano le persone che iniziano a lavorare con dati reali \u00e8 proprio la raccolta di questi dati pertinenti. Il messaggio chiave di questo articolo:<\/p>\n<blockquote><p><b>Sottovalutiamo sistematicamente il tempo, le risorse e gli sforzi necessari per raccogliere, pulire e preparare i dati.<\/b><\/p><\/blockquote>\n<p>\nE soprattutto, discuteremo cosa fare per evitare che ci\u00f2 accada.<\/p>\n<p>Secondo diverse stime, la pulizia, la trasformazione, il data processing, il feature engineering ecc. occupano l'80-90% del tempo, mentre l'analisi il 10-20%, mentre praticamente tutto il materiale didattico si concentra esclusivamente sull'analisi.<\/p>\n<p>Analizziamo come esempio tipico un semplice compito analitico in tre varianti e vediamo quali possono essere le \"circostanze aggravanti\".<\/p>\n<p>E per esempio, considereremo nuovamente variazioni simili del problema di raccolta dei dati e confronteremo le comunit\u00e0 per:<\/p>\n<ol>\n<li>Due sottoredditi di Reddit<\/li>\n<li>Due sezioni di Habr<\/li>\n<li>Due gruppi di Odnoklassniki<\/li>\n<\/ol>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Un approccio condizionale in teoria<\/h2>\n<p>\nApri il sito e leggi gli esempi; se \u00e8 chiaro, pianifica alcune ore per la lettura, alcune ore per il codice degli esempi e il debug. Aggiungi alcune ore per la raccolta. Aggiungi alcune ore di riserva (raddoppia e aggiungi N ore).<\/p>\n<p><b>Il punto chiave: la stima temporale si basa su supposizioni e congetture su quanto tempo ci vorr\u00e0.<\/b><\/p>\n<p>Inizia l'analisi del tempo stimando i seguenti parametri per il compito condizionale descritto sopra:<\/p>\n<ul>\n<li>Qual \u00e8 la dimensione dei dati e quanto fisicamente bisogna raccogliere (*vedi sotto*).<\/li>\n<li>Quanto tempo ci vuole per raccogliere un'unit\u00e0 di dati e quanto bisogna aspettare prima di poter raccogliere la successiva.<\/li>\n<li>Prevedere la scrittura del codice che mantiene lo stato e avvia il riavvio quando (e non se) tutto cade.<\/li>\n<li>Capire se abbiamo bisogno di autenticazione e prevedere il tempo di accesso tramite API.<\/li>\n<li>Prevedere il numero di errori come funzione della complessit\u00e0 dei dati \u2014 valutare in base a un compito specifico: struttura, quanti cambiamenti, cosa e come estraiamo.<\/li>\n<li>Prevedere errori di rete e problemi con comportamenti non standard del progetto.<\/li>\n<li>Valutare se le funzioni necessarie sono nella documentazione e, in caso contrario, quanto e come \u00e8 necessario per una soluzione alternativa.<\/li>\n<\/ul>\n<p>\nLa cosa pi\u00f9 importante per la valutazione del tempo \u00e8 che \u00e8 necessario investire realmente tempo e sforzi per una \"ricognizione\" \u2014 solo allora la tua pianificazione sar\u00e0 adeguata. Quindi, per quanto tu possa essere spinto a dire \"quanto tempo serve per raccogliere i dati\" \u2014 prenditi del tempo per un'analisi preliminare e giustifica quanto il tempo varier\u00e0 in base ai parametri reali del compito.<\/p>\n<p>E adesso mostreremo esempi concreti in cui tali parametri cambieranno.<\/p>\n<p><b>Punto chiave: la valutazione si basa sull'analisi dei fattori chiave che influenzano il volume e la complessit\u00e0 del lavoro.<\/b><\/p>\n<p>La valutazione basata su congetture \u00e8 un buon approccio quando gli elementi funzionali sono piuttosto piccoli e non ci sono molti fattori che possono influenzare in modo significativo la struttura del compito. Ma nel caso di diversi compiti di Data Science, tali fattori diventano estremamente numerosi e questo approccio diventa inadeguato.<\/p>\n<h2>Confronto delle comunit\u00e0 di Reddit<\/h2>\n<p>\nIniziamo dal caso pi\u00f9 semplice (come poi si dimostrer\u00e0). In realt\u00e0, se vogliamo essere completamente onesti, ci troviamo di fronte a un caso praticamente ideale, verifichiamo la nostra lista di controllo della complessit\u00e0:<\/p>\n<ul>\n<li>C'\u00e8 un'API chiara, comprensibile e documentata.<\/li>\n<li>Estremamente semplice e soprattutto, il token viene ottenuto automaticamente.<\/li>\n<li>C'\u00e8 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/praw-dev\/praw\">wrapper python<\/a><\/noindex> \u2014 con un sacco di esempi.<\/li>\n<li>La comunit\u00e0 che si occupa di analisi e raccolta di dati su Reddit (fino a video su YouTube che spiegano come utilizzare il wrapper python) <noindex><a rel=\"nofollow\" href=\"https:\/\/www.programcreek.com\/python\/example\/86599\/praw.Reddit\">ad esempio, ecco<\/a><\/noindex>.<\/li>\n<li>I metodi di cui abbiamo bisogno probabilmente esistono nell'API. Inoltre, il codice appare compatto e pulito, qui sotto un esempio di una funzione che raccoglie i commenti a un post.<\/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>Tratto da <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/timendum\/reddit-utilities\/blob\/master\/thread-export.py\">questo<\/a><\/noindex> selezioni di utilit\u00e0 convenienti per il wrapping.<\/i><\/p>\n<p>Nonostante siamo di fronte al miglior caso, \u00e8 comunque importante considerare una serie di fattori significativi della vita reale:<\/p>\n<ul>\n<li>Limiti API \u2014 dobbiamo raccogliere i dati a gruppi (fare delle pause tra le richieste, ecc.).<\/li>\n<li>Tempo di raccolta \u2014 per un'analisi e un confronto completi, sar\u00e0 necessario prevedere un tempo considerevole affinch\u00e9 il crawler possa passare attraverso il subreddit.<\/li>\n<li>Il bot deve funzionare su un server \u2014 non puoi semplicemente avviarlo sul portatile, metterlo nello zaino e andare in giro. Per questo ho avviato tutto su VPS. Con il codice promozionale habrahabr10 puoi risparmiare un ulteriore 10%.<\/li>\n<li>Inaccessibilit\u00e0 fisica di alcuni dati (visibili solo agli admin o raccolti in modo troppo complesso) \u2014 questo deve essere considerato, non tutti i dati possono essere raccolti in tempi ragionevoli.<\/li>\n<li>Errori di rete: lavorare con la rete \u00e8 una seccatura.<\/li>\n<li>Questi sono dati reali \u2014 non sono mai puri.<\/li>\n<\/ul>\n<p>\nCerto, \u00e8 necessario tenere conto di questi aspetti durante lo sviluppo. I tempi specifici dipendono dall'esperienza di sviluppo o dall'esperienza su compiti simili; tuttavia, possiamo notare che qui la questione \u00e8 puramente ingegneristica e non richiede ulteriori sforzi per la risoluzione: tutto pu\u00f2 essere valutato bene, dettagliato e realizzato.<\/p>\n<h2>Confronto delle sezioni di Habr<\/h2>\n<p>\nPassiamo a un caso pi\u00f9 interessante e non banale di confronto tra flussi e\/o sezioni di Habr.<\/p>\n<p>Controlliamo la nostra lista di controllo della complessit\u00e0: qui, per comprendere ogni punto, sar\u00e0 necessario esplorare un po' il compito stesso e sperimentare.<\/p>\n<ul>\n<li>Inizialmente pensi che esista un'API, ma non c'\u00e8. S\u00ec, Habr ha un'API, ma \u00e8 solo non disponibile per gli utenti (o potrebbe non funzionare affatto).<\/li>\n<li>Poi inizi semplicemente a parsificare l'html \u2014 \"import requests\", cosa potrebbe andare storto?<\/li>\n<li>E come si fa a parsificare? L'approccio pi\u00f9 semplice e comunemente usato \u00e8 iterare per ID, notiamo che non \u00e8 il pi\u00f9 efficiente e sar\u00e0 necessario gestire vari casi \u2014 per esempio, la densit\u00e0 degli ID reali tra tutti gli esistenti.\n<p><img decoding=\"async\" alt=\"Cosa pu\u00f2 andare storto con la Data Science? Raccolta dati\" src=\"\/wp-content\/uploads\/2020\/07\/2c67fc14f672e92979edd617314210da.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Tratto da <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/218607\/\">questo<\/a><\/noindex> articoli.<\/i><\/li>\n<li>I dati grezzi, incapsulati in HTML sulla rete, sono un problema. Ad esempio, vuoi raccogliere e salvare il punteggio di un articolo: hai estratto il punteggio dall'html e hai deciso di conservarlo come numero per ulteriore elaborazione:\u00a0\n<p>1) int(score) genera un errore: poich\u00e9 su Habr il segno meno \u00e8 rappresentato da un trattino corto, come nella stringa \"\u20135\" \u2014 questo non \u00e8 un segno meno (sorprendente, vero?), quindi a un certo punto \u00e8 stato necessario rianimare il parser con una correzione cos\u00ec orribile.<\/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>\nPotrebbe non esserci affatto un valore di data, pi\u00f9 o meno (come vediamo sopra nella funzione check_date, ed \u00e8 successo).<\/p>\n<p>2) I caratteri speciali non scappati arriveranno, bisogna essere pronti.<\/p>\n<p>3) La struttura cambia a seconda del tipo di post.<\/p>\n<p>4) I post pi\u00f9 vecchi potrebbero avere una **struttura strana**.<\/li>\n<li>In sostanza, la gestione degli errori e ci\u00f2 che pu\u00f2 o non pu\u00f2 accadere dovr\u00e0 essere gestita e non si pu\u00f2 prevedere con certezza cosa andr\u00e0 storto e come potrebbe essere la struttura e dove potrebbe andare in crisi - dovrai semplicemente provare e tenere conto degli errori che il parser lancia.<\/li>\n<li>Poi capisci che devi effettuare il parsing in pi\u00f9 thread altrimenti il parsing in uno solo richieder\u00e0 pi\u00f9 di 30 ore (questo \u00e8 solo il tempo di esecuzione di un parser monothread che sta dormendo e non rischia ban). In <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/276383\/\">questo<\/a><\/noindex> un articolo, questo ha portato a un certo punto a uno schema simile:<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Cosa pu\u00f2 andare storto con la Data Science? Raccolta dati\" src=\"\/wp-content\/uploads\/2020\/07\/9ad1853f3ee2c9321ee9f1a5e3efea7d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn sintesi, la lista di controllo per la complessit\u00e0:<\/p>\n<ul>\n<li>Lavorare con la rete e fare parsing di html con iterazioni e iterazioni su ID.<\/li>\n<li>Documenti di struttura eterogenea.<\/li>\n<li>Molti luoghi in cui il codice pu\u00f2 facilmente fallire.<\/li>\n<li>\u00c8 necessario scrivere || codice.<\/li>\n<li>Manca la documentazione necessaria, esempi di codice e\/o comunit\u00e0.<\/li>\n<\/ul>\n<p>\nUna valutazione condizionata del tempo per questo compito sar\u00e0 da 3 a 5 volte superiore a quella per raccogliere dati da Reddit.<\/p>\n<h2>Confronto tra gruppi di Odnoklassniki<\/h2>\n<p>\nPassiamo al caso pi\u00f9 tecnicamente interessante tra quelli descritti. Per me era interessante proprio perch\u00e9, a prima vista, sembra piuttosto banale, ma non \u00e8 affatto cos\u00ec - non appena ci dai un colpetto.<\/p>\n<p>Inizieremo dalla nostra lista di controllo della complessit\u00e0 e notiamo che molti di essi si riveleranno molto pi\u00f9 complicati di quanto non sembrino inizialmente:<\/p>\n<ul>\n<li>L'API c'\u00e8, ma mancano quasi completamente le funzioni necessarie.<\/li>\n<li>Per alcune funzioni bisogna richiedere l'accesso via email, quindi la concessione dell'accesso non \u00e8 immediata.<\/li>\n<li>\u00c8 mal documentato (per cominciare, si mescolano termini russi e inglesi in modo assolutamente incoerente \u2014 a volte devi semplicemente indovinare cosa vogliono da te) e, inoltre, non \u00e8 progettato per la raccolta dei dati, ad esempio, <noindex><a rel=\"nofollow\" href=\"https:\/\/apiok.ru\/dev\/methods\/rest\/discussions\/discussions.getComments\">la funzione di cui abbiamo bisogno<\/a><\/noindex>.<\/li>\n<li>Richiede una sessione nella documentazione, ma in realt\u00e0 non la utilizza \u2014 e non c'\u00e8 modo di comprendere tutte le sottigliezze delle modalit\u00e0 API, se non provando e sperando che qualcosa funzioni.<\/li>\n<li>Mancano esempi e comunit\u00e0, l'unico punto di riferimento nella raccolta delle informazioni \u00e8 un piccolo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/alternativshik\/python-odnoklassniki\">wrapper<\/a><\/noindex> in Python (senza un gran numero di esempi di utilizzo).<\/li>\n<li>La soluzione pi\u00f9 funzionante sembra essere Selenium, dal momento che molti dei dati necessari sono bloccati.<br \/>\n1) Cio\u00e8, l'autenticazione avviene tramite un utente fittizio (e registrazione manuale).<\/p>\n<p>2) Tuttavia, con Selenium non ci sono garanzie di funzionamento corretto e ripetibile (almeno nel caso di ok.ru, sicuramente).<\/p>\n<p>3) Il sito Ok.ru contiene errori JavaScript e a volte si comporta in modo strano e incoerente.<\/p>\n<p>4) \u00c8 necessario affrontare la paginazione, il caricamento di elementi, ecc.\u2026<\/p>\n<p>5) Gli errori API restituiti dal wrapper dovranno essere gestiti in modo un po\u2019 macchinoso, ad esempio, in questo modo (un pezzo di codice sperimentale):<\/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#makes sense to keep track of already processed discussions\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>\nIl mio errore preferito \u00e8 stato:<\/p>\n<p><code>OdnoklassnikiError(\"Errore(codice: 'None', descrizione: 'errore HTTP', metodo: 'discussions.getComments', params: \u2026)\")<\/code><\/p>\n<p>6) Alla fine, la combinazione Selenium + API sembra la soluzione pi\u00f9 razionale.<\/li>\n<li>\u00c8 necessario mantenere lo stato e riavviare il sistema, gestire molti errori, incluso il comportamento incoerente del sito \u2014 e queste sono situazioni abbastanza difficili da immaginare (a meno che non scrivi parser in modo professionale, ovviamente).<\/li>\n<\/ul>\n<p>\nUna stima condizionale del tempo per questo compito sar\u00e0 da 3 a 5 volte superiore rispetto alla raccolta di dati da Habr. Anche se nel caso di Habr utilizziamo un approccio diretto con l'analisi HTML, mentre nel caso di OK possiamo lavorare con l'API in punti critici.<\/p>\n<h2>Conclusioni<\/h2>\n<p>\nAnche se vi venisse chiesto di fornire una stima dei tempi \"sul posto\" (dobbiamo fare pianificazione oggi!), il tempo di esecuzione \u00e8 praticamente impossibile da valutare anche qualitativamente senza un'analisi dei parametri del compito. <\/p>\n<p>Se parliamo in modo un po' pi\u00f9 filosofico, le strategie di stima in agile si adattano bene ai compiti ingegneristici, ma sorgono difficolt\u00e0 con compiti pi\u00f9 sperimentali e, in un certo senso, \"creativi\" e di ricerca, ovvero meno prevedibili, come negli esempi simili a quelli che abbiamo esaminato qui. <\/p>\n<p>Certo, la raccolta dei dati \u00e8 un esempio illuminante \u2014 di solito questo compito sembra incredibilmente semplice e tecnicamente non problematico, ed \u00e8 proprio nei dettagli che spesso si nasconde il diavolo. E proprio su questo compito si riesce a dimostrare tutta la gamma di possibili varianti di ci\u00f2 che pu\u00f2 andare storto e quanto possa effettivamente prolungarsi il lavoro. <\/p>\n<p>Se si esaminano rapidamente le caratteristiche del compito senza esperimenti aggiuntivi, Reddit e OK sembrano simili: c'\u00e8 un'API, un wrapper python, ma in sostanza, la differenza \u00e8 enorme. Se si giudica in base a questi parametri, il parsing di Habr sembra pi\u00f9 complicato rispetto a OK \u2014 e nella pratica \u00e8 esattamente il contrario, e questo si pu\u00f2 scoprire effettuando semplici esperimenti di analisi dei parametri del compito.<\/p>\n<p>Dal mio punto di vista, l'approccio pi\u00f9 efficace \u00e8 una stima approssimativa del tempo che occorrer\u00e0 per l'analisi preliminare e i primi esperimenti semplici, la lettura della documentazione \u2014 sono questi a permettervi di fornire una stima precisa per l'intero lavoro. In termini di metodologia agile popolare \u2014 chiedo di aprirmi un ticket per \"stima dei parametri del compito\", sulla base del quale posso fornire una stima di ci\u00f2 che \u00e8 possibile realizzare nel contesto di uno \"sprint\" e fornire una stima pi\u00f9 precisa per ciascun compito.<\/p>\n<p>Pertanto, sembra pi\u00f9 efficace un'argomentazione che mostri a un esperto \"non tecnico\" quanto possa variare il tempo e le risorse a seconda dei parametri che devono ancora essere valutati.<\/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=\"Cosa pu\u00f2 andare storto con la Data Science? Raccolta dati\" src=\"\/wp-content\/uploads\/2020\/07\/2ca567a078c8500d37dfcf982e76252c.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Fonte: <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\/it\/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=\"it_IT\" \/>\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\/it\/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\udd47Cosa pu\u00f2 andare storto con Data Science? Raccolta dati | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/chto-mozhet-pojti-ne-tak-s-data-science-sbor-dannyh","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/89206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=89206"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/89206\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/89207"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=89206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=89206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=89206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}