Vad är data science? [BLOCK_TYPE SECTION/STEP]
Data science är inte bara maskininlärning. Det är inte bara statistik. Det är inte bara programmering. [BLOCK_TYPE SECTION/STEP]
Data science är disciplinen att extrahera användbar kunskap från data. De flesta av de arbeten som utförs är inte glamourösa: det är att rengöra smutsiga kalkylblad, att ställa rätt frågor och att kommunicera resultat till människor som inte bryr sig om din kod. [BLOCK_TYPE SECTION/STEP]
[BLOCK_TYPE SECTION/STEP]
Den typiska data science-pipeline ser ut så här:
1. Samla: samla rådata från databaser, API:er, CSV-filer eller webb-skrapning [BLOCK_TYPE SECTION/STEP]
2. Rensa: hantera saknade värden, korrigera datatyper, ta bort dubbletter [BLOCK_TYPE SECTION/STEP]
3. Utforska: visualisera fördelningar, hitta mönster, ställa frågor [BLOCK_TYPE SECTION/STEP]
4. Konstruera: skapa nya funktioner som hjälper modeller att lära [BLOCK_TYPE SECTION/STEP]
5. Modellera: träna algoritmer, evaluate performance, iterera [BLOCK_TYPE SECTION/STEP]
6. Kommunicera: presentera resultat för stakeholders som gör beslut [BLOCK_TYPE SECTION/STEP]
Om du någonsin använt Excel-pivottabeller, villkorsstyrd formatering eller VLOOKUP, har du redan gjort steg 1-3. Den här lektionen överbryggar den erfarenheten till den Python-baserade arbetsflödet som används i industry.
Warm-Up
Din dataerfarenhet
Alla har arbetat med data i någon form: ett budgetkalkylblad, en betygstracker, en fitnessapp, till och med en spellista med uppspelningsantal.
Skräp in, skräp ut
Varför städning är viktigt
Data scientists lägger 60-80% av sin tid på att städa data. Detta är inte en överdrift: det är ett konsekvent resultat från branschundersökningar.
Anledningen är enkel: skräp in, skräp ut. Om din data har fel, missing values eller inkonsekventa format, kommer varje analys som bygger på den att vara felaktig. En perfekt modell tränad på smutsig data ger med säkerhet felaktiga svar.
Vanliga datafel
- Missing values: celler är tomma. Var datan inte insamlad, eller är värdet egentligen noll? Dessa två situationer kräver olika hantering.
- Felaktiga datatyper: en kolumn med siffror som lagras som text, datum i inkonsekventa format (01/02/2024: är det den 2:a januari eller den 1:a februari?)
- Outliers: en lönekolumn har en post på $1,000,000,000. Är det en verklig siffra, eller en stavfel? Oavsett vilket kommer den att snedvrida dina genomsnitt.
- Dubbletter: samma post förekommer två gånger eftersom två system slagits samman på ett ofullständigt sätt
- Kategorisk kodning: en kolumn innehåller 'Yes', 'yes', 'Y', 'TRUE' och '1'. Dessa betyder alla samma sak, men din dator vet inte det.
I pandas (det vanliga Python-biblioteket för data), hanterar du dessa med metoder som dropna(), fillna(), astype() och drop_duplicates(). Men det svåra är inte koden: det är att bestämma vad man ska göra med varje problem.
Rengöringsbeslut
Besluta vad man ska göra
Här är ett verkligt scenario. Du har ett dataset med 10 000 kundposter. Kolumnen 'age' har 500 saknade värden.
Dina alternativ:
- Ta bort raderna: ta bort alla 500 poster. Enkelt, men du förlorar 5 % av din data. Om de 500 kunderna delar en egenskap (kanske hoppade de över åldersfältet eftersom de är integritetsmedvetna), kan borttagning introducera bias.
- Fyll med medelvärdet: ersätt tomma värden med genomsnittlig ålder. Snabbt, men det minskar artificiellt variansen i din ålderskolumn.
- Fyll med medianen: bättre än medelvärdet om åldersfördelningen är snedfördelad (ett fåtal mycket gamla eller mycket unga kunder som drar upp medelvärdet).
- Använd en flagga: skapa en ny kolumn som heter 'age_missing' (1 eller 0) och fyll den ursprungliga kolumnen med medianen. Nu kan din modell lära sig om själva saknade värden är informative.
Det finns ingen universell rättighet. Valet beror på varför data saknas och vad du planerar att göra med den.
Ställa rätt frågor
Explorativ dataanalys (EDA)
Innan du bygger någon modell behöver du förstå din data. EDA är processen att summera, visualisera och ifrågasätta ett dataset för att hitta mönster, anomalier och relationer.
Nyckelverktyg
- Histogram: visar fördelningen av en enskild variabel. Är den klockformad? Skevad? Bimodal (två toppar)? Ett histogram över inkomst är alltid högerskev eftersom ett fåtal personer tjänar betydligt mer än majoriteten.
- Spridningsdiagram: visar sambandet mellan två variabler. Väger längre personer mer? Korresponderar mer studietid med högre betyg? Mönstret (eller avsaknaden av mönster) talar om för dig om ett samband finns.
- Korrelationskoefficient: ett tal mellan -1 och +1 som mäter linjär association. +1 betyder perfekt positivt samband, -1 betyder perfekt negativt samband, 0 betyder ingen linjär relation. Men korrelation innebär inte kausalitet: glassförsäljning och drunkningsolyckor är korrelerade eftersom båda ökar i sommaren.
- Sammanfattande statistik: medelvärde, median, standard偏差, min, max. I pandas: df.describe() ger dig alla dessa i en rad.
Den verkliga färdigheten
Verktygen är lätta att lära sig. Det svåra är att ställa rätt frågor. Dålig fråga: 'Vad säger datan?' Bra fråga: 'Har kunder som kontaktar support inom den första veckan högre retention rates?'
Korrelationsfälla
Korrelation vs. Kausalitet
Detta är det enskilt viktigaste konceptet inom dataläskunnighet. Två variabler kan vara starkt korrelerade utan att den ena orsakar den andra.
Klassiska exempel:
- Städer med fler brandmän har fler bränder. (Större städer har både.)
- Elever som äter frukost får bättre betyg. (Kanske har rikare familjer både mer sannolikhet att erbjuda frukost OCH akademiskt stöd.)
- Länder som konsumerar mer choklad vinner fler Nobelpris. (Båda korrelerar med nationell välstånd.)
Den dolda faktorn kallas en confounding variable: en tredje variabel som driver båda de du tittar på.
Skapa användbara variabler
Vad är funktionsutveckling?
En feature är en indatavariabel som en modell använder för att göra förutsägelser. Funktionsutveckling är konsten att skapa nya features från rådata för att hjälpa modeller att lära sig mönster som de och
Raw data rarely comes in the form models need. Consider a dataset with a 'date of birth' column. A model cannot do much with raw dates. But if you create an 'age' feature from it, suddenly the model can learn age-based patterns.
Common Techniques
- Normalisering: skalning av siffror till ett gemensamt intervall (0 till 1, eller medelvärde=0 och standardavvikelse=1). Utan detta kommer en egenskap som mäts i tusentals (lön) att dominera en egenskap som mäts i enstaka siffror (år av erfarenhet).
- One-hot encoding: konvertering av kategoriska variabler till binära kolumner. En 'färg'-kolumn med värden [röd, blå, grön] blir tre kolumner: 'färg_röd', 'färg_blå', 'färg_grön', var och en med 0 eller 1.
- Binning: att omvandla en kontinuerlig variabel till kategorier. Ålder 0-17 blir 'minderårig', 18-64 blir 'vuxen', 65+ blir 'senior'. Detta hjälper när relationen är inte linjär.
- Interaktionsfunktioner: multiplicering av två egenskaper tillsammans. 'Kvadratmeter gånger antal badrum' kan förutsäga huspriset bättre än antingen ensamt.
- Domänkunskap: den mest kraftfulla tekniken. En läkare som skapar funktioner för en medicinsk modell och känner till vilka labbvärden som är重要的. En marknadsförare som vet att 'dagar sedan senaste köpet' är比 'köpdatum' mer användbar. Ingen algoritm kan ersätta detta.
Funktionsövning
Tillämpa funktionsutveckling
Föreställ dig att du bygger en modell för att förutsäga vilka kunder som kommer att avbryta sin streamingprenumeration nästa månad. Din rådata inkluderar:
- Konto skapat datum
- Senaste inloggningsdatum
- Antal serier som tittats på förra månaden
- Månatligt betalningsbelopp
- Kundsupportärenden som skapats
- Land
Tränings-/testdelning
Varför du delar upp din data
Den viktigaste regeln inom modellering: aldrig utvärdera en modell på samma data som du tränade den på.
Om du gör det kan modellen bara memorera svaren. Den kommer att prestera perfekt på träningsdatan men misslyckas på ny, osedd data. Detta kallas overfitting: modellen har lärt sig bruset i din specifika dataset istället för de verkliga mönstren.
Standardpraxis är att dela upp din data:
- Träningsmängd (vanligtvis 70-80%): modellen lär sig från detta
- Testmängd (vanligtvis 20-30%): hålls tillbaka, används endast för att utvärdera den slutgiltiga modellen
I scikit-learn: X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
Vanliga algoritmer
- Linjär regression: drar den bästa anpassade raka linjen genom data. Enkel, tolkningsbar, fungerar när relationen är ungefär linjär. Förutsäger ett tal (pris, temperatur, poäng).
- Beslutsträd: ett flödesschema av ja/nej-frågor. Lätt att förstå och förklara. Benägen för överanpassning om inte beskuren eller begränsad i djup.
- Slumpmässiga skogar: många beslutsträd som röstar tillsammans. Mer exakt än ett enda träd, mindre benägen för överanpassning, men svårare att förklara.
Överanpassning vs. Underanpassning
- Överanpassning: modellen är för komplex. Den memorerar träningsdata, inklusive brus. Hög träffsäkerhet på träningsdata, låg träffsäkerhet på testdata.
- Underanpassning: modellen är för enkel. Den kan inte fånga de verkliga mönstren. Låg träffsäkerhet på både träningsdata och testdata.
Målet är den söta punkten däremellan.
Utvärderingsmått
Hur vet du om din modell är bra?
Noggrannhet ensamt kan vara missvisande. Om 95 % av e-postmeddelandena inte är spam, är en modell som alltid säger 'inte spam' 95 % korrekt: men helt oanvändbar.
Nyckelmått:
- Noggrannhet: procentandel av korrekta förutsägelser. Användbar när klasserna är balanserade.
- Precision: av alla saker som modellen flaggade som positiva, hur många var det faktiskt? Hög precision innebär få falska larm.
- Recall: av alla faktiska positiva fall, hur många fångade modellen? Hög recall innebär få missade fall.
- F1 score: det harmoniska medelvärdet av precision och recall. Användbart när du behöver balansera båda.
- RMSE (Root Mean Squared Error): för regression (att förutsäga tal). Hur långt ifrån är förutsägelserna i genomsnitt?
Vilken metrik som är viktigast beror på problemet. För cancerdetektering är recall viktigare: du vill inte missa ett fall. För spamfiltrering är precision viktigare: du vill inte radera ett riktigt mejl.
Dataanalytiker vs. Data Scientist vs. ML Engineer
Tre distinkta roller
Dataområdet har tre huvudkarriärspår, och de kräver olika färdigheter.
Dataanalytiker
- Fokus: besvara affärsfrågor med befintlig data
- Verktyg: SQL, Excel, Tableau, grundläggande Python eller R
- Vardag: dashboards, rapporter, A/B-testanalys, presentationer för intressenter
- Ingångsväg: ofta den mest tillgängliga. Många analytiker börjar utan en CS-examen.
Data Scientist
- Fokus: bygga prediktiva modeller & hitta mönster i komplex data
- Verktyg: Python (pandas, scikit-learn, matplotlib), statistik, SQL, Jupyter notebooks
- Daglig verksamhet: EDA, feature engineering, modellbyggande, experimentering
- Inträdesväg: kräver vanligtvis statistik- eller kvantitativ bakgrund. Bootcamps och självstudier är möjliga.
Maskininlärningsingenjör
- Fokus: driftsättning och skalning av modeller i produktionssystem
- Verktyg: Python, TensorFlow/PyTorch, Docker, molnplattformar (AWS/GCP), API:er
- Daglig verksamhet: modelloptimering, pipeline-infrastruktur, övervakning av modeller i produktion
- Inträdesväg: kräver vanligtvis starka mjukvaruutvecklingsfärdigheter samt ML-kunskap.
Bygga en portfölj
Rekryteringsansvariga bryr sig om vad du kan göra, inte bara vad du har studerat. En portfölj med 3-5 starka projekt på GitHub betyder mer än certifieringar. Bra projekt använder riktiga (inte leksaks-) dataset, innehåller tydlig dokumentation och visar hela pipelinen: från stökig data till handlingsbara insikter.
Dina nästa steg
Vart ska du gå härifrån
Verktygen i branschen är gratis och tillgängliga:
- pandas: det standardiserade Python-biblioteket för datamanipulation
- matplotlib / seaborn: visualiseringsbibliotek
- scikit-learn: det viktigaste verktyget för klassisk maskininlärning
- Jupyter notebooks: interaktiva kodningsmiljöer där du kan blanda kod, resultat och anteckningar
- Kaggle: gratis dataset, tävlingar och en gemenskap av praktiker
Börja med ett riktigt dataset som intresserar dig. Ladda ner det, städa det, utforska det, & försök att svara på en fråga. Det projektet kommer att lära dig mer än någon kurs.