18 nödvändig programvara som alla dataforskare bör känna till

Datavetenskap är för alla som älskar att reda ut trassliga saker och upptäcka dolda underverk i en uppenbar röra.

Det är som att söka efter nålar i höstackar; bara att datavetare inte behöver smutsa ner händerna alls. Med hjälp av snygga verktyg med färgglada diagram, och tittar på högar med siffror, dyker de bara ner i datahöstackar och hittar värdefulla nålar i form av insikter av högt affärsvärde.

En typisk data scientist Verktygslådan bör innehålla minst ett objekt av var och en av dessa kategorier: relationsdatabaser, NoSQL-databaser, ramverk för stora data, visualiseringsverktyg, skrapverktyg, programmeringsspråk, IDE:er och verktyg för djupinlärning.

Relationsdatabaser

En relationsdatabas är en samling data strukturerad i tabeller med attribut. Tabellerna kan länkas till varandra, definiera relationer och begränsningar och skapa en så kallad datamodell. För att arbeta med relationsdatabaser använder du vanligtvis ett språk som heter SQL (Structured Query Language).

Applikationerna som hanterar strukturen och data i relationsdatabaser kallas RDBMS (Relational DataBase Management Systems). Det finns många sådana applikationer, och de mest relevanta har nyligen börjat fokusera på datavetenskap, lägga till funktionalitet för att arbeta med big data repositories och för att tillämpa tekniker som dataanalys och maskininlärning.

SQL Server

Microsofts RDBMS, har utvecklats i mer än 20 år genom att konsekvent utöka sin företagsfunktionalitet. Sedan 2016 års version erbjuder SQL Server en portfölj av tjänster som inkluderar stöd för inbäddad R-kod. SQL Server 2017 höjer satsningen genom att döpa om sina R-tjänster till Machine Language Services och lägga till stöd för Python-språket (mer om dessa två språk nedan).

Med dessa viktiga tillägg vänder sig SQL Server till datavetare som kanske inte har erfarenhet av Transact SQL, det inhemska frågespråket för Microsoft SQL Server.

SQL Server är långt ifrån en gratis produkt. Du kan köpa licenser för att installera den på en Windows-server (priset varierar beroende på antalet samtidiga användare) eller använda det som en avgiftsbaserad tjänst genom Microsoft Azure-molnet. Det är enkelt att lära sig Microsoft SQL Server.

MySQL

På sidan med öppen källkod, MySQL har popularitetskronan för RDBMS. Även om Oracle för närvarande äger det, är det fortfarande gratis och med öppen källkod enligt villkoren för en GNU General Public License. De flesta webbaserade applikationer använder MySQL som det underliggande dataförrådet, tack vare dess överensstämmelse med SQL-standarden.

Hjälper också till dess popularitet är dess enkla installationsprocedurer, dess stora community av utvecklare, massor av omfattande dokumentation och tredjepartsverktyg, som phpMyAdmin, som förenklar dagliga hanteringsaktiviteter. Även om MySQL inte har några inbyggda funktioner för att göra dataanalys, tillåter dess öppenhet integration med nästan alla visualiserings-, rapporterings- och business intelligence-verktyg du kan välja.

PostgreSQL

Ett annat RDBMS-alternativ med öppen källkod är PostgreSQL. Även om det inte är lika populärt som MySQL, utmärker sig PostgreSQL för sin flexibilitet och utökningsbarhet, och dess stöd för komplexa frågor, de som går utöver de grundläggande uttalandena som SELECT, WHERE och GROUP BY.

Dessa funktioner gör att det blir populärt bland dataforskare. En annan intressant funktion är stödet för multimiljöer, vilket gör att det kan användas i molnmiljöer och miljöer på plats, eller i en blandning av båda, allmänt känd som hybridmolnmiljöer.

