Εντοπισμός, εξερεύνηση και επικύρωση λειτουργικών εξαρτήσεων στα δεδομένα σας με χρήση σημασιολογικής σύνδεσης

Οι λειτουργικές εξαρτήσεις είναι σχέσεις μεταξύ στηλών σε έναν πίνακα, όπου οι τιμές σε μια στήλη καθορίζουν τις τιμές σε μια άλλη στήλη. Η κατανόηση αυτών των εξαρτήσεων μπορεί να σας βοηθήσει να αποκαλύψετε μοτίβα και σχέσεις στα δεδομένα σας. Αυτή η κατανόηση μπορεί να βοηθήσει με εργασίες μηχανικής χαρακτηριστικών, καθαρισμού δεδομένων και δημιουργίας μοντέλων. Οι λειτουργικές εξαρτήσεις λειτουργούν ως μια αποτελεσματική αμετάβλητη που σας βοηθά να βρείτε και να διορθώσετε προβλήματα ποιότητας δεδομένων που μπορεί να είναι δύσκολο να εντοπιστούν διαφορετικά.

Σε αυτό το άρθρο, χρησιμοποιείτε σημασιολογική σύνδεση για:

  • Εύρεση εξαρτήσεων μεταξύ στηλών ενός FabricDataFrame
  • Απεικόνιση εξαρτήσεων
  • Εντοπισμός προβλημάτων ποιότητας δεδομένων
  • Απεικόνιση προβλημάτων ποιότητας δεδομένων
  • Επιβολή λειτουργικών περιορισμών μεταξύ στηλών σε ένα σύνολο δεδομένων

Προαπαιτούμενα στοιχεία

  • Αποκτήστε συνδρομή Microsoft Fabric. Εναλλακτικά, εγγραφείτε για μια δωρεάν δοκιμή Microsoft Fabric.

  • Συνδεθείτε στο Microsoft Fabric.

  • Μεταβείτε στο Fabric χρησιμοποιώντας την εναλλαγή εμπειριών στην κάτω αριστερή πλευρά της αρχικής σελίδας σας.

    Στιγμιότυπο οθόνης που εμφανίζει την επιλογή του Fabric στο μενού εναλλαγής εμπειριών.

  • Μεταβείτε στην εμπειρία Επιστήμης δεδομένων που βρίσκεται στο Microsoft Fabric.
  • Δημιουργήστε ένα νέο σημειωματάριο για να αντιγράψετε και να επικολλήσετε κώδικα σε κελιά.
  • Για το Spark 3.4 και νεότερες εκδόσεις, η Σύνδεση σημασιολογίας είναι διαθέσιμη στον προεπιλεγμένο χρόνο εκτέλεσης όταν χρησιμοποιείτε το Fabric και δεν χρειάζεται να την εγκαταστήσετε. Εάν χρησιμοποιείτε το Spark 3.3 ή παρακάτω ή εάν θέλετε να ενημερώσετε την πιο πρόσφατη έκδοση της Σημασιολογικής σύνδεσης, μπορείτε να εκτελέσετε την εντολή: python %pip install -U semantic-link
  • Προσθέστε ένα Lakehouse στο σημειωματάριό σας.

Η σημασιολογική σύνδεση είναι διαθέσιμη στον προεπιλεγμένο χρόνο εκτέλεσης Fabric. Για να κάνετε ενημέρωση στην πιο πρόσφατη έκδοση της σημασιολογικής σύνδεσης, εκτελέστε αυτήν την εντολή:

%pip install -U semantic-link

Εύρεση λειτουργικών εξαρτήσεων σε δεδομένα

Η συνάρτηση SemPy find_dependencies εντοπίζει λειτουργικές εξαρτήσεις μεταξύ των στηλών ενός FabricDataFrame. Η συνάρτηση χρησιμοποιεί ένα κατώφλι στην υπό όρους εντροπία για να ανακαλύψει προσεγγιστικές συναρτησιακές εξαρτήσεις, όπου η χαμηλή υπό όρους εντροπία υποδηλώνει ισχυρή εξάρτηση μεταξύ στηλών. Για να κάνετε τη find_dependencies συνάρτηση πιο επιλεκτική, ορίστε ένα χαμηλότερο όριο στην εντροπία υπό όρους. Το χαμηλότερο όριο σημαίνει ότι εντοπίζονται μόνο ισχυρότερες εξαρτήσεις.

