You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/da/AGENTS.md

336 lines
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 lektionen
- `notebook.ipynb` - Python Jupyter-notebook
- `solution/` - Løsningskode (Python- og R-versioner)
- `assignment.md` - Øvelsesopgaver
- `images/` - Visuelle ressourcer
## Opsætningskommandoer
### For Python-lektioner
De fleste lektioner bruger Jupyter-notebooks. Installer nødvendige afhængigheder:
```bash
# 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:
```bash
# 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:
```bash
cd quiz-app
npm install
```
### For dokumentationssiden
For at køre dokumentationen lokalt:
```bash
# Install Docsify
npm install -g docsify-cli
# Serve from repository root
docsify serve
# Access at http://localhost:3000
```
## Udviklingsarbejdsgang
### Arbejde med lektionsnotebooks
1. Naviger til lektionsmappen (f.eks. `2-Regression/1-Tools/`)
2. Åbn Jupyter-notebooken:
```bash
jupyter notebook notebook.ipynb
```
3. Gennemgå lektionsindholdet og øvelserne
4. 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 `.rmd` format (R Markdown)
- Løsninger findes i `solution/R/` undermapper
- Brug RStudio eller Jupyter med R-kernel til at køre R-notebooks
### Quiz-applikationsudvikling
```bash
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
```bash
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 lint` for 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:
1. **Forudsætninger**:
- Azure-konto
- GitHub-repositorium (allerede forked)
2. **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
3. **GitHub Actions workflow**:
- Workflow-fil oprettet i `.github/workflows/azure-static-web-apps-*.yml`
- Bygger og udruller automatisk ved push til main branch
### Dokumentations-PDF
Generer PDF fra dokumentationen:
```bash
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 `main` branch
- **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
1. **Fork repositoriet** og opret en feature branch
2. **Foretag ændringer i lektionsindhold** hvis du tilføjer/opdaterer lektioner
3. **Undlad at ændre oversatte filer** - de genereres automatisk
4. **Test din kode** - sørg for, at alle notebook-celler kører succesfuldt
5. **Verificer links og billeder** fungerer korrekt
6. **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`
- **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](CODE_OF_CONDUCT.md)
- **CLA**: Du skal underskrive Contributor License Agreement
## Lektionstruktur
Hver lektion følger et konsistent mønster:
1. **Quiz før lektionen** - Test grundlæggende viden
2. **Lektionsindhold** - Skriftlige instruktioner og forklaringer
3. **Kodeeksempler** - Praktiske eksempler i notebooks
4. **Videnskontrol** - Bekræft forståelse undervejs
5. **Udfordring** - Anvend koncepter selvstændigt
6. **Opgave** - Udvidet praksis
7. **Quiz efter lektionen** - Vurder læringsresultater
## Reference for almindelige kommandoer
```bash
# 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](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
- **Quiz-app**: [Online quizzer](https://ff-quizzes.netlify.app/en/ml/)
- **Diskussionsforum**: [GitHub Discussions](https://github.com/microsoft/ML-For-Beginners/discussions)
- **Videovejledninger**: [YouTube Playlist](https://aka.ms/ml-beginners-videos)
## 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_modules` og 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](https://github.com/Azure/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.