PostgreSQL kan kombinera online analytisk bearbetning (OLAP) med online transaktionsbearbetning (OLTP), och fungerar i ett läge som kallas hybrid transaktionell/analytisk bearbetning (HTAP). Den är också väl lämpad att arbeta med big data, tack vare tillägget av PostGIS för geografisk data och JSON-B för dokument. PostgreSQL stöder också ostrukturerad data, vilket gör att den kan finnas i båda kategorierna: SQL- och NoSQL-databaser.

NoSQL-databaser

Även känd som icke-relationella databaser, ger denna typ av dataförråd snabbare åtkomst till icke-tabellformiga datastrukturer. Några exempel på dessa strukturer är grafer, dokument, breda kolumner, nyckelvärden, bland många andra. NoSQL-datalager kan lägga åt sidan datakonsistens till förmån för andra fördelar, såsom tillgänglighet, partitionering och åtkomsthastighet.

Eftersom det inte finns någon SQL i NoSQL-datalager, är det enda sättet att fråga den här typen av databas genom att använda lågnivåspråk, och det finns inget sådant språk som är så allmänt accepterat som SQL. Dessutom finns det inga standardspecifikationer för NoSQL. Det är därför, ironiskt nog, vissa NoSQL-databaser börjar lägga till stöd för SQL-skript.

MongoDB

MongoDB är ett populärt NoSQL-databassystem, som lagrar data i form av JSON-dokument. Dess fokus ligger på skalbarheten och flexibiliteten att lagra data på ett ostrukturerat sätt. Detta innebär att det inte finns någon fast fältlista som måste följas i alla lagrade element. Vidare kan datastrukturen ändras över tid, något som i en relationsdatabas innebär stor risk att påverka applikationer som körs.

Tekniken i MongoDB möjliggör indexering, ad-hoc-frågor och aggregering som ger en stark grund för dataanalys. Databasens distribuerade karaktär ger hög tillgänglighet, skalning och geografisk distribution utan behov av sofistikerade verktyg.

Redis

Detta ett är ett annat alternativ i NoSQL-fronten med öppen källkod. Det är i grunden ett datastrukturlager som fungerar i minnet och, förutom att tillhandahålla databastjänster, fungerar det också som cacheminne och meddelandeförmedlare.

Den stöder en myriad av okonventionella datastrukturer, inklusive hash, geospatiala index, listor och sorterade uppsättningar. Den är väl lämpad för datavetenskap tack vare dess höga prestanda i dataintensiva uppgifter, som att beräkna korsningar, sortera långa listor eller generera komplexa rankningar. Anledningen till Redis enastående prestanda är dess in-memory-drift. Den kan konfigureras för att bevara data selektivt.

Big Data ramverk

Anta att du måste analysera den data som Facebook-användare genererar under en månad. Vi pratar om foton, videor, meddelanden, allt. Med tanke på att mer än 500 terabyte data läggs till varje dag till det sociala nätverket av dess användare, är det svårt att mäta volymen som representeras av en hel månad av dess data.

För att manipulera den enorma mängden data på ett effektivt sätt behöver du ett lämpligt ramverk som kan beräkna statistik över en distribuerad arkitektur. Det finns två av ramverken som leder marknaden: Hadoop och Spark.

Hadoop

Som ett ramverk för big data, Hadoop behandlar komplexiteten i samband med hämtning, bearbetning och lagring av enorma högar med data. Hadoop arbetar i en distribuerad miljö, sammansatt av datorkluster som bearbetar enkla algoritmer. Det finns en orkestreringsalgoritm, kallad MapReduce, som delar upp stora uppgifter i små delar och sedan distribuerar dessa små uppgifter mellan tillgängliga kluster.

Hadoop rekommenderas för datalager i företagsklass som kräver snabb åtkomst och hög tillgänglighet, allt detta i ett lågkostnadsschema. Men du behöver en Linux-administratör med djup Hadoop kunskap att upprätthålla ramverket och att köra.

Gnista

