{"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 \/>\nAttualmente ci sono 100.500 corsi di Data Science e si sa da tempo che si pu\u00f2 guadagnare di pi\u00f9 vendendo corsi di Data Science (perch\u00e9 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 dar\u00e0 dati grezzi e lavorati nel formato richiesto. E quando esci da un corso e inizi a risolvere un problema reale, emergono molte complicazioni.<\/p>\n<p>Pertanto, iniziamo una serie di appunti intitolati \"Cosa pu\u00f2 andare storto con il Data Science\", basati su eventi reali che sono accaduti a me, ai miei colleghi e compagni. Analizzeremo esempi concreti di compiti tipici in Data Science: come accade davvero. Iniziamo oggi con il compito di raccolta dati.<\/p>\n<p>E il primo ostacolo che le persone incontrano iniziando a lavorare con dati reali \u00e8 proprio la raccolta di questi dati rilevanti. Il messaggio chiave di questo articolo \u00e8:<\/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 varie stime, la pulizia, la trasformazione, il data processing, l'ingegneria delle caratteristiche, ecc. occupano l'80-90% del tempo, mentre l'analisi solo il 10-20%, mentre praticamente tutto il materiale didattico si concentra esclusivamente sull'analisi.<\/p>\n<p>Analizziamo un semplice compito analitico tipico in tre varianti e vediamo quali possono essere le \"circostanze aggravanti\".<\/p>\n<p>E per esempio, esamineremo simili variazioni nel compito di raccolta dati e confronto delle comunit\u00e0 per:<\/p>\n<ol>\n<li>Due subreddit 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>\nAprire il sito e leggere gli esempi, se \u00e8 chiaro, dedicare alcune ore alla lettura, alcune ore al codice sugli esempi e al debug. Aggiungere alcune ore per la raccolta. Aggiungere ulteriori ore a disposizione (moltiplicare per due e aggiungere N ore).<\/p>\n<p><b>Il punto chiave: la stima temporale si basa su ipotesi e congetture su quanto tempo richieder\u00e0.<\/b><\/p>\n<p>Iniziare l'analisi del tempo deve partire dalla valutazione dei seguenti parametri per il compito condizionale descritto sopra:<\/p>\n<ul>\n<li>Qual \u00e8 la dimensione dei dati e quanto ne \u00e8 necessario raccogliere fisicamente (*vedi sotto*).<\/li>\n<li>Qual \u00e8 il tempo di raccolta di una registrazione e quanto bisogna aspettare prima di poter raccogliere la seconda.<\/li>\n<li>Implementare la scrittura del codice per mantenere lo stato e avviare un riavvio quando (e non se) tutto fallisce.<\/li>\n<li>Chiarire se abbiamo bisogno di autorizzazione e predisporre il tempo necessario per l'accesso tramite API.<\/li>\n<li>Considerare il numero di errori come funzione della complessit\u00e0 dei dati \u2014 valutare in base a un compito specifico: struttura, quante trasformazioni, cosa e come estraiamo.<\/li>\n<li>Considerare gli errori di rete e i problemi con i comportamenti non standard del progetto.<\/li>\n<li>Valutare se le funzioni necessarie sono nella documentazione e, in caso contrario, quanto tempo e come sar\u00e0 necessario per una soluzione alternativa.<\/li>\n<\/ul>\n<p>\nLa cosa pi\u00f9 importante per valutare il tempo \u2014 \u00e8 necessario effettivamente spendere tempo e sforzi per un \"recon\" \u2014 solo allora la vostra pianificazione sar\u00e0 adeguata. Pertanto, qualunque pressione ci sia nel dire \"quanto tempo \u00e8 necessario per raccogliere i dati\" \u2014 prendetevi tempo per un'analisi preliminare e argomentate quanto il tempo varier\u00e0 in base ai parametri reali del compito.<\/p>\n<p>E ora presenteremo esempi concreti in cui questi parametri cambieranno.<\/p>\n<p><b>Punto chiave: la valutazione si basa sull'analisi di fattori chiave che influenzano il volume e la complessit\u00e0 del lavoro.<\/b><\/p>\n<p>Una valutazione basata su supposizioni \u00e8 un buon approccio quando gli elementi funzionali sono piuttosto piccoli e ci sono pochi fattori che possono influenzare la struttura del compito. Tuttavia, nel caso di alcune attivit\u00e0 di Data Science, i fattori possono diventare estremamente numerosi e questo approccio diventa inadeguato.<\/p>\n<h2>Comparazione delle comunit\u00e0 di Reddit<\/h2>\n<p>\nIniziamo con il caso pi\u00f9 semplice (come poi si riveler\u00e0). In realt\u00e0, per essere onesti, ci troviamo di fronte a un caso praticamente ideale, verifichiamo la nostra checklist di complessit\u00e0:<\/p>\n<ul>\n<li>C'\u00e8 un'API ordinata, chiara e documentata.<\/li>\n<li>\u00c8 estremamente facile e soprattutto si ottiene automaticamente il token.<\/li>\n<li>S\u00ec <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/praw-dev\/praw\">wrapper python<\/a><\/noindex> \u2014 con tonnellate di esempi.<\/li>\n<li>La comunit\u00e0 che si occupa di analisi e raccolta di dati su Reddit (fino a video di YouTube che spiegano come utilizzare il wrapper python) <noindex><a rel=\"nofollow\" href=\"https:\/\/www.programcreek.com\/python\/example\/86599\/praw.Reddit\">ecco ad esempio<\/a><\/noindex>.<\/li>\n<li>I metodi di cui abbiamo bisogno esistono probabilmente nell'API. Inoltre, il codice appare compatto e pulito, di seguito un esempio di funzione che raccoglie i commenti di 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>Estratto da <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/timendum\/reddit-utilities\/blob\/master\/thread-export.py\">questo<\/a><\/noindex> elenco di utilit\u00e0 pratiche per l'incapsulamento.<\/i><\/p>\n<p>Nonostante siamo di fronte al miglior caso, ci sono ancora una serie di fattori importanti della vita reale da considerare:<\/p>\n<ul>\n<li>Limiti API \u2014 siamo costretti a prendere i dati in batch (fare pause tra le richieste, ecc.).<\/li>\n<li>Tempo di raccolta \u2014 per un'analisi completa e un confronto, sar\u00e0 necessario prevedere un notevole tempo affinch\u00e9 il crawler possa esplorare il subreddit.<\/li>\n<li>Il bot deve essere in esecuzione su un server \u2014 non puoi semplicemente avviarlo sul laptop, metterlo nello zaino e andare per affari. Per questo motivo, ho avviato tutto su un VPS. Con il codice promozionale habrahabr10 puoi risparmiare il 10% sul costo.<\/li>\n<li>Inaccessibilit\u00e0 fisica di alcuni dati (visibili solo agli amministratori o troppo complessi da raccogliere) \u2014 questo deve essere considerato, non tutti i dati possono essere raccolti in un tempo ragionevole.<\/li>\n<li>Errori di rete: lavorare con la rete \u00e8 un problema.<\/li>\n<li>Questi sono dati reali e vivi \u2014 non sono mai completamente puliti.<\/li>\n<\/ul>\n<p>\nCerto, \u00e8 fondamentale includere questi aspetti nello sviluppo. Le ore\/giorni specifici dipendono dall'esperienza di sviluppo o da esperienze simili, tuttavia vediamo che qui la questione \u00e8 puramente ingegneristica e non richiede ulteriori sforzi per essere risolta: possiamo valutare, pianificare e realizzare tutto molto bene.<\/p>\n<h2>Confronto delle sezioni di Habr<\/h2>\n<p>\nPassiamo a un caso pi\u00f9 interessante e non triviale nel confronto dei flussi e\/o delle sezioni di Habr.<\/p>\n<p>Verifichiamo la nostra lista di controllo della difficolt\u00e0: qui, per comprendere ogni punto, dovremo toccare un po' la questione e fare qualche esperimento.<\/p>\n<ul>\n<li>All'inizio si pensa che ci sia un API, ma non c'\u00e8. S\u00ec, Habr ha un API, ma \u00e8 solo inaccessibile per gli utenti (o potrebbe non funzionare affatto).<\/li>\n<li>Poi si inizia semplicemente a fare parsing dell'html: \"import requests\", cosa potrebbe andare storto?<\/li>\n<li>E come si fa a fare parsing? L'approccio pi\u00f9 semplice e comunemente usato \u00e8 iterare per ID, notando che non \u00e8 il pi\u00f9 efficace e bisogner\u00e0 gestire casi diversi: ecco un esempio della densit\u00e0 degli ID reali tra tutti quelli 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>Estratto da <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/218607\/\">questo<\/a><\/noindex> dell'articolo.<\/i><\/li>\n<li>I dati grezzi avvolti in HTML attraverso la rete sono un mal di testa. Ad esempio, vuoi estrarre e conservare il punteggio di un articolo: estrai il punteggio dall'html e decidi di salvarlo come numero per ulteriori elaborazioni.\u00a0\n<p>1) int(score) genera un errore: su Habr il segno meno \u00e8 rappresentato come, ad esempio, nella riga \"\u20135\" \u2014 si tratta di un trattino corto e non di un segno negativo (inaspettato, vero?), quindi ad un certo punto \u00e8 stato necessario attivare di nuovo il parser con una soluzione cos\u00ec terribile.<\/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>\nLe date, i pi\u00f9 e i meno potrebbero non esserci affatto (come vediamo sopra nella funzione check_date, \u00e8 successo).<\/p>\n<p>2) Caratteri speciali non escapati \u2014 essi 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 possono avere **una struttura strana**.<\/li>\n<li>Fondamentalmente, dovrai gestire gli errori e ci\u00f2 che pu\u00f2 o non pu\u00f2 accadere, e non puoi prevedere con certezza cosa potrebbe andare storto e quale potrebbe essere la struttura, e dove ci saranno problemi \u2014 dovrai semplicemente provare e considerare gli errori che il parser restituisce.<\/li>\n<li>Poi capisci che \u00e8 necessario effettuare il parsing in pi\u00f9 thread, altrimenti il parsing in uno solo richieder\u00e0 oltre 30 ore (questo \u00e8 solo il tempo di esecuzione di un parser a thread singolo, che \u00e8 inattivo e non incappa in alcun ban). In <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/276383\/\">questo<\/a><\/noindex> l'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 checklist per la complessit\u00e0:<\/p>\n<ul>\n<li>Lavorare con reti e parsare HTML con iterazione e navigazione per ID.<\/li>\n<li>Documenti di struttura eterogenea.<\/li>\n<li>Molti punti in cui il codice pu\u00f2 facilmente andare in errore.<\/li>\n<li>Necessit\u00e0 di scrivere || codice.<\/li>\n<li>Manca la documentazione necessaria, esempi di codice e\/o comunit\u00e0.<\/li>\n<\/ul>\n<p>\nLa stima condizionale del tempo per questo compito sar\u00e0 3-5 volte superiore a quella per raccogliere dati da Reddit.<\/p>\n<h2>Confronto dei gruppi di Odnoklassniki<\/h2>\n<p>\nPassiamo al caso tecnicamente pi\u00f9 interessante tra quelli descritti. Per me \u00e8 stato interessante proprio perch\u00e9, a prima vista, sembra abbastanza banale, ma non lo \u00e8 affatto\u2014appena lo tocchi con un bastoncino.<\/p>\n<p>Inizieremo con la nostra checklist di complessit\u00e0 e segnaleremo che molti di essi si riveleranno molto pi\u00f9 complicati di quanto sembrino all'inizio:<\/p>\n<ul>\n<li>L'API esiste, ma manca quasi completamente delle funzioni necessarie.<\/li>\n<li>Alcune funzioni richiedono la richiesta di accesso via email, quindi l'accesso non \u00e8 immediato.<\/li>\n<li>\u00c8 terribilmente documentato (iniziamo col dire che si mescolano termini russi e inglesi ovunque, in modo assolutamente incoerente \u2014 a volte bisogna semplicemente indovinare cosa vogliono da te) e, inoltre, non \u00e8 adatto per ottenere i dati in modo efficiente, per 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 districarsi tra le complessit\u00e0 dei vari modi API, se non provando e sperando che qualcosa funzioni.<\/li>\n<li>Mancano esempi e una comunit\u00e0, l'unico punto di riferimento per la raccolta di informazioni \u00e8 un piccolo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/alternativshik\/python-odnoklassniki\">wrapper<\/a><\/noindex> in Python (senza una grande quantit\u00e0 di esempi di utilizzo).<\/li>\n<li>L'opzione pi\u00f9 funzionale sembra essere Selenium, poich\u00e9 molti dati necessari sono bloccati.<br \/>\n1) Cio\u00e8, l'autenticazione avviene tramite un utente fittizio (e registrazione manuale).<\/p>\n<p>2) Tuttavia, non ci sono garanzie di funzionamento corretto e ripetibile con Selenium (in ogni caso con ok.ru, sicuramente).<\/p>\n<p>3) Il sito ok.ru presenta errori JavaScript e a volte si comporta in modo strano e incoerente.<\/p>\n<p>4) \u00c8 necessario gestire la paginazione, il caricamento degli elementi, ecc\u2026<\/p>\n<p>5) Gli errori API restituiti dal wrapper devono essere gestiti in modo artigianale, 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#ha senso tenere traccia delle discussioni gi\u00e0 elaborate\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 era:<\/p>\n<p><code>OdnoklassnikiError(\"Errore(codice: 'None', descrizione: 'errore HTTP', metodo: 'discussions.getComments', parametri: \u2026)\")<\/code><\/p>\n<p>6) Alla fine, la combinazione di Selenium + API sembra essere la soluzione pi\u00f9 razionale.<\/li>\n<li>\u00c8 necessario mantenere lo stato e riavviare il sistema, gestire numerosi errori, incluso il comportamento incoerente del sito \u2014 e questi errori sono abbastanza difficili da immaginare (a meno che non si scrivano parser professionalmente, ovviamente).<\/li>\n<\/ul>\n<p>\nLa stima condizionata del tempo per questo compito sar\u00e0 da 3 a 5 volte superiore rispetto alla raccolta dei dati da Habr. Sebbene nel caso di Habr utilizziamo un approccio frontale con parsing HTML, nel caso di OK possiamo lavorare con l'API in modo critico.<\/p>\n<h2>Conclusioni<\/h2>\n<p>\nAnche se vi viene chiesta una stima dei tempi \u00absul posto\u00bb (dobbiamo pianificare oggi!), \u00e8 praticamente impossibile valutare il tempo di esecuzione di un voluminoso modulo di pipeline per l'elaborazione dei dati, se non dopo aver analizzato i 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 per compiti pi\u00f9 sperimentali e, in un certo senso, \u00abcreativi\u00bb e di ricerca, ossia meno prevedibili, sorgono difficolt\u00e0, come negli esempi che abbiamo analizzato qui. <\/p>\n<p>Sicuramente, la raccolta dei dati \u00e8 un chiaro esempio illustrativo \u2014 di solito sembra un compito incredibilmente semplice e tecnicamente poco complicato, ma sono proprio nei dettagli che si nasconde il diavolo. Ed \u00e8 proprio in questo compito che si pu\u00f2 mostrare l'intero spettro delle possibili varianti di ci\u00f2 che pu\u00f2 andare storto e quanto effettivamente pu\u00f2 allungarsi il lavoro. <\/p>\n<p>Se si osservano rapidamente le caratteristiche del compito senza esperimenti aggiuntivi, Reddit e OK sembrano simili: c'\u00e8 un'API e un wrapper Python, ma in sostanza la differenza \u00e8 enorme. Se si giudica da questi parametri, il parsing di Habr sembra pi\u00f9 complesso rispetto a OK \u2014 mentre in pratica \u00e8 esattamente il contrario, e questo pu\u00f2 essere scoperto eseguendo semplici esperimenti per analizzare i parametri del compito.<\/p>\n<p>Dalla mia esperienza, l'approccio pi\u00f9 efficace \u00e8 una stima preliminare del tempo necessario per l'analisi iniziale, esperimenti semplici e la lettura della documentazione: sono queste attivit\u00e0 che permettono di fornire una stima precisa per l'intero lavoro. In termini della metodologia agile popolare, chiedo di aprire un ticket per 'stimare i parametri del task', sulla base del quale posso valutare cosa \u00e8 possibile realizzare nel corso di uno 'sprint' e fornire una stima pi\u00f9 accurata per ogni attivit\u00e0.<\/p>\n<p>Pertanto, sembra pi\u00f9 efficace un argomento che mostri a un professionista 'non tecnico' quanto possono 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 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 100500 \u043a\u0443\u0440\u0441\u043e\u0432 \u043f\u043e Data Science \u0438 \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0435\u043d\u0435\u0433 \u0432 Data Science \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u0443\u0440\u0441\u0430\u043c\u0438 \u043f\u043e Data Science (\u0437\u0430\u0447\u0435\u043c \u043a\u043e\u043f\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u043b\u043e\u043f\u0430\u0442\u044b?). \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0438\u043d\u0443\u0441 \u044d\u0442\u0438\u0445 \u043a\u0443\u0440\u0441\u043e\u0432 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439: \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0434\u0430\u0441\u0442 \u0432\u0430\u043c \u0447\u0438\u0441\u0442\u044b\u0435, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/chto-mozhet-pojti-ne-tak-s-data-science-sbor-dannyh\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"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:description\" content=\"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 100500 \u043a\u0443\u0440\u0441\u043e\u0432 \u043f\u043e Data Science \u0438 \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0435\u043d\u0435\u0433 \u0432 Data Science \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u0443\u0440\u0441\u0430\u043c\u0438 \u043f\u043e Data Science (\u0437\u0430\u0447\u0435\u043c \u043a\u043e\u043f\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u043b\u043e\u043f\u0430\u0442\u044b?). \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0438\u043d\u0443\u0441 \u044d\u0442\u0438\u0445 \u043a\u0443\u0440\u0441\u043e\u0432 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439: \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0434\u0430\u0441\u0442 \u0432\u0430\u043c \u0447\u0438\u0441\u0442\u044b\u0435, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/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 la Data Science? Raccolta dati | ProHoster","description":"Oggi ci sono 100500 corsi di Data Science e si sa da tempo che si possono guadagnare molti pi\u00f9 soldi nella Data Science proprio con i corsi di Data Science (perch\u00e9 scavare quando puoi vendere pale?). L'unico grande svantaggio di questi corsi \u00e8 che non hanno nulla a che fare con il lavoro reale: nessuno ti dar\u00e0 dati puliti e trattati nel formato desiderato.","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:description":"\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 100500 \u043a\u0443\u0440\u0441\u043e\u0432 \u043f\u043e Data Science \u0438 \u0434\u0430\u0432\u043d\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e \u0434\u0435\u043d\u0435\u0433 \u0432 Data Science \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u043a\u0443\u0440\u0441\u0430\u043c\u0438 \u043f\u043e Data Science (\u0437\u0430\u0447\u0435\u043c \u043a\u043e\u043f\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u043b\u043e\u043f\u0430\u0442\u044b?). \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u0438\u043d\u0443\u0441 \u044d\u0442\u0438\u0445 \u043a\u0443\u0440\u0441\u043e\u0432 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d\u0438 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0431\u0449\u0435\u0433\u043e \u0441 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439: \u043d\u0438\u043a\u0442\u043e \u043d\u0435 \u0434\u0430\u0441\u0442 \u0432\u0430\u043c \u0447\u0438\u0441\u0442\u044b\u0435, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435.","og:url":"https:\/\/prohoster.info\/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":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:51:09","updated":"2022-10-04 00:46:34"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/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}]}}