Μονάδες
1. Εισαγωγή στην Τεχνητή Νοημοσύνη στην Επιστήμη Δεδομένων και την Ανάλυση: Ροή εργασιών, Ρόλοι, Όρια, Επικύρωση και Δεοντολογία 2. Συλλογή δεδομένων και κατανόηση πηγών: Σχήμα, δειγματοληψία, ποιότητα και επίγνωση διαρροών 3. Καθαρισμός και προεπεξεργασία δεδομένων: Λείπει τιμή, ακραία τιμή και μετατροπή τύπου 4. Διερευνητική Ανάλυση Δεδομένων (EDA): Διανομές, Σχέσεις και Αρχικές πληροφορίες 5. Μηχανική Χαρακτηριστικών: Δημιουργία παραλλαγών, Κωδικοποίηση, Κλιμάκωση και Αποφυγή Διαρροής 6. Κατασκευή μοντέλου: Ορισμός προβλήματος, επιλογή αλγορίθμου και διαίρεση εκπαίδευσης/δοκιμής 7. Αξιολόγηση μοντέλου: Μετρήσεις, Διασταυρούμενη επικύρωση και Ακραία Μάθηση 8. Οπτικοποίηση και αφήγηση: Ακριβή γραφικά, ειλικρινή γραφικά 9. Δημιουργία κώδικα: Ανάλυση υποβοηθούμενη από AI με Python (pandas) και SQL 10. Διαρροή δεδομένων και αναπαραγωγιμότητα: Σιωπηλές καταστροφές και πειθαρχία 11. Molps foundation, ηθική, ιδιωτικότητα και υπεύθυνη ανάλυση
Μονάδα 9 / 11

Δημιουργία κώδικα: Ανάλυση υποβοηθούμενη από AI με Python (pandas) και SQL

Κέρδη:

  • Δυνατότητα λήψης ισχυρού κώδικα SQL και panda και ανάγνωσης και επαλήθευσης γραμμή προς γραμμή δίνοντας σαφές σχήμα και σκοπό στην τεχνητή νοημοσύνη
  • Δυνατότητα εντοπισμού σιωπηλών σφαλμάτων όπως πλήθος σειρών, λειτουργία προσαρμογής και απόδοση μετά τη συγχώνευση/ΣΥΝΔΕΣΗ
  • Δυνατότητα επίλυσης του προβλήματος κατά τον εντοπισμό σφαλμάτων χωρίς σίγαση και αποφυγή εκτέλεσης του κώδικα χωρίς δοκιμή στο περιβάλλον παραγωγής

Η επιστήμη δεδομένων έχει δύο κύριες γλώσσες: SQL (Structured Query Language — η γλώσσα για την αναζήτηση δεδομένων από βάσεις δεδομένων) και Python (συγκεκριμένα, η βιβλιοθήκη pandas — το τυπικό εργαλείο για προγραμματισμό χειρισμού πινάκων). Σε αυτή την ενότητα, θα μάθουμε να χρησιμοποιούμε την τεχνητή νοημοσύνη ως συνεργάτη κώδικα: να λαμβάνουμε σταθερό κώδικα SQL και panda από αυτό με τις σωστές ερωτήσεις, να διαβάζουμε και να επικυρώνουμε αυτόν τον κώδικα, να τον διορθώνουμε και να μην τον εκτελούμε ποτέ στα τυφλά. Το AI γράφει επαναλαμβανόμενο κώδικα σε δευτερόλεπτα αντί για λεπτά. Αλλά είναι δική σας δουλειά να βεβαιωθείτε ότι ο κώδικας που παράγει επεξεργάζεται τη σωστή στήλη με τη σωστή λογική. Ο κώδικας εργασίας δεν σημαίνει σωστός κωδικός.

Γιατί η παραγωγή κώδικα με AI είναι ισχυρή αλλά επικίνδυνη

