Skip to content

This project implements a simple Linear Regression model from scratch and compares it to the implementation of scikit-learn, using the California Housing Dataset.

License

Notifications You must be signed in to change notification settings

AthosExarchou/Linear-Regression

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Τεχνητή Νοημοσύνη - Γραμμική Παλινδρόμηση

Περιγραφή

Η εργασία αυτή υλοποιήθηκε στα πλαίσια του μαθήματος Τεχνητή Νοημοσύνη στο Χαροκόπειο Πανεπιστήμιο – Τμήμα Πληροφορικής και Τηλεματικής.

Περιλαμβάνει την υλοποίηση ενός απλού γραμμικού μοντέλου παλινδρόμησης (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 για κάθε επανάληψη και στο τέλος τη μέση τιμή και τυπική απόκλιση.
  • test_lr_sklearn.py: Εκπαίδευση και αξιολόγηση χρησιμοποιώντας το LinearRegression του scikit-learn.
  • README.md: Οδηγίες χρήσης.

Οδηγίες Εκτέλεσης

  1. Εγκατάσταση βιβλιοθηκών (αν χρησιμοποιείτε virtual environment, ενεργοποιήστε το πρώτα):
pip install numpy scikit-learn
  1. Για να εκπαιδεύσετε και να αξιολογήσετε το μοντέλο με τη χειροποίητη υλοποίηση:
python test_lr.py
  1. Για να συγκρίνετε με την υλοποίηση του scikit-learn:
python test_lr_scikit-learn.py

Ενδεικτικά Αποτελέσματα

Χειροποίητη Υλοποίηση (test_lr.py)

Run 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

scikit-learn Υλοποίηση (test_lr_scikit-learn.py)

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 ή η βιβλιοθήκη.

Περιεχόμενo

  • Υπολογισμός RMSE (Root Mean Squared Error) για εκπαίδευση και δοκιμή.
  • 20 επαναλήψεις με διαφορετικό τυχαίο διαχωρισμό εκπαίδευσης/δοκιμής.
  • Υπολογισμός μέσης τιμής και τυπικής απόκλισης του RMSE.
  • Σύγκριση με την LinearRegression του scikit-learn.

Απαιτήσεις

  • Περιβάλλον Python 3
  • NumPy
  • scikit-learn

Συγγραφέας


Για απορίες σχετικά με την υλοποίηση ή την εκτέλεση του κώδικα, μπορείτε να στείλετε μήνυμα στο [email protected] ή στο [email protected].

About

This project implements a simple Linear Regression model from scratch and compares it to the implementation of scikit-learn, using the California Housing Dataset.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages