11 KiB
AGENTS.md
Projektoversigt
Dette er Machine Learning for Beginners, et omfattende 12-ugers, 26-lektioners kursus, der dækker klassiske machine learning-koncepter ved hjælp af Python (primært med Scikit-learn) og R. Repositoriet er designet som en selvstudie-læringsressource med praktiske projekter, quizzer og opgaver. Hver lektion udforsker ML-koncepter gennem virkelige data fra forskellige kulturer og regioner verden over.
Nøglekomponenter:
- Uddannelsesindhold: 26 lektioner, der dækker introduktion til ML, regression, klassifikation, clustering, NLP, tidsserier og forstærkningslæring
- Quiz-applikation: Vue.js-baseret quiz-app med før- og efter-lektionsvurderinger
- Flersproget support: Automatiske oversættelser til 40+ sprog via GitHub Actions
- Dobbelt sprogsupport: Lektioner tilgængelige i både Python (Jupyter-notebooks) og R (R Markdown-filer)
- Projektbaseret læring: Hvert emne inkluderer praktiske projekter og opgaver
Repositoriets struktur
ML-For-Beginners/
├── 1-Introduction/ # ML basics, history, fairness, techniques
├── 2-Regression/ # Regression models with Python/R
├── 3-Web-App/ # Flask web app for ML model deployment
├── 4-Classification/ # Classification algorithms
├── 5-Clustering/ # Clustering techniques
├── 6-NLP/ # Natural Language Processing
├── 7-TimeSeries/ # Time series forecasting
├── 8-Reinforcement/ # Reinforcement learning
├── 9-Real-World/ # Real-world ML applications
├── quiz-app/ # Vue.js quiz application
├── translations/ # Auto-generated translations
└── sketchnotes/ # Visual learning aids
Hver lektionsmappe indeholder typisk:
README.md- Hovedindholdet for lektionennotebook.ipynb- Python Jupyter-notebooksolution/- Løsningskode (Python- og R-versioner)assignment.md- Øvelsesopgaverimages/- Visuelle ressourcer
Opsætningskommandoer
For Python-lektioner
De fleste lektioner bruger Jupyter-notebooks. Installer nødvendige afhængigheder:
# Install Python 3.8+ if not already installed
python --version
# Install Jupyter
pip install jupyter
# Install common ML libraries
pip install scikit-learn pandas numpy matplotlib seaborn
# For specific lessons, check lesson-specific requirements
# Example: Web App lesson
pip install flask
For R-lektioner
R-lektioner findes i solution/R/ mapper som .rmd eller .ipynb filer:
# Install R and required packages
# In R console:
install.packages(c("tidyverse", "tidymodels", "caret"))
For Quiz-applikationen
Quiz-appen er en Vue.js-applikation placeret i quiz-app/ mappen:
cd quiz-app
npm install
For dokumentationssiden
For at køre dokumentationen lokalt:
# Install Docsify
npm install -g docsify-cli
# Serve from repository root
docsify serve
# Access at http://localhost:3000
Udviklingsarbejdsgang
Arbejde med lektionsnotebooks
- Naviger til lektionsmappen (f.eks.
2-Regression/1-Tools/) - Åbn Jupyter-notebooken:
jupyter notebook notebook.ipynb - Gennemgå lektionsindholdet og øvelserne
- Tjek løsninger i
solution/mappen, hvis nødvendigt
Python-udvikling
- Lektioner bruger standard Python data science-biblioteker
- Jupyter-notebooks til interaktiv læring
- Løsningskode tilgængelig i hver lektions
solution/mappe
R-udvikling
- R-lektioner er i
.rmdformat (R Markdown) - Løsninger findes i
solution/R/undermapper - Brug RStudio eller Jupyter med R-kernel til at køre R-notebooks
Quiz-applikationsudvikling
cd quiz-app
# Start development server
npm run serve
# Access at http://localhost:8080
# Build for production
npm run build
# Lint and fix files
npm run lint
Testinstruktioner
Test af quiz-applikationen
cd quiz-app
# Lint code
npm run lint
# Build to verify no errors
npm run build
Bemærk: Dette er primært et uddannelsesrepositorium. Der er ingen automatiserede tests for lektionsindhold. Validering sker gennem:
- Fuldførelse af lektionsøvelser
- Succesfuld kørsel af notebook-celler
- Sammenligning af output med forventede resultater i løsninger
Kodestilretningslinjer
Python-kode
- Følg PEP 8 stilretningslinjer
- Brug klare, beskrivende variabelnavne
- Inkluder kommentarer til komplekse operationer
- Jupyter-notebooks bør have markdown-celler, der forklarer koncepter
JavaScript/Vue.js (Quiz-app)
- Følger Vue.js stilguide
- ESLint-konfiguration i
quiz-app/package.json - Kør
npm run lintfor at tjekke og automatisk rette problemer
Dokumentation
- Markdown-filer skal være klare og velstrukturerede
- Inkluder kodeeksempler i indhegnede kodeblokke
- Brug relative links til interne referencer
- Følg eksisterende formateringskonventioner
Bygning og udrulning
Udrulning af quiz-applikationen
Quiz-appen kan udrulles til Azure Static Web Apps:
-
Forudsætninger:
- Azure-konto
- GitHub-repositorium (allerede forked)
-
Udrul til Azure:
- Opret Azure Static Web App-ressource
- Forbind til GitHub-repositorium
- Angiv app-placering:
/quiz-app - Angiv output-placering:
dist - Azure opretter automatisk GitHub Actions workflow
-
GitHub Actions workflow:
- Workflow-fil oprettet i
.github/workflows/azure-static-web-apps-*.yml - Bygger og udruller automatisk ved push til main branch
- Workflow-fil oprettet i
Dokumentations-PDF
Generer PDF fra dokumentationen:
npm install
npm run convert
Oversættelsesarbejdsgang
Vigtigt: Oversættelser er automatiserede via GitHub Actions ved hjælp af Co-op Translator.
- Oversættelser genereres automatisk, når ændringer pushes til
mainbranch - MÅ IKKE manuelt oversætte indhold - systemet håndterer dette
- Workflow defineret i
.github/workflows/co-op-translator.yml - Bruger Azure AI/OpenAI-tjenester til oversættelse
- Understøtter 40+ sprog
Retningslinjer for bidrag
For indholdsbidragydere
- Fork repositoriet og opret en feature branch
- Foretag ændringer i lektionsindhold hvis du tilføjer/opdaterer lektioner
- Undlad at ændre oversatte filer - de genereres automatisk
- Test din kode - sørg for, at alle notebook-celler kører succesfuldt
- Verificer links og billeder fungerer korrekt
- Indsend en pull request med en klar beskrivelse
Retningslinjer for pull requests
- Titelformat:
[Sektion] Kort beskrivelse af ændringer- Eksempel:
[Regression] Ret stavefejl i lektion 5 - Eksempel:
[Quiz-App] Opdater afhængigheder
- Eksempel:
- Før indsendelse:
- Sørg for, at alle notebook-celler kører uden fejl
- Kør
npm run lint, hvis du ændrer quiz-app - Verificer markdown-formatering
- Test eventuelle nye kodeeksempler
- PR skal inkludere:
- Beskrivelse af ændringer
- Årsag til ændringer
- Skærmbilleder, hvis der er UI-ændringer
- Adfærdskodeks: Følg Microsoft Open Source Code of Conduct
- CLA: Du skal underskrive Contributor License Agreement
Lektionstruktur
Hver lektion følger et konsistent mønster:
- Quiz før lektionen - Test grundlæggende viden
- Lektionsindhold - Skriftlige instruktioner og forklaringer
- Kodeeksempler - Praktiske eksempler i notebooks
- Videnskontrol - Bekræft forståelse undervejs
- Udfordring - Anvend koncepter selvstændigt
- Opgave - Udvidet praksis
- Quiz efter lektionen - Vurder læringsresultater
Reference for almindelige kommandoer
# Python/Jupyter
jupyter notebook # Start Jupyter server
jupyter notebook notebook.ipynb # Open specific notebook
pip install -r requirements.txt # Install dependencies (where available)
# Quiz App
cd quiz-app
npm install # Install dependencies
npm run serve # Development server
npm run build # Production build
npm run lint # Lint and fix
# Documentation
docsify serve # Serve documentation locally
npm run convert # Generate PDF
# Git workflow
git checkout -b feature/my-change # Create feature branch
git add . # Stage changes
git commit -m "Description" # Commit changes
git push origin feature/my-change # Push to remote
Yderligere ressourcer
- Microsoft Learn Collection: ML for Beginners-moduler
- Quiz-app: Online quizzer
- Diskussionsforum: GitHub Discussions
- Videovejledninger: YouTube Playlist
Nøgleteknologier
- Python: Primært sprog til ML-lektioner (Scikit-learn, Pandas, NumPy, Matplotlib)
- R: Alternativ implementering ved hjælp af tidyverse, tidymodels, caret
- Jupyter: Interaktive notebooks til Python-lektioner
- R Markdown: Dokumenter til R-lektioner
- Vue.js 3: Quiz-applikationsramme
- Flask: Webapplikationsramme til ML-modeludrulning
- Docsify: Generator til dokumentationssider
- GitHub Actions: CI/CD og automatiserede oversættelser
Sikkerhedsovervejelser
- Ingen hemmeligheder i kode: Aldrig commit API-nøgler eller legitimationsoplysninger
- Afhængigheder: Hold npm- og pip-pakker opdaterede
- Brugerinput: Flask-webapp-eksempler inkluderer grundlæggende inputvalidering
- Følsomme data: Eksempeldatasæt er offentlige og ikke-følsomme
Fejlfinding
Jupyter-notebooks
- Kernelproblemer: Genstart kernel, hvis celler hænger: Kernel → Restart
- Importfejl: Sørg for, at alle nødvendige pakker er installeret med pip
- Stiproblemer: Kør notebooks fra deres indeholdende mappe
Quiz-applikation
- npm install fejler: Rens npm-cache:
npm cache clean --force - Portkonflikter: Skift port med:
npm run serve -- --port 8081 - Bygningsfejl: Slet
node_modulesog geninstaller:rm -rf node_modules && npm install
R-lektioner
- Pakke ikke fundet: Installer med:
install.packages("pakke-navn") - RMarkdown rendering: Sørg for, at rmarkdown-pakken er installeret
- Kernelproblemer: Kan kræve installation af IRkernel til Jupyter
Projektspecifikke noter
- Dette er primært et læringskursus, ikke produktionskode
- Fokus er på forståelse af ML-koncepter gennem praktisk øvelse
- Kodeeksempler prioriterer klarhed frem for optimering
- De fleste lektioner er selvstændige og kan gennemføres uafhængigt
- Løsninger er tilgængelige, men lærende bør forsøge øvelser først
- Repositoriet bruger Docsify til webdokumentation uden build-trin
- Sketchnotes giver visuelle opsummeringer af koncepter
- Flersproget support gør indhold globalt tilgængeligt
Ansvarsfraskrivelse:
Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten Co-op Translator. Selvom vi bestræber os på nøjagtighed, skal det bemærkes, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os ikke ansvar for misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.