Hadoop är inte det enda ramverket som är tillgängligt för big data-manipulation. Ett annat stort namn på detta område är Gnista. Spark-motorn designades för att överträffa Hadoop när det gäller analyshastighet och användarvänlighet. Uppenbarligen uppnådde den detta mål: vissa jämförelser säger att Spark kör upp till 10 gånger snabbare än Hadoop när man arbetar på en disk och 100 gånger snabbare i minnet. Det kräver också ett mindre antal maskiner för att behandla samma mängd data.

Förutom hastighet är en annan fördel med Spark dess stöd för strömbehandling. Denna typ av databehandling, även kallad realtidsbehandling, innebär kontinuerlig inmatning och utmatning av data.

Visualiseringsverktyg

Ett vanligt skämt mellan dataforskare säger att om du torterar data tillräckligt länge kommer det att erkänna det du behöver veta. I det här fallet betyder ”tortyr” att manipulera data genom att transformera och filtrera den, för att bättre visualisera den. Och det är där datavisualiseringsverktyg kommer till scenen. Dessa verktyg tar förbehandlad data från flera källor och visar dess avslöjade sanningar i grafiska, begripliga former.

Det finns hundratals verktyg som faller inom denna kategori. Gilla det eller inte, det mest använda är Microsoft Excel och dess kartverktyg. Excel-diagram är tillgängliga för alla som använder Excel, men de har begränsad funktionalitet. Detsamma gäller andra kalkylbladsapplikationer, som Google Sheets och Libre Office. Men vi pratar här om mer specifika verktyg, speciellt skräddarsydda för business intelligence (BI) och dataanalys.

Power BI

För inte så länge sedan släppte Microsoft sin Power BI visualiseringsapplikation. Den kan ta data från olika källor, såsom textfiler, databaser, kalkylblad och många onlinedatatjänster, inklusive Facebook och Twitter, och använda den för att generera instrumentpaneler packade med diagram, tabeller, kartor och många andra visualiseringsobjekt. Instrumentpanelsobjekten är interaktiva, vilket innebär att du kan klicka på en dataserie i ett diagram för att välja den och använda den som ett filter för de andra objekten på tavlan.

Power BI är en kombination av en Windows-skrivbordsapplikation (en del av Office 365-sviten), en webbapplikation och en onlinetjänst för att publicera instrumentpanelerna på webben och dela dem med dina användare. Tjänsten låter dig skapa och hantera behörigheter för att ge åtkomst till anslagstavlor endast till vissa personer.

Tablå

Tablå är ett annat alternativ för att skapa interaktiva instrumentpaneler från en kombination av flera datakällor. Den erbjuder också en stationär version, en webbversion och en onlinetjänst för att dela instrumentpanelerna du skapar. Det fungerar naturligt ”med hur du tänker” (som det påstår), och det är lätt att använda för icke-tekniska personer, vilket förbättras genom massor av tutorials och onlinevideor.

Några av Tableaus mest enastående funktioner är dess obegränsade dataanslutningar, dess livedata och data i minnet och dess mobiloptimerade design.

QlikView

QlikView erbjuder ett rent och enkelt användargränssnitt för att hjälpa analytiker att upptäcka nya insikter från befintliga data genom visuella element som är lätta att förstå för alla.

Detta verktyg är känt för att vara en av de mest flexibla business intelligence-plattformarna. Den tillhandahåller en funktion som heter Associative Search, som hjälper dig att fokusera på de viktigaste uppgifterna, vilket sparar den tid det skulle ta att hitta den på egen hand.

Med QlikView kan du samarbeta med partners i realtid och göra jämförande analyser. All relevant data kan kombineras till en app, med säkerhetsfunktioner som begränsar åtkomsten till data.

Skrapande verktyg

