Από τους Αισθητήρες στην Τεχνητή Νοημοσύνη (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 παύει να είναι ένα "μαύρο κουτί" και γίνεται ένας διαφανής βοηθός για τον μαθητή και τον δάσκαλο.

Σχόλια
Δημοσίευση σχολίου