18 KiB
AGENTS.md
Επισκόπηση Έργου
Αυτό είναι το Machine Learning για Αρχάριους, ένα ολοκληρωμένο πρόγραμμα σπουδών 12 εβδομάδων με 26 μαθήματα που καλύπτουν κλασικές έννοιες μηχανικής μάθησης χρησιμοποιώντας Python (κυρίως με Scikit-learn) και R. Το αποθετήριο έχει σχεδιαστεί ως πόρος αυτοδιδασκαλίας με πρακτικά έργα, κουίζ και ασκήσεις. Κάθε μάθημα εξερευνά έννοιες ML μέσω δεδομένων από πραγματικό κόσμο που προέρχονται από διάφορους πολιτισμούς και περιοχές παγκοσμίως.
Κύρια στοιχεία:
- Εκπαιδευτικό Περιεχόμενο: 26 μαθήματα που καλύπτουν εισαγωγή στη ML, παλινδρόμηση, ταξινόμηση, ομαδοποίηση, NLP, χρονοσειρές και ενισχυτική μάθηση
- Εφαρμογή Κουίζ: Εφαρμογή κουίζ βασισμένη στο Vue.js με αξιολογήσεις πριν και μετά το μάθημα
- Υποστήριξη Πολλών Γλωσσών: Αυτόματες μεταφράσεις σε 40+ γλώσσες μέσω GitHub Actions
- Διπλή Υποστήριξη Γλωσσών: Μαθήματα διαθέσιμα τόσο σε Python (Jupyter notebooks) όσο και σε R (αρχεία R Markdown)
- Μάθηση μέσω Έργων: Κάθε θέμα περιλαμβάνει πρακτικά έργα και ασκήσεις
Δομή Αποθετηρίου
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
Κάθε φάκελος μαθήματος περιέχει συνήθως:
README.md- Κύριο περιεχόμενο μαθήματοςnotebook.ipynb- Jupyter notebook για Pythonsolution/- Κώδικας λύσεων (εκδόσεις Python και R)assignment.md- Ασκήσεις πρακτικήςimages/- Οπτικοί πόροι
Εντολές Ρύθμισης
Για Μαθήματα Python
Τα περισσότερα μαθήματα χρησιμοποιούν Jupyter notebooks. Εγκαταστήστε τις απαιτούμενες εξαρτήσεις:
# 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
Για Μαθήματα R
Τα μαθήματα R βρίσκονται στους φακέλους solution/R/ ως .rmd ή .ipynb αρχεία:
# Install R and required packages
# In R console:
install.packages(c("tidyverse", "tidymodels", "caret"))
Για Εφαρμογή Κουίζ
Η εφαρμογή κουίζ είναι μια εφαρμογή Vue.js που βρίσκεται στον φάκελο quiz-app/:
cd quiz-app
npm install
Για Ιστότοπο Τεκμηρίωσης
Για να εκτελέσετε την τεκμηρίωση τοπικά:
# Install Docsify
npm install -g docsify-cli
# Serve from repository root
docsify serve
# Access at http://localhost:3000
Ροή Εργασίας Ανάπτυξης
Εργασία με Notebooks Μαθημάτων
- Μεταβείτε στον φάκελο μαθήματος (π.χ.,
2-Regression/1-Tools/) - Ανοίξτε το Jupyter notebook:
jupyter notebook notebook.ipynb - Εργαστείτε με το περιεχόμενο και τις ασκήσεις του μαθήματος
- Ελέγξτε τις λύσεις στον φάκελο
solution/αν χρειαστεί
Ανάπτυξη Python
- Τα μαθήματα χρησιμοποιούν τυπικές βιβλιοθήκες επιστήμης δεδομένων Python
- Jupyter notebooks για διαδραστική μάθηση
- Κώδικας λύσεων διαθέσιμος στον φάκελο
solution/κάθε μαθήματος
Ανάπτυξη R
- Τα μαθήματα R είναι σε μορφή
.rmd(R Markdown) - Λύσεις βρίσκονται στους υποφακέλους
solution/R/ - Χρησιμοποιήστε RStudio ή Jupyter με πυρήνα R για να εκτελέσετε notebooks R
Ανάπτυξη Εφαρμογής Κουίζ
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
Οδηγίες Δοκιμών
Δοκιμή Εφαρμογής Κουίζ
cd quiz-app
# Lint code
npm run lint
# Build to verify no errors
npm run build
Σημείωση: Αυτό είναι κυρίως ένα αποθετήριο εκπαιδευτικού προγράμματος. Δεν υπάρχουν αυτοματοποιημένες δοκιμές για το περιεχόμενο των μαθημάτων. Η επικύρωση γίνεται μέσω:
- Ολοκλήρωσης ασκήσεων μαθήματος
- Επιτυχούς εκτέλεσης κελιών notebook
- Ελέγχου αποτελεσμάτων σε σχέση με τις αναμενόμενες λύσεις
Οδηγίες Στυλ Κώδικα
Κώδικας Python
- Ακολουθήστε τις οδηγίες στυλ PEP 8
- Χρησιμοποιήστε σαφή, περιγραφικά ονόματα μεταβλητών
- Συμπεριλάβετε σχόλια για σύνθετες λειτουργίες
- Τα Jupyter notebooks πρέπει να έχουν markdown κελιά που εξηγούν έννοιες
JavaScript/Vue.js (Εφαρμογή Κουίζ)
- Ακολουθεί τον οδηγό στυλ Vue.js
- Ρύθμιση ESLint στο
quiz-app/package.json - Εκτελέστε
npm run lintγια έλεγχο και αυτόματη διόρθωση προβλημάτων
Τεκμηρίωση
- Τα αρχεία Markdown πρέπει να είναι σαφή και καλά δομημένα
- Συμπεριλάβετε παραδείγματα κώδικα σε περιφραγμένα μπλοκ κώδικα
- Χρησιμοποιήστε σχετικούς συνδέσμους για εσωτερικές αναφορές
- Ακολουθήστε τις υπάρχουσες συμβάσεις μορφοποίησης
Δημιουργία και Ανάπτυξη
Ανάπτυξη Εφαρμογής Κουίζ
Η εφαρμογή κουίζ μπορεί να αναπτυχθεί σε Azure Static Web Apps:
-
Προαπαιτούμενα:
- Λογαριασμός Azure
- Αποθετήριο GitHub (ήδη forked)
-
Ανάπτυξη στο Azure:
- Δημιουργήστε πόρο Azure Static Web App
- Συνδέστε το αποθετήριο GitHub
- Ορίστε τοποθεσία εφαρμογής:
/quiz-app - Ορίστε τοποθεσία εξόδου:
dist - Το Azure δημιουργεί αυτόματα GitHub Actions workflow
-
GitHub Actions Workflow:
- Το αρχείο workflow δημιουργείται στο
.github/workflows/azure-static-web-apps-*.yml - Αυτόματα δημιουργεί και αναπτύσσει με push στον κύριο κλάδο
- Το αρχείο workflow δημιουργείται στο
PDF Τεκμηρίωσης
Δημιουργήστε PDF από την τεκμηρίωση:
npm install
npm run convert
Ροή Εργασίας Μετάφρασης
Σημαντικό: Οι μεταφράσεις γίνονται αυτόματα μέσω GitHub Actions χρησιμοποιώντας το Co-op Translator.
- Οι μεταφράσεις δημιουργούνται αυτόματα όταν γίνονται αλλαγές στον κλάδο
main - ΜΗΝ μεταφράζετε χειροκίνητα το περιεχόμενο - το σύστημα το διαχειρίζεται
- Το workflow ορίζεται στο
.github/workflows/co-op-translator.yml - Χρησιμοποιεί υπηρεσίες Azure AI/OpenAI για μετάφραση
- Υποστηρίζει 40+ γλώσσες
Οδηγίες Συνεισφοράς
Για Συνεισφέροντες Περιεχομένου
- Κάντε fork το αποθετήριο και δημιουργήστε έναν κλάδο χαρακτηριστικών
- Κάντε αλλαγές στο περιεχόμενο μαθημάτων αν προσθέτετε/ενημερώνετε μαθήματα
- Μην τροποποιείτε αρχεία μεταφρασμένα - αυτά δημιουργούνται αυτόματα
- Δοκιμάστε τον κώδικα σας - βεβαιωθείτε ότι όλα τα κελιά notebook εκτελούνται επιτυχώς
- Επαληθεύστε συνδέσμους και εικόνες ότι λειτουργούν σωστά
- Υποβάλετε ένα pull request με σαφή περιγραφή
Οδηγίες Pull Request
- Μορφή τίτλου:
[Ενότητα] Σύντομη περιγραφή αλλαγών- Παράδειγμα:
[Regression] Διόρθωση τυπογραφικού λάθους στο μάθημα 5 - Παράδειγμα:
[Quiz-App] Ενημέρωση εξαρτήσεων
- Παράδειγμα:
- Πριν την υποβολή:
- Βεβαιωθείτε ότι όλα τα κελιά notebook εκτελούνται χωρίς σφάλματα
- Εκτελέστε
npm run lintαν τροποποιείτε το quiz-app - Επαληθεύστε τη μορφοποίηση markdown
- Δοκιμάστε οποιαδήποτε νέα παραδείγματα κώδικα
- Το PR πρέπει να περιλαμβάνει:
- Περιγραφή αλλαγών
- Λόγο αλλαγών
- Στιγμιότυπα οθόνης αν υπάρχουν αλλαγές UI
- Κώδικας Συμπεριφοράς: Ακολουθήστε τον Κώδικα Συμπεριφοράς Ανοιχτού Κώδικα της Microsoft
- CLA: Θα χρειαστεί να υπογράψετε τη Συμφωνία Άδειας Χρήσης Συνεισφέροντος
Δομή Μαθήματος
Κάθε μάθημα ακολουθεί ένα συνεπές μοτίβο:
- Κουίζ πριν το μάθημα - Δοκιμή βασικών γνώσεων
- Περιεχόμενο μαθήματος - Γραπτές οδηγίες και εξηγήσεις
- Επιδείξεις κώδικα - Πρακτικά παραδείγματα σε notebooks
- Έλεγχοι γνώσεων - Επαλήθευση κατανόησης καθ' όλη τη διάρκεια
- Πρόκληση - Εφαρμογή εννοιών ανεξάρτητα
- Άσκηση - Εκτεταμένη πρακτική
- Κουίζ μετά το μάθημα - Αξιολόγηση μαθησιακών αποτελεσμάτων
Αναφορά Κοινών Εντολών
# 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
Πρόσθετοι Πόροι
- Συλλογή Microsoft Learn: Μαθήματα ML για Αρχάριους
- Εφαρμογή Κουίζ: Κουίζ online
- Πίνακας Συζητήσεων: Συζητήσεις GitHub
- Βίντεο Οδηγίες: Λίστα αναπαραγωγής YouTube
Κύριες Τεχνολογίες
- Python: Κύρια γλώσσα για μαθήματα ML (Scikit-learn, Pandas, NumPy, Matplotlib)
- R: Εναλλακτική υλοποίηση χρησιμοποιώντας tidyverse, tidymodels, caret
- Jupyter: Διαδραστικά notebooks για μαθήματα Python
- R Markdown: Έγγραφα για μαθήματα R
- Vue.js 3: Πλαίσιο εφαρμογής κουίζ
- Flask: Πλαίσιο εφαρμογής ιστού για ανάπτυξη μοντέλων ML
- Docsify: Γεννήτρια ιστότοπου τεκμηρίωσης
- GitHub Actions: CI/CD και αυτοματοποιημένες μεταφράσεις
Σκέψεις Ασφαλείας
- Χωρίς μυστικά στον κώδικα: Μην δεσμεύετε ποτέ API keys ή διαπιστευτήρια
- Εξαρτήσεις: Διατηρήστε ενημερωμένα τα πακέτα npm και pip
- Εισαγωγή χρήστη: Τα παραδείγματα εφαρμογών Flask περιλαμβάνουν βασική επικύρωση εισόδου
- Ευαίσθητα δεδομένα: Τα παραδείγματα συνόλων δεδομένων είναι δημόσια και μη ευαίσθητα
Αντιμετώπιση Προβλημάτων
Jupyter Notebooks
- Προβλήματα πυρήνα: Επανεκκινήστε τον πυρήνα αν τα κελιά κολλήσουν: Kernel → Restart
- Σφάλματα εισαγωγής: Βεβαιωθείτε ότι όλες οι απαιτούμενες βιβλιοθήκες είναι εγκατεστημένες με pip
- Προβλήματα διαδρομής: Εκτελέστε τα notebooks από τον φάκελο που τα περιέχει
Εφαρμογή Κουίζ
- npm install αποτυγχάνει: Καθαρίστε την cache npm:
npm cache clean --force - Συγκρούσεις θύρας: Αλλάξτε θύρα με:
npm run serve -- --port 8081 - Σφάλματα δημιουργίας: Διαγράψτε το
node_modulesκαι επανεγκαταστήστε:rm -rf node_modules && npm install
Μαθήματα R
- Πακέτο δεν βρέθηκε: Εγκαταστήστε με:
install.packages("package-name") - Απόδοση RMarkdown: Βεβαιωθείτε ότι το πακέτο rmarkdown είναι εγκατεστημένο
- Προβλήματα πυρήνα: Ίσως χρειαστεί να εγκαταστήσετε το IRkernel για το Jupyter
Σημειώσεις Σχετικές με το Έργο
- Αυτό είναι κυρίως ένα εκπαιδευτικό πρόγραμμα σπουδών, όχι κώδικας παραγωγής
- Η εστίαση είναι στην κατανόηση εννοιών ML μέσω πρακτικής εξάσκησης
- Τα παραδείγματα κώδικα δίνουν προτεραιότητα στη σαφήνεια αντί της βελτιστοποίησης
- Τα περισσότερα μαθήματα είναι αυτοτελή και μπορούν να ολοκληρωθούν ανεξάρτητα
- Παρέχονται λύσεις, αλλά οι μαθητές πρέπει να προσπαθήσουν πρώτα τις ασκήσεις
- Το αποθετήριο χρησιμοποιεί Docsify για τεκμηρίωση ιστού χωρίς βήμα δημιουργίας
- Sketchnotes παρέχουν οπτικές περιλήψεις εννοιών
- Υποστήριξη πολλών γλωσσών καθιστά το περιεχόμενο προσβάσιμο παγκοσμίως
Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.