Αυτό το απόσπασμα κώδικα Python δείχνει πώς να χρησιμοποιήσετε το find_dependencies:

from sempy.fabric import FabricDataFrame
from sempy.dependencies import plot_dependency_metadata
import pandas as pd


df = FabricDataFrame(pd.read_csv("your_data.csv"))

deps = df.find_dependencies()

Η find_dependencies συνάρτηση επιστρέφει ένα FabricDataFrame με εντοπιζόμενες εξαρτήσεις μεταξύ στηλών. Μια λίστα αντιπροσωπεύει στήλες που έχουν μια αντιστοίχιση 1:1. Η συνάρτηση καταργεί επίσης τα μεταβατικά άκρα, για να προσπαθήσει να κλαδέψει τις πιθανές εξαρτήσεις.

Όταν καθορίζετε την dropna=True επιλογή, η συνάρτηση εξαλείφει τις γραμμές που έχουν τιμή NaN σε οποιαδήποτε στήλη από την αξιολόγηση. Αυτή η εξάλειψη μπορεί να οδηγήσει σε μη μεταβατικές εξαρτήσεις, όπως φαίνεται στο ακόλουθο παράδειγμα:

Ένας B C
1 1 1
1 1 1
1 NaN 9
2 NaN 2
2 2 2

Σε ορισμένες περιπτώσεις, η αλυσίδα εξαρτήσεων μπορεί να σχηματίσει κύκλους όταν καθορίζετε την dropna=True επιλογή, όπως φαίνεται στο παρακάτω παράδειγμα:

Ένας B C
1 1 NaN
2 1 NaN
NaN 1 1
NaN 2 1
1 NaN 1
1 NaN 2

Απεικόνιση εξαρτήσεων σε δεδομένα

Αφού βρείτε λειτουργικές εξαρτήσεις σε ένα σύνολο δεδομένων χρησιμοποιώντας find_dependenciesτο , μπορείτε να απεικονίσετε τις εξαρτήσεις χρησιμοποιώντας τη plot_dependency_metadata συνάρτηση. Αυτή η συνάρτηση λαμβάνει το αρχείο FabricDataFrame από find_dependencies το και δημιουργεί μια οπτική αναπαράσταση των εξαρτήσεων μεταξύ στηλών και ομάδων στηλών.

Αυτό το απόσπασμα κώδικα Python δείχνει πώς να χρησιμοποιήσετε το plot_dependencies:

from sempy.fabric import FabricDataFrame
from sempy.dependencies import plot_dependency_metadata
from sempy.samples import download_synthea
import pandas as pd

download_synthea(which='small')

df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))

deps = df.find_dependencies()
plot_dependency_metadata(deps)

Η plot_dependency_metadata συνάρτηση δημιουργεί μια απεικόνιση που εμφανίζει τις ομαδοποιήσεις 1:1 των στηλών. Οι στήλες που ανήκουν σε μία μόνο ομάδα τοποθετούνται σε ένα κελί. Εάν η συνάρτηση δεν βρει κατάλληλους υποψηφίους, επιστρέφει ένα κενό FabricDataFrame. Στιγμιότυπο οθόνης που εμφανίζει την έξοδο της συνάρτησης plot_dependencies.

Στιγμιότυπο οθόνης που εμφανίζει την έξοδο της συνάρτησης plot_dependencies.

Εντοπισμός προβλημάτων ποιότητας δεδομένων

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

Η list_dependency_violations συνάρτηση μπορεί να σας βοηθήσει να βρείτε παραβιάσεις λειτουργικών εξαρτήσεων μεταξύ στηλών συνόλου δεδομένων. Όταν παρέχετε μια ορίζουσα στήλη και μια εξαρτημένη στήλη, η συνάρτηση εμφανίζει τιμές που παραβιάζουν τη λειτουργική εξάρτηση, μαζί με το πλήθος των αντίστοιχων εμφανίσεών τους. Αυτές οι πληροφορίες μπορούν να σας βοηθήσουν να επιθεωρήσετε κατά προσέγγιση εξαρτήσεις και να εντοπίσετε προβλήματα ποιότητας δεδομένων.