Η τεχνητή νοημοσύνη παρέχει τρία μεγάλα πλεονεκτήματα στη δημιουργία κώδικα: ταχύτητα (εγγράφει μια λειτουργία groupby-pivot 30 γραμμών σε δευτερόλεπτα), υπενθύμιση (σας υπενθυμίζει μια λειτουργία panda που ξεχάσατε) και διδασκαλία (εξηγεί τον κώδικα γραμμή προς γραμμή). Αλλά εγκυμονεί τρεις κινδύνους: σιωπηλό λογικό σφάλμα (κώδικας που αθροίζει τη λάθος στήλη εκτελείται χωρίς σφάλματα), προσαρμοσμένη συνάρτηση (προτείνει μια μέθοδο που δεν υπάρχει) και παγίδα απόδοσης (κώδικας που λειτουργεί σε μικρά δεδομένα αλλά διακόπτεται σε 10 εκατομμύρια σειρές). Ο χρυσός κανόνας λοιπόν: Διαβάστε τον κώδικα του AI σαν να τον γράψατε μόνοι σας. Μην τρέχετε τη γραμμή που δεν καταλαβαίνετε.

SQL: επεξεργασία δεδομένων στην πηγή

Η SQL σάς επιτρέπει να ανακτήσετε δεδομένα από τη βάση δεδομένων και να τα επεξεργαστείτε εκεί. Μπορείτε να συνοψίσετε εκατομμύρια γραμμές χωρίς να τις τραβήξετε στην Python. Βασικά δομικά στοιχεία: SELECT (ποιες στήλες), WHERE (ποιες σειρές), GROUP BY (ομαδοποίηση και σύνοψη), JOIN (συμμετοχή σε πίνακες), HAVING (φίλτρο μετά την ομάδα). Η τεχνητή νοημοσύνη είναι πολύ χρήσιμη στη σύνταξη πολύπλοκων JOIN και συναρτήσεων παραθύρων, αλλά φροντίστε να ελέγξετε δύο πράγματα: είναι το JOIN μέσω του σωστού κλειδιού (το λάθος κλειδί αντιγράφει σειρές) και είναι σωστή η λογική του φίλτρου (ειδικά η συμπεριφορά NULL και το εύρος ημερομηνιών).

Προσοχή: Μην εκτελείτε ένα ερώτημα SQL που δημιουργείται από AI απευθείας στη βάση δεδομένων παραγωγής. Δοκιμάστε πρώτα με ένα μικρό αντίγραφο ή LIMIT. Ποτέ μην εκτελείτε ένα ερώτημα ΕΝΗΜΕΡΩΣΗ/ΔΙΑΓΡΑΦΗ χωρίς επικύρωση της συνθήκης WHERE. Ένα λάθος WHERE μπορεί να διαγράψει ολόκληρο τον πίνακα.

Python/pandas: ευέλικτη ανάλυση

Το pandas είναι ο τυπικός τρόπος χειρισμού πινάκων (DataFrame) στην Python. Η πιο αποτελεσματική χρήση της τεχνητής νοημοσύνης είναι να της δώσει ένα σαφές σχήμα και σκοπό. Λειτουργίες που χρησιμοποιούνται πιο συχνά: φιλτράρισμα, groupby, merge, pivot_table, application. Το AI τα γράφει γρήγορα. Αυτό που θέλετε να ελέγξετε είναι η λογική: είναι η ομαδοποίηση στη σωστή στήλη, η συγχώνευση άλλαξε τον αριθμό των γραμμών απροσδόκητα (ελέγχετε πάντα τον αριθμό των γραμμών μετά τη συγχώνευση), οι λειτουργίες της αλυσίδας αλλάζουν την αρχική.

συναλλαγή

SQL

τα πάντα

σημείο ελέγχου

Φιλτράρισμα

ΠΟΥ

df[df.x > 5]

NULL/NaN συμπεριφορά

ομαδοποίηση

ΟΜΑΔΑ ΑΠΟ

df.groupby()

Είναι η σωστή στήλη;

συγχώνευση

ΕΓΓΡΑΦΕΙΤΕ

df.merge()

Αλλαγή αριθμού σειρών

Περίληψη

AVG(), SUM()

.mean(), .sum()

Ποια στήλη συγκεντρώθηκε

Ταξινόμηση κατά

ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ

.sort_values()

Κατεύθυνση (ανοδική/φθίνουσα)

αποδιπλασιασμός

ΔΙΑΚΡΙΤΙΚΟ

.drop_duplicates()

Σε ποιες στήλες;

Εντοπισμός σφαλμάτων: με AI

