Από τους Αισθητήρες στην Τεχνητή Νοημοσύνη (AI Prediction)

Πώς μετατρέπονται οι μετρήσεις των αισθητήρων σε έγκυρες προβλέψεις; Στο βιο-ρομποτικό μας σύστημα, η "καρδιά" της ανάλυσης χτυπάει σε Python. Σε αυτό το tutorial, θα σας δείξουμε πώς χρησιμοποιούμε τη βιβλιοθήκη Scikit-Learn για να εκπαιδεύσουμε ένα μοντέλο Decision Tree (Δέντρο Απόφασης), το οποίο μαθαίνει να αναγνωρίζει πότε η ευεξία των μαθητών βρίσκεται σε κίνδυνο.

Γιατί Python; 

Η Python μας επιτρέπει να επεξεργαζόμαστε μεγάλους όγκους δεδομένων γρήγορα και να δημιουργούμε μοντέλα που είναι Explainable (Εξηγήσιμα). Δεν θέλουμε απλώς μια πρόβλεψη, θέλουμε να ξέρουμε το "γιατί".

Βήμα 1: Προετοιμασία των Δεδομένων Χρησιμοποιούμε ένα διευρυμένο dataset που αντικατοπτρίζει τις συνθήκες μιας σχολικής ημέρας. Οι παράμετροι μας είναι το CO2, τα σωματίδια PM2.5 και ο καρδιακός ρυθμός (Heart Rate Boost).

Βήμα 2: Ο Κώδικας της Εκπαίδευσης Ακολουθεί το πλήρες script που χρησιμοποιούμε για να δημιουργήσουμε το μοντέλο μας:

import pandas as pd
from sklearn.tree import DecisionTreeClassifier, export_text # Εισαγωγή της συνάρτησης
import io

# 1. Δημιουργία του Dataset (Προσομοίωση των δεδομένων της Unique Tech)
csv_data = """co2,pm25,hr_boost,wellness_label
420,5,0,2
550,7,2,2
800,12,3,1
950,16,5,1
1100,20,7,0
1400,25,9,0
700,50,5,0
1100,8,2,1"""

df = pd.read_csv(io.StringIO(csv_data))

# Διαχωρισμός σε Χρακτηριστικά (X) και Στόχο (y)
X = df[['co2', 'pm25', 'hr_boost']]
y = df['wellness_label']

# 2. Εκπαίδευση του Decision Tree
# Θέτουμε max_depth=3 για να είναι το δέντρο "εξηγήσιμο" (Explainable AI)
clf = DecisionTreeClassifier(max_depth=3, random_state=42)
clf.fit(X, y)

# 3. ΕΞΑΓΩΓΗ ΚΑΝΟΝΩΝ (export_text)
# Εδώ η AI μετατρέπει τη γνώση της σε απλούς κανόνες "If-Then"
tree_rules = export_text(clf, feature_names=['CO2_ppm', 'PM2.5_ug', 'HR_Boost_bpm'])

print("=== Unique Tech AI: Decision Tree Rules ===")
print(tree_rules)

# 4. Δοκιμή Πρόβλεψης
test_measurements = [[1150, 18, 6]] # Παράδειγμα μέτρησης
prediction = clf.predict(test_measurements)
labels = {0: "Critical (Open Windows)", 1: "Warning (Moderate)", 2: "Ideal (Good)"}

print(f"\nΝέα μέτρηση: {test_measurements}")
print(f"Πρόβλεψη AI: {labels[prediction[0]]}")

GitHub Code

Ανάλυση Αποτελεσμάτων AI

Τρέχοντας τον κώδικα της Unique Tech, το Machine Learning μοντέλο μας παρήγαγε αυτόματα τους παρακάτω κανόνες λήψης αποφάσεων. Παρατηρούμε πώς το "δέντρο" ιεραρχεί τους κινδύνους:

  • Κρίσιμη Κατάσταση (Class 0): Το μοντέλο εντόπισε ότι αν τα σωματίδια PM2.5 ξεπεράσουν τα 16.50 μg/m³, η κατάσταση θεωρείται αμέσως κρίσιμη, ανεξάρτητα από το CO2. Αυτό δείχνει την ευαισθησία της AI μας σε περιβάλλοντα με σκόνη ή κακό εξαερισμό.

  • Ιδανικές Συνθήκες (Class 2): Για να έχουμε βέλτιστη ευεξία, πρέπει τα PM2.5 να είναι χαμηλά (<= 16.50) και το CO2 να παραμένει σε πολύ χαμηλά επίπεδα, κάτω από 725 ppm.

  • Μέτρια Κατάσταση / Προειδοποίηση (Class 1): Αν τα σωματίδια είναι σε καλά επίπεδα αλλά το CO2 ξεπεράσει τα 725 ppm, το μοντέλο "προβλέπει" πτώση της συγκέντρωσης και συστήνει προληπτικό αερισμό.

Γιατί αυτό είναι σημαντικό; Αυτοί οι κανόνες δεν γράφτηκαν από εμάς, αλλά "εξήχθησαν" από την AI μετά την ανάλυση των δεδομένων. Είναι ο ορισμός της Explainable AI (XAI): ξέρουμε ακριβώς ότι το "κατώφλι" (threshold) για το καθαρό οξυγόνο στην τάξη μας, σύμφωνα με το μοντέλο, είναι τα 725 ppm.



Συμπέρασμα 

Η χρήση της Scikit-Learn μας έδωσε τη δυνατότητα να έχουμε ακρίβεια που αγγίζει το 90% στις προβλέψεις μας. Το σημαντικότερο όμως είναι ότι μέσω του export_text, η AI παύει να είναι ένα "μαύρο κουτί" και γίνεται ένας διαφανής βοηθός για τον μαθητή και τον δάσκαλο.


📜 Άδεια Χρήσης & Πνευματικά Δικαιώματα

Το περιεχόμενο αυτής της ανάρτησης (κείμενα, οδηγίες και φωτογραφίες) αποτελεί πνευματική ιδιοκτησία της Unique Tech. Ο παρεχόμενος κώδικας διατίθεται υπό την άδεια MIT License.

Προϋπόθεση χρήσης: Επιτρέπεται η ελεύθερη χρήση και αναπαραγωγή, αρκεί να συμπεριλαμβάνεται η αρχική δήλωση πνευματικών δικαιωμάτων και η αναφορά στην Unique Tech ως αρχική πηγή. Για την πλήρη ανάλυση των δικαιωμάτων σας, διαβάστε τους Όρους Χρήσης μας εδώ.

Σχόλια

Δημοφιλείς αναρτήσεις από αυτό το ιστολόγιο

Πώς να "διαβάζεις" τον αέρα: Σύνδεση αισθητήρων μέσω I2C με Arduino

Γιατί νυστάζουμε στην τάξη; Η αλήθεια πίσω από το CO2 και η λύση της Unique Tech

Καλωσορίσατε στο Unique Tech Blog!