Η εργασία αυτή υλοποιήθηκε στα πλαίσια του μαθήματος Τεχνητή Νοημοσύνη στο Χαροκόπειο Πανεπιστήμιο – Τμήμα Πληροφορικής και Τηλεματικής.
Περιλαμβάνει την υλοποίηση ενός απλού γραμμικού μοντέλου παλινδρόμησης (Linear Regression) από το μηδέν και τη σύγκρισή του με την έτοιμη υλοποίηση του scikit-learn, χρησιμοποιώντας το California Housing Dataset.
Εφαρμόζεται:
- Εκπαίδευση μοντέλου με 70% του συνόλου δεδομένων και δοκιμή στο υπόλοιπο 30%.
- Επαναλήψεις της διαδικασίας 20 φορές με τυχαίο διαχωρισμό, και υπολογισμό μέσης τιμής και τυπικής απόκλισης του RMSE.
- Σύγκριση των αποτελεσμάτων της χειροποίητης υλοποίησης με την υλοποίηση του scikit-learn.
linear_regression.py: Χειροκίνητη υλοποίηση του αλγορίθμου γραμμικής παλινδρόμησης.fit(X, y)predict(X)evaluate(X, y)(επιστρέφειy_predictκαιMSE)
test_lr.py: Εκπαίδευση και αξιολόγηση του μοντέλου χρησιμοποιώντας τη χειροποίητη υλοποίηση.- Φορτώνει το California Housing dataset από το
sklearn.datasets. - Χωρίζει το dataset σε σύνολα εκπαίδευσης/δοκιμής (70% / 30%).
- Εκπαιδεύει και αξιολογεί το μοντέλο.
- Επαναλαμβάνει τη διαδικασία 20 φορές με διαφορετικά
random_state. - Τυπώνει το
RMSEγια κάθε επανάληψη και στο τέλος τη μέση τιμή και τυπική απόκλιση.
- Φορτώνει το California Housing dataset από το
test_lr_sklearn.py: Εκπαίδευση και αξιολόγηση χρησιμοποιώντας τοLinearRegressionτουscikit-learn.README.md: Οδηγίες χρήσης.
- Εγκατάσταση βιβλιοθηκών (αν χρησιμοποιείτε virtual environment, ενεργοποιήστε το πρώτα):
pip install numpy scikit-learn- Για να εκπαιδεύσετε και να αξιολογήσετε το μοντέλο με τη χειροποίητη υλοποίηση:
python test_lr.py- Για να συγκρίνετε με την υλοποίηση του scikit-learn:
python test_lr_scikit-learn.pyRun 1: Test RMSE = 0.7283
Run 2: Test RMSE = 0.7122
Run 3: Test RMSE = 0.7270
...
Mean Test RMSE after 20 runs : 0.7280
Standard Deviation of Test RMSE: 0.0095
Run 1: Test RMSE = 0.7370
Run 2: Test RMSE = 0.7278
Run 3: Test RMSE = 0.7342
...
Mean Test RMSE after 20 runs : 0.7299
Standard Deviation of Test RMSE: 0.0075
Τα splits είναι επαναλήψιμα καθώς χρησιμοποιείται σταθερό random_state. Τα αποτελέσματα θα είναι ίδια σε κάθε εκτέλεση, εφόσον δεν αλλάξει το dataset ή η βιβλιοθήκη.
- Υπολογισμός RMSE (Root Mean Squared Error) για εκπαίδευση και δοκιμή.
- 20 επαναλήψεις με διαφορετικό τυχαίο διαχωρισμό εκπαίδευσης/δοκιμής.
- Υπολογισμός μέσης τιμής και τυπικής απόκλισης του RMSE.
- Σύγκριση με την
LinearRegressionτουscikit-learn.
- Περιβάλλον Python 3
- NumPy
- scikit-learn
- Name: Exarchou Athos
- Student ID: it2022134
- Email: [email protected] ή [email protected]
Για απορίες σχετικά με την υλοποίηση ή την εκτέλεση του κώδικα, μπορείτε να στείλετε μήνυμα στο [email protected] ή στο [email protected].