Το παρακάτω απόσπασμα κώδικα δείχνει πώς να χρησιμοποιήσετε τη list_dependency_violations συνάρτηση:

from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
import pandas as pd

download_synthea(which='small')

df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))

violations = df.list_dependency_violations(determinant_col="ZIP", dependent_col="CITY")

Σε αυτό το παράδειγμα, η συνάρτηση υποθέτει μια λειτουργική εξάρτηση μεταξύ των στηλών ZIP (καθοριστικός) και CITY (εξαρτώμενη). Εάν το σύνολο δεδομένων έχει προβλήματα ποιότητας δεδομένων - για παράδειγμα, ο ίδιος ταχυδρομικός κώδικας που έχει εκχωρηθεί σε πολλές πόλεις - η συνάρτηση εξάγει τα δεδομένα με τα προβλήματα:

ΔΡΑΣΤΗΡΙΌΤΗΤΑ ΠΌΛΗ πλήθος
12345 Βοστώνη 2
12345 Σιάτλ 1

Αυτή η έξοδος υποδεικνύει ότι δύο διαφορετικές πόλεις (Βοστώνη και Σιάτλ) έχουν την ίδια τιμή ταχυδρομικού κώδικα (12345). Αυτό το αποτέλεσμα υποδηλώνει ένα πρόβλημα ποιότητας δεδομένων εντός του συνόλου δεδομένων.

Η list_dependency_violations συνάρτηση παρέχει περισσότερες επιλογές που μπορούν να χειριστούν τιμές που απουσιάζουν, να εμφανίζουν τιμές που έχουν αντιστοιχιστεί σε παραβιάζουσες τιμές, να περιορίζουν τον αριθμό των παραβιάσεων που επιστρέφονται και να ταξινομούν τα αποτελέσματα κατά πλήθος ή αιτιοτικό στήλη.

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

Απεικόνιση προβλημάτων ποιότητας δεδομένων

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

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

Αυτό το τμήμα κώδικα εμφανίζει τον τρόπο χρήσης της συνάρτησης plot_dependency_violations :

from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
import pandas as pd

download_synthea(which='small')

df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))

df.plot_dependency_violations(determinant_col="ZIP", dependent_col="CITY")

Σε αυτό το παράδειγμα, η συνάρτηση υποθέτει μια υπάρχουσα λειτουργική εξάρτηση μεταξύ των στηλών ZIP (προσδιορισμός) και CITY (εξαρτώμενη). Εάν το σύνολο δεδομένων έχει προβλήματα ποιότητας δεδομένων - για παράδειγμα, ο ίδιος ταχυδρομικός κώδικας που έχει εκχωρηθεί σε πολλές πόλεις - η συνάρτηση δημιουργεί ένα γράφημα των τιμών που παραβιάζουν.

Η plot_dependency_violations συνάρτηση παρέχει περισσότερες επιλογές που μπορούν να χειριστούν τιμές που απουσιάζουν, να εμφανίζουν τιμές που έχουν αντιστοιχιστεί σε παραβιάζουσες τιμές, να περιορίζουν τον αριθμό των παραβιάσεων που επιστρέφονται και να ταξινομούν τα αποτελέσματα κατά πλήθος ή αιτιοτικό στήλη.

Η plot_dependency_violations συνάρτηση δημιουργεί μια απεικόνιση που μπορεί να βοηθήσει στον εντοπισμό προβλημάτων ποιότητας δεδομένων συνόλου δεδομένων. Ωστόσο, θα πρέπει να εξετάσετε προσεκτικά τα αποτελέσματα και να εξετάσετε το πλαίσιο των δεδομένων σας, για να καθορίσετε την καταλληλότερη πορεία δράσης για την αντιμετώπιση των προβλημάτων που εντοπίστηκαν. Αυτή η προσέγγιση μπορεί να περιλαμβάνει περισσότερο καθαρισμό, επικύρωση ή εξερεύνηση δεδομένων για να εξασφαλιστεί η αξιοπιστία και η εγκυρότητα της ανάλυσης ή του μοντέλου σας.