Under de tider då internet bara växte fram började sökrobotarna resa längs med nätverken och samla in information i deras väg. I takt med att tekniken utvecklades ändrades termen webbcrawlning för webbskrapning, men betyder fortfarande detsamma: att automatiskt extrahera information från webbplatser. För att göra webbskrapning använder du automatiserade processer, eller bots, som hoppar från en webbsida till en annan, extraherar data från dem och exporterar den till olika format eller infogar den i databaser för vidare analys.

Nedan sammanfattar vi egenskaperna hos tre av de mest populära webbskrapor som finns tillgängliga idag.

Octoparse

Octoparse web scraper erbjuder några intressanta egenskaper, inklusive inbyggda verktyg för att få information från webbplatser som inte gör det lätt för scraping-robotar att utföra sina jobb. Det är en skrivbordsapplikation som inte kräver någon kodning, med ett användarvänligt gränssnitt som gör det möjligt att visualisera utvinningsprocessen genom en grafisk arbetsflödesdesigner.

Tillsammans med den fristående applikationen erbjuder Octoparse en molnbaserad tjänst för att påskynda datautvinningsprocessen. Användare kan uppleva en 4x till 10x hastighetsökning när de använder molntjänsten istället för skrivbordsapplikationen. Om du håller dig till skrivbordsversionen kan du använda Octoparse gratis. Men om du föredrar att använda molntjänsten måste du välja en av dess betalda planer.

Content Grabber

Om du letar efter ett funktionsrikt skrapverktyg bör du lägga ett öga på Content Grabber. Till skillnad från Octoparse, för att använda Content Grabber, är det nödvändigt att ha avancerade programmeringskunskaper. I utbyte får du skriptredigering, felsökningsgränssnitt och andra avancerade funktioner. Med Content Grabber kan du använda .Net-språk för att skriva reguljära uttryck. På så sätt behöver du inte generera uttrycken med hjälp av ett inbyggt verktyg.

Verktyget erbjuder ett API (Application Programming Interface) som du kan använda för att lägga till skrapningsfunktioner till dina skrivbords- och webbapplikationer. För att använda detta API måste utvecklare få tillgång till Content Grabber Windows-tjänsten.

ParseHub

Den här skrapan kan hantera en omfattande lista med olika typer av innehåll, inklusive forum, kapslade kommentarer, kalendrar och kartor. Det kan också hantera sidor som innehåller autentisering, Javascript, Ajax och mer. ParseHub kan användas som en webbapp eller ett skrivbordsprogram som kan köras på Windows, macOS X och Linux.

Liksom Content Grabber rekommenderas det att ha viss programmeringskunskap för att få ut det mesta av ParseHub. Den har en gratisversion, begränsad till 5 projekt och 200 sidor per körning.

Programmeringsspråk

Precis som det tidigare nämnda SQL-språket är designat specifikt för att fungera med relationsdatabaser, finns det andra språk skapade med tydligt fokus på datavetenskap. Dessa språk tillåter utvecklarna att skriva program som hanterar massiv dataanalys, som statistik och maskininlärning.

SQL anses också vara en viktig färdighet som utvecklare bör ha för att göra datavetenskap, men det beror på att de flesta organisationer fortfarande har mycket data på relationsdatabaser. ”Sann” datavetenskapliga språk är R och Python.

Pytonorm

Pytonorm är ett högnivå, tolkat, allmänt programmeringsspråk, väl lämpat för snabb applikationsutveckling. Den har en enkel och lättlärd syntax som möjliggör en brant inlärningskurva och för minskningar av kostnaderna för programunderhåll. Det finns många anledningar till att det är det föredragna språket för datavetenskap. För att nämna några: skriptpotential, utförlighet, portabilitet och prestanda.

Det här språket är en bra utgångspunkt för datavetare som planerar att experimentera mycket innan de går in i det verkliga och hårda datakrossningsarbetet och som vill utveckla kompletta applikationer.

R