Όταν ο κώδικας αποτυγχάνει, το AI είναι ένας εξαιρετικός συνεργάτης εντοπισμού σφαλμάτων. Δώστε του το πλήρες μήνυμα σφάλματος και το σχετικό απόσπασμα κώδικα. Προσοχή όμως σε δύο παγίδες. Πρώτον, η τεχνητή νοημοσύνη μπορεί να προτείνει μια λύση που «σιωπά» το σφάλμα (π.χ. απόκρυψη ειδοποιήσεων) — αυτό δεν διορθώνει το σφάλμα, το αποκρύπτει. Δεύτερον, η τεχνητή νοημοσύνη μερικές φορές αλλάζει σιωπηλά μια άλλη συμπεριφορά ενώ «λύνει» ένα πρόβλημα. Κανόνας: κατανοήστε την επιδιόρθωση, επιλύστε τη μη σίγαση και επαληθεύστε ότι η έξοδος εξακολουθεί να είναι σωστή μετά την επιδιόρθωση.

Θέλετε ερμηνεύσιμο και διατηρήσιμο κώδικα

Όταν αγοράζετε κώδικα από τεχνητή νοημοσύνη, ζητήστε κώδικα που να είναι αναγνώσιμος και διατηρήσιμος, όχι απλώς κώδικας που «δουλεύει». Όταν εσείς ή ένας συνάδελφος ανοίγει αυτόν τον κωδικό μήνες αργότερα, θα πρέπει να μπορεί να καταλάβει τι κάνει. Για να το κάνετε αυτό, κάντε συνήθεια η τεχνητή νοημοσύνη να περιλαμβάνει τρία πράγματα: ουσιαστικά ονόματα μεταβλητών (orders_temiz, όχι df2), σύντομες γραμμές σχολίων σε κρίσιμα βήματα (εξηγώντας γιατί, όχι τι γίνεται) και μια ονομαστική σταθερά αντί για έναν μαγικό αριθμό (ACCEPT_ESIGI = 0,85 αντί για 0,85 θαμμένο στον κωδικό). Αποφύγετε επίσης μακριές αλυσίδες μονής γραμμής (συνδέοντας πέντε ενέργειες σε μια γραμμή). Αυτά δυσκολεύουν τον εντοπισμό σφαλμάτων. Από προεπιλογή, η τεχνητή νοημοσύνη παράγει συχνά συνοπτικό και «έξυπνο» κώδικα. Εάν πείτε ξεκάθαρα "γράψτε αναγνώσιμο, ερμηνεύσιμο, διατηρήσιμο", θα έχετε ένα πολύ πιο διατηρήσιμο αποτέλεσμα. Αυτή είναι επίσης η βάση της αναπαραγωγιμότητας (Μονάδα 10): ο κώδικας που δεν είναι κατανοητός είναι κώδικας που δεν μπορεί να εκτελεστεί ξανά με ασφάλεια.

τρεις μίνι θήκες

Περίπτωση 1 — JOIN replication. Ένας αναλυτής συνδύασε τις παραγγελίες με τον πίνακα προϊόντων και βρήκε ότι ο συνολικός τζίρος ήταν 3 φορές υψηλότερος. Αιτία: κάθε προϊόν είχε πολλές σειρές (διαφορετικά χρώματα) στον πίνακα προϊόντων. Η JOIN αντιγράφει κάθε παραγγελία. Ο κωδικός του AI «δούλευε», αλλά ο αριθμός των γραμμών είχε εκτιναχθεί από 240 χιλιάδες σε 690 χιλιάδες. Μάθημα: ελέγχετε πάντα τον αριθμό των γραμμών μετά τη συγχώνευση/ΣΥΝΔΕΣΗ.

Περίπτωση 2 — Λειτουργία προσαρμογής. Πρότεινε AI df.groupby('x').summarize() σε έναν ασκούμενο. Δεν υπάρχει τέτοια μέθοδος στα πάντα (υπάρχει .agg()). Ο κωδικός δεν λειτούργησε, ο ασκούμενος χάθηκε για 20 λεπτά. Μάθημα: επαληθεύστε μια συνάρτηση που δεν αναγνωρίζετε από το έγγραφο. Το AI μπορεί να δημιουργήσει μεθόδους.

