Κοινή χρήση μέσω


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

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

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

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

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

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

  • Εισέλθετε στο Microsoft Fabric.

  • Χρησιμοποιήστε την εναλλαγή εμπειρίας στην αριστερή πλευρά της αρχικής σελίδας σας για να μεταβείτε στην εμπειρία Synapse Data Science.

    Στιγμιότυπο οθόνης του μενού εναλλαγής εμπειρίας, που εμφανίζει πού μπορείτε να επιλέξετε Επιστήμη δεδομένων.

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

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

%pip install -U semantic-link
``` 

## Find functional dependencies in data

The SemPy `find_dependencies` function detects functional dependencies between the columns of a FabricDataFrame. The function uses a threshold on conditional entropy to discover approximate functional dependencies, where low conditional entropy indicates strong dependence between columns. To make the `find_dependencies` function more selective, you can set a lower threshold on conditional entropy. The lower threshold means that only stronger dependencies will be detected.

This Python code snippet demonstrates how to use `find_dependencies`:

```python
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 σε οποιαδήποτε στήλη εξαλείφονται από την αξιολόγηση. Αυτό μπορεί να έχει ως αποτέλεσμα μη μεταφρασικές εξαρτήσεις, όπως φαίνεται σε αυτό το παράδειγμα:

A B C
1 1 1
1 1 1
1 NaN 9
2 NaN 2
2 2 2

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

A 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

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.

Αναγνώριση ζητημάτων ποιότητας δεδομένων

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

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

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

from sempy.fabric import FabricDataFrame
from sempy.samples import download_synthea

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.dependencies import plot_dependency_violations
from sempy.samples import download_synthea

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

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 συνάρτηση μπορεί να επιβάλλει λειτουργικούς περιορισμούς μεταξύ των στηλών στο σύνολο δεδομένων σας, γεγονός που μπορεί να συμβάλει στη βελτίωση της ποιότητας των δεδομένων και να οδηγήσει σε πιο ακριβή αποτελέσματα στην ανάλυση ή το μοντέλο σας. Ωστόσο, πρέπει να εξετάσετε προσεκτικά το περιβάλλον των δεδομένων σας και τους λειτουργικούς περιορισμούς που επιλέγετε να επιβάλετε, για να διασφαλίσετε ότι δεν θα καταργήσετε κατά λάθος πολύτιμες πληροφορίες από το σύνολο δεδομένων σας.