Στιγμιότυπο οθόνης που εμφανίζει την έξοδο της συνάρτησης plot_dependency_violations.

Επιβολή λειτουργικών περιορισμών

Η ποιότητα των δεδομένων είναι ζωτικής σημασίας για τη διασφάλιση της αξιοπιστίας και της εγκυρότητας οποιασδήποτε ανάλυσης ή μοντέλου που βασίζεται σε ένα σύνολο δεδομένων. Η επιβολή λειτουργικών περιορισμών μεταξύ στηλών σε ένα σύνολο δεδομένων μπορεί να συμβάλει στη βελτίωση της ποιότητας των δεδομένων. Οι λειτουργικοί περιορισμοί διασφαλίζουν ότι οι σχέσεις μεταξύ των στηλών έχουν ακρίβεια και συνέπεια, γεγονός που μπορεί να οδηγήσει σε πιο ακριβή ανάλυση ή αποτελέσματα μοντέλου.

Η drop_dependency_violations συνάρτηση επιβάλλει λειτουργικούς περιορισμούς μεταξύ στηλών σε ένα σύνολο δεδομένων. Καταργεί τις γραμμές που παραβιάζουν έναν δεδομένο περιορισμό. Δεδομένης μιας στήλης προσδιορισμού και μιας εξαρτώμενης στήλης, αυτή η συνάρτηση καταργεί γραμμές με τιμές που δεν συμμορφώνονται με τον λειτουργικό περιορισμό μεταξύ των δύο στηλών.

Αυτό το τμήμα κώδικα εμφανίζει τον τρόπο χρήσης της συνάρτησης drop_dependency_violations :

from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea
import pandas as pd

download_synthea(which='small')

df = FabricDataFrame(pd.read_csv("synthea/csv/providers.csv"))

cleaned_df = df.drop_dependency_violations(determinant_col="ZIP", dependent_col="CITY")

Σε αυτό το παράδειγμα, η συνάρτηση επιβάλλει έναν λειτουργικό περιορισμό μεταξύ των στηλών ZIP (ορίζουσα) και CITY (εξαρτημένη). Για κάθε τιμή της ορίζουσας, η συνάρτηση επιλέγει την πιο κοινή τιμή της εξαρτημένης στήλης και απορρίπτει όλες τις γραμμές με άλλες τιμές. Για παράδειγμα, δεδομένου αυτού του συνόλου δεδομένων, η σειρά με CITY=Seattle απορρίπτεται και η λειτουργική εξάρτηση ZIP -> CITY διατηρεί στην έξοδο:

ΔΡΑΣΤΗΡΙΌΤΗΤΑ ΠΌΛΗ
12345 Σιάτλ
12345 Βοστώνη
12345 Βοστώνη
98765 Βαλτιμόρη
00000 Σαν Φρανσίσκο

Η drop_dependency_violations συνάρτηση παρέχει την verbose επιλογή ελέγχου της διατύπωσης εξόδου. Ορίζοντας verbose=1το , μπορείτε να δείτε τον αριθμό των γραμμών που απορρίφθηκαν. Μια verbose=2 τιμή εμφανίζει ολόκληρο το περιεχόμενο γραμμής των γραμμών που απορρίφθηκαν.

Η drop_dependency_violations συνάρτηση μπορεί να επιβάλλει λειτουργικούς περιορισμούς μεταξύ των στηλών στο σύνολο δεδομένων σας, γεγονός που μπορεί να συμβάλει στη βελτίωση της ποιότητας των δεδομένων και να οδηγήσει σε πιο ακριβή αποτελέσματα στην ανάλυση ή το μοντέλο σας. Ωστόσο, εξετάστε προσεκτικά το πλαίσιο των δεδομένων σας και τους λειτουργικούς περιορισμούς που επιλέγετε να επιβάλετε, για να διασφαλίσετε ότι δεν θα καταργήσετε κατά λάθος πολύτιμες πληροφορίες από το σύνολο δεδομένων σας.