Περίπτωση 3 — Κατάρρευση απόδοσης. Ένας κώδικας ρωτούσε τη βάση δεδομένων σε εφαρμογή για κάθε σειρά. Έτρεξε σε 5.000 γραμμές, πήρε 9 ώρες σε 4 εκατομμύρια γραμμές και σταμάτησε. Όταν το AI πρότεινε μια διανυσματοποιημένη (παρτίδα) λύση, ο χρόνος μειώθηκε στα 40 δευτερόλεπτα. Μάθημα: ο κώδικας που λειτουργεί σε μικρά δεδομένα μπορεί να διακοπεί σε μεγάλα δεδομένα. Εξετάστε την αποτελεσματικότητα.

Τέσσερα πρότυπα με δυνατότητα αντιγραφής

1) Αίτημα SQL με σχήμα:

Ο ρόλος σας: Βοηθός SQL (PostgreSQL). Πίνακες:- παραγγελίες (αναγνωριστικό, πελάτη_αναγνωριστικό, χρονική σήμανση ημερομηνίας, αριθμητικό ποσό)- πελάτες (αναγνωριστικό, κείμενο πόλης) Εργασία: Λάβετε τον συνολικό κύκλο εργασιών και τον αριθμό παραγγελιών ανά πόλη το 2024, ταξινομημένα ανά κύκλο εργασιών με φθίνουσα σειρά. Εξηγήστε πώς χειρίζεστε NULL πόλεις. Θα δοκιμάσω πρώτα το ερώτημα με LIMIT. ΕΝΗΜΕΡΩΣΗ/ΔΙΑΓΡΑΦΗ γενιάς.

2) διαδικασία pandas με σημείο ελέγχου:

Έχω DataFrames df (παραγγελίες) και df_customers (πελάτες). Υπολογίστε το μέσο ποσό ανά πόλη. ΣΗΜΑΝΤΙΚΟ: εκτυπώστε τον αριθμό των σειρών πριν και μετά τη συγχώνευση, ώστε να μπορώ να δω εάν υπάρχει διπλότυπο. Εξηγήστε σε ποια στήλη συγχωνεύσατε και γιατί επιλέξατε το εσωτερικό/αριστερό.

3) Επεξήγηση και επαλήθευση κώδικα:

Εξηγήστε τον ακόλουθο κώδικα του panda γραμμή προς γραμμή: τι κάνει κάθε γραμμή, τι υποθέσεις κάνει, σε ποιες περιπτώσεις θα μπορούσε να δώσει λάθος αποτελέσματα; Ενημερώστε με αν χρησιμοποίησα συνάρτηση φοντάν. Κωδικός: [επικόλληση]

4) Εντοπισμός σφαλμάτων:

Αυτός ο κωδικός δίνει αυτό το σφάλμα. Πλήρες μήνυμα σφάλματος: [επικόλληση]. Κωδικός: [επικόλληση]. Εξηγήστε την αιτία ROOT του σφάλματος και διορθώστε το. Διορθώστε το λύνοντας πραγματικά το πρόβλημα, όχι σιωπώντας την ειδοποίηση. Υποδείξτε επίσης εάν η επιδιόρθωση άλλαξε την έξοδο.

Αδύναμη προτροπή / Ισχυρή προτροπή

Αδύναμη προτροπή:

Γράψτε ένα ερώτημα που μου δίνει πωλήσεις ανά πόλη.

Τα ονόματα πινάκων, οι στήλες, ο τύπος βάσης δεδομένων, η συμπεριφορά NULL είναι ασαφή. Το AI είναι κοινό, πιθανότατα θα δημιουργήσει ένα ερώτημα που δεν ταιριάζει στο τραπέζι σας.

Ισχυρή προτροπή:

Ο ρόλος σας: Βοηθός SQL (MySQL 8). Πίνακας: πωλήσεις (αναγνωριστικό, πόλη varchar, ποσό δεκαδικό, ημερομηνία ημερομηνίας). Εργασία: Λάβετε το συνολικό και μέσο ποσό, τον αριθμό των παραγγελιών ανά πόλη για το έτος 2024. Ταξινόμηση μειώνεται κατά συνολικό ποσό. Εμφάνιση μόνο πόλεων με περισσότερες από 100 παραγγελίες (HAVING). NULL εξαιρείται η πόλη. Εξηγήστε το ερώτημα. Θα δοκιμάσω με LIMIT.