De R språk används främst för statistisk databehandling och grafer. Även om det inte är tänkt att utveckla fullfjädrade applikationer, vilket skulle vara fallet för Python, har R blivit mycket populärt de senaste åren på grund av dess potential för datautvinning och dataanalys.

Tack vare ett ständigt växande bibliotek av fritt tillgängliga paket som utökar dess funktionalitet, kan R utföra alla typer av data-crunching arbete, inklusive linjär/ickelinjär modellering, klassificering, statistiska tester, etc.

Det är inte ett lätt språk att lära sig, men när du väl har bekantat dig med dess filosofi kommer du att göra statistisk beräkning som ett proffs.

Idus

Om du allvarligt funderar på att ägna dig åt datavetenskap, måste du noggrant välja en integrerad utvecklingsmiljö (IDE) som passar dina behov, eftersom du och din IDE kommer att spendera mycket tid på att arbeta tillsammans.

En idealisk IDE bör sätta ihop alla verktyg du behöver i ditt dagliga arbete som kodare: en textredigerare med syntaxmarkering och autokomplettering, en kraftfull debugger, en objektwebbläsare och enkel åtkomst till externa verktyg. Dessutom måste det vara kompatibelt med det språk du föredrar, så det är en bra idé att välja din IDE efter att ha vetat vilket språk du kommer att använda.

Spyder

Detta generisk IDE är mest avsedd för forskare och analytiker som också behöver koda. För att göra dem bekväma, begränsar den sig inte till IDE-funktionaliteten – den tillhandahåller också verktyg för datautforskning/visualisering och interaktiv exekvering, som kan hittas på ett vetenskapligt paket. Redaktören i Spyder stöder flera språk och lägger till en klasswebbläsare, fönsterdelning, hopp till definition, automatisk kodkomplettering och till och med ett kodanalysverktyg.

Debuggern hjälper dig att spåra varje kodrad interaktivt, och en profilerare hjälper dig att hitta och eliminera ineffektivitet.

PyCharm

Om du programmerar i Python är chansen stor att din valda IDE blir det PyCharm. Den har en smart kodredigerare med smart sökning, kodkomplettering och feldetektering och fixering. Med bara ett klick kan du hoppa från kodredigeraren till vilket sammanhangsrelaterat fönster som helst, inklusive test, supermetod, implementering, deklaration och mer. PyCharm stöder Anaconda och många vetenskapliga paket, som NumPy och Matplotlib, för att bara nämna två av dem.

Den erbjuder integration med de viktigaste versionskontrollsystemen, och även med en testkörare, en profilerare och en debugger. För att avsluta affären, integreras den också med Docker och Vagrant för att tillhandahålla plattformsoberoende utveckling och containerisering.

RStudio

För de datavetare som föredrar R-teamet bör IDE-valet vara RStudio, på grund av dess många funktioner. Du kan installera det på ett skrivbord med Windows, macOS eller Linux, eller så kan du köra det från en webbläsare om du inte vill installera det lokalt. Båda versionerna erbjuder godsaker som syntaxmarkering, smart indrag och kodkomplettering. Det finns en integrerad datavisare som är praktisk när du behöver bläddra i tabelldata.

Felsökningsläget gör det möjligt att se hur data uppdateras dynamiskt när ett program eller skript körs steg för steg. För versionskontroll integrerar RStudio stöd för SVN och Git. Ett trevligt plus är en möjlighet att skapa interaktiv grafik, med Shiny och ger bibliotek.

Din personliga verktygslåda

Vid det här laget bör du ha en fullständig bild av de verktyg du bör känna till för att utmärka dig inom datavetenskap. Vi hoppas också att vi gav dig tillräckligt med information för att bestämma vilket som är det mest bekväma alternativet inom varje verktygskategori. Nu är det upp till dig. Datavetenskap är ett blomstrande område utveckla en karriär. Men om du vill göra det måste du hänga med i förändringarna i trender och teknologier, eftersom de sker nästan dagligen.