Εδώ η βάση δεδομένων, το σχήμα, το φίλτρο, η ταξινόμηση και ο κανόνας NULL είναι προφανείς.

Συνήθη λάθη

  • Εκτέλεση του κώδικα χωρίς να τον διαβάσετε. Ο κώδικας εργασίας δεν είναι σωστός κωδικός. Ο κώδικας που χειρίζεται τη λάθος στήλη εκτελείται επίσης χωρίς σφάλματα.
  • Δεν γίνεται έλεγχος του αριθμού των σειρών μετά τη συγχώνευση/ΣΥΝΔΕΣΗ. Το λάθος κλειδί αντιγράφει σιωπηλά σειρές και διογκώνει τα σύνολα.
  • Δεν επαληθεύεται η λειτουργία τοποθέτησης. Η τεχνητή νοημοσύνη μπορεί να προτείνει μεθόδους που δεν υπάρχουν. Επιβεβαιώστε από το έγγραφο ότι δεν το αναγνωρίζετε.
  • Δεν σκέφτομαι την αποτελεσματικότητα. Εφαρμογή/βρόχος που εργάζεται σε μικρά σφάλματα δεδομένων σε εκατομμύρια σειρές. διανυσματοποιώ.
  • Εκτέλεση απευθείας στη βάση δεδομένων παραγωγής. Ειδικά η εκτέλεση του UPDATE/DELETE χωρίς WHERE ή δοκιμή είναι καταστροφική.
Συμβουλή: Συνηθίστε να προσθέτετε μια "γραμμή επικύρωσης" σε κάθε κομμάτι κώδικα που λαμβάνετε από το AI: έναν αριθμό γραμμών πριν και μετά την επεξεργασία, μερικά δείγματα γραμμών και ένα κρίσιμο σύνολο με το χέρι. Αυτοί οι τρεις έλεγχοι πιάνουν τα περισσότερα σιωπηλά λογικά σφάλματα.

Συνοπτικά

Το AI είναι ένας ισχυρός συνεργάτης που παράγει γρήγορα κώδικα SQL και panda, αλλά δεν είναι μια τυφλή αρχή. Δώστε του ξεκάθαρα το σχέδιο και τον σκοπό. Διαβάστε τον κώδικα που παράγει σαν να τον γράψατε μόνοι σας. Ελέγξτε τον αριθμό των σειρών, τις λειτουργίες προσαρμογής και την απόδοση μετά τη συγχώνευση/ΣΥΝΔΕΣΗ. Μην το εκτελέσετε χωρίς να το δοκιμάσετε στη βάση δεδομένων παραγωγής. Κατά την αποσφαλμάτωση, στοχεύστε στην επίλυση του προβλήματος και όχι στη σίγαση του. Ο κώδικας που λειτουργεί δεν είναι ο σωστός κωδικός. Μόνο εσείς μπορείτε να εγγυηθείτε την ακρίβεια.

Εργασία εφαρμογής

Επιλέξτε μια ερώτηση ανάλυσης (π.χ. "μηνιαίος κύκλος εργασιών ανά κανάλι") και ζητήστε κωδικό από το AI τόσο με SQL όσο και με panda. Διαβάστε και τους δύο κώδικα γραμμή προς γραμμή, ελέγξτε τον αριθμό των γραμμών μετά τη συγχώνευση/ΣΥΝΔΕΣΗ και επαληθεύστε χειροκίνητα τουλάχιστον ένα κρίσιμο άθροισμα. Συγκρίνετε εάν οι δύο κωδικοί παράγουν το ίδιο αποτέλεσμα. Αν είναι διαφορετικό, μάθετε γιατί.

λίστα ελέγχου

  • [ ] Έχω δώσει τον πίνακα/σχήμα και τον σκοπό ξεκάθαρα στο AI;
  • [ ] Διάβασα και κατάλαβα τον κώδικα που παρήγαγε γραμμή προς γραμμή;
  • [ ] Έλεγξα τον αριθμό των γραμμών μετά τη συγχώνευση/ΣΥΝΔΕΣΗ;
  • [ ] Έχω επαληθεύσει τις λειτουργίες που δεν αναγνωρίζω από την τεκμηρίωση;
  • [ ] Έχω δοκιμάσει πρώτα τον κωδικό σε ασφαλή/μικρά δεδομένα και όχι στο περιβάλλον παραγωγής;