Mendeteksi, menjelajahi, dan memvalidasi dependensi fungsional dalam data Anda, menggunakan tautan semantik
Dependensi fungsi adalah hubungan antara kolom dalam tabel, di mana nilai dalam satu kolom digunakan untuk menentukan nilai di kolom lain. Memahami dependensi ini dapat membantu Anda mengungkap pola dan hubungan dalam data Anda, yang pada gilirannya dapat membantu tugas rekayasa fitur, pembersihan data, dan pembuatan model. Dependensi fungsional bertindak sebagai invarian efektif yang memungkinkan Anda menemukan dan memperbaiki masalah kualitas data yang mungkin sulit dideteksi sebaliknya.
Dalam artikel ini, Anda menggunakan tautan semantik untuk:
- Menemukan dependensi di antara kolom FabricDataFrame
- Visualisasikan dependensi
- Mengidentifikasi masalah kualitas data
- Memvisualisasikan masalah kualitas data
- Menerapkan batasan fungsi antara kolom dalam himpunan data
Prasyarat
Dapatkan langganan Microsoft Fabric. Atau, daftar untuk uji coba Microsoft Fabric gratis.
Masuk ke Microsoft Fabric.
Gunakan pengalih pengalaman di sisi kiri bawah halaman beranda Anda untuk beralih ke Fabric.
- Buka pengalaman Ilmu Data yang ditemukan di Microsoft Fabric.
- Buat buku catatan baru untuk menyalin/menempelkan kode ke dalam sel.
- Untuk Spark 3.4 ke atas, tautan Semantic tersedia dalam runtime default saat menggunakan Fabric, dan tidak perlu menginstalnya. Jika Anda menggunakan Spark 3.3 atau yang lebih baru, atau jika Anda ingin memperbarui ke versi Terbaru Semantic Link, Anda dapat menjalankan perintah:
python %pip install -U semantic-link
- Tambahkan Lakehouse ke buku catatan Anda.
Untuk Spark 3.4 ke atas, tautan Semantic tersedia dalam runtime default saat menggunakan Fabric, dan tidak perlu menginstalnya. Jika Anda menggunakan Spark 3.3 atau di bawahnya, atau jika Anda ingin memperbarui ke versi Terbaru Semantic Link, jalankan perintah ini:
%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()
Fungsi mengembalikan find_dependencies
FabricDataFrame dengan dependensi yang terdeteksi di antara kolom.
Daftar mewakili kolom yang memiliki pemetaan 1:1. Fungsi ini juga menghapus tepi transitif, untuk mencoba memangkas dependensi potensial.
Saat Anda menentukan dropna=True
opsi, baris yang memiliki nilai NaN di salah satu kolom dihilangkan dari evaluasi. Ini dapat mengakibatkan dependensi nontransitif, seperti yang ditunjukkan dalam contoh ini:
A | B | C |
---|---|---|
1 | 1 | 1 |
1 | 1 | 1 |
1 | NaN | 9 |
2 | NaN | 2 |
2 | 2 | 2 |
Dalam beberapa kasus, rantai dependensi dapat membentuk siklus saat Anda menentukan opsi, seperti yang dropna=True
ditunjukkan dalam contoh ini:
A | B | C |
---|---|---|
1 | 1 | NaN |
2 | 1 | NaN |
NaN | 1 | 1 |
NaN | 2 | 1 |
1 | NaN | 1 |
1 | NaN | 2 |
Memvisualisasikan dependensi dalam data
Setelah Anda menemukan dependensi fungsi dalam himpunan data (menggunakan find_dependencies
), Anda dapat memvisualisasikan dependensi dengan plot_dependency_metadata
fungsi . Fungsi ini mengambil FabricDataFrame yang dihasilkan dari find_dependencies
dan membuat representasi visual dependensi antara kolom dan grup kolom.
Cuplikan kode Python ini menunjukkan cara menggunakan 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)
Fungsi ini plot_dependency_metadata
menghasilkan visualisasi yang menunjukkan pengelompokan kolom 1:1.
Kolom yang termasuk dalam satu grup ditempatkan dalam satu sel. Jika tidak ada kandidat yang sesuai yang ditemukan, FabricDataFrame kosong akan dikembalikan.
Mengidentifikasi masalah kualitas data
Masalah kualitas data dapat memiliki berbagai bentuk - misalnya, nilai, inkonsistensi, atau ketidakakuratan yang hilang. Mengidentifikasi dan mengatasi masalah ini penting untuk memastikan keandalan dan validitas analisis atau model apa pun yang dibangun pada data. Salah satu cara untuk mendeteksi masalah kualitas data adalah dengan memeriksa pelanggaran dependensi fungsi antara kolom dalam himpunan data.
Fungsi ini list_dependency_violations
dapat membantu mengidentifikasi pelanggaran dependensi fungsi antara kolom himpunan data. Mengingat kolom penentu dan kolom dependen, fungsi ini menunjukkan nilai yang melanggar dependensi fungsional, bersama dengan jumlah kemunculan masing-masing. Ini dapat membantu memeriksa perkiraan dependensi dan mengidentifikasi masalah kualitas data.
Cuplikan list_dependency_violations
kode ini menunjukkan cara menggunakan fungsi :
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")
Dalam contoh ini, fungsi mengasumsikan dependensi fungsional antara kolom ZIP (determinan) dan CITY (dependen). Jika himpunan data memiliki masalah kualitas data - misalnya, Kode Pos yang sama yang ditetapkan ke beberapa kota - fungsi menghasilkan data dengan masalah:
ZIP | KOTA | jumlah |
---|---|---|
12345 | Boston | 2 |
12345 | Seattle | 1 |
Output ini menunjukkan bahwa dua kota yang berbeda (Boston dan Seattle) memiliki nilai Kode Pos yang sama (12345). Ini menyarankan masalah kualitas data dalam himpunan data.
Fungsi ini list_dependency_violations
menyediakan lebih banyak opsi yang dapat menangani nilai yang hilang, memperlihatkan nilai yang dipetakan ke nilai yang melanggar, membatasi jumlah pelanggaran yang dikembalikan, dan mengurutkan hasil berdasarkan kolom hitungan atau penentu.
Output list_dependency_violations
dapat membantu mengidentifikasi masalah kualitas data himpunan data. Namun, Anda harus memeriksa hasilnya dengan cermat dan mempertimbangkan konteks data Anda, untuk menentukan tindakan yang paling tepat untuk mengatasi masalah yang diidentifikasi. Pendekatan ini mungkin melibatkan lebih banyak pembersihan, validasi, atau eksplorasi data untuk memastikan keandalan dan validitas analisis atau model Anda.
Memvisualisasikan masalah kualitas data
Masalah kualitas data dapat merusak keandalan dan validitas analisis atau model apa pun yang dibangun pada data tersebut. Mengidentifikasi dan mengatasi masalah ini penting untuk memastikan keakuratan hasil Anda. Untuk mendeteksi masalah kualitas data, Anda dapat memeriksa pelanggaran dependensi fungsi antara kolom dalam himpunan data. Memvisualisasikan pelanggaran ini dapat menunjukkan masalah dengan lebih jelas, dan membantu Anda mengatasinya dengan lebih efektif.
Fungsi ini plot_dependency_violations
dapat membantu memvisualisasikan pelanggaran dependensi fungsi antara kolom dalam himpunan data. Mengingat kolom penentu dan kolom dependen, fungsi ini menunjukkan nilai yang melanggar dalam format grafis, untuk mempermudah memahami sifat dan tingkat masalah kualitas data.
Cuplikan plot_dependency_violations
kode ini menunjukkan cara menggunakan fungsi :
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")
Dalam contoh ini, fungsi mengasumsikan dependensi fungsional yang ada antara kolom ZIP (determinan) dan CITY (dependen). Jika himpunan data memiliki masalah kualitas data - misalnya, kode pos yang sama yang ditetapkan ke beberapa kota - fungsi menghasilkan grafik nilai yang melanggar.
Fungsi ini plot_dependency_violations
menyediakan lebih banyak opsi yang dapat menangani nilai yang hilang, memperlihatkan nilai yang dipetakan ke nilai yang melanggar, membatasi jumlah pelanggaran yang dikembalikan, dan mengurutkan hasil berdasarkan kolom hitungan atau penentu.
Fungsi ini plot_dependency_violations
menghasilkan visualisasi yang dapat membantu mengidentifikasi masalah kualitas data himpunan data. Namun, Anda harus memeriksa hasilnya dengan cermat dan mempertimbangkan konteks data Anda, untuk menentukan tindakan yang paling tepat untuk mengatasi masalah yang diidentifikasi. Pendekatan ini mungkin melibatkan lebih banyak pembersihan, validasi, atau eksplorasi data untuk memastikan keandalan dan validitas analisis atau model Anda.
Menerapkan batasan fungsi
Kualitas data sangat penting untuk memastikan keandalan dan validitas analisis atau model apa pun yang dibangun di atas himpunan data. Penegakan batasan fungsi antara kolom dalam himpunan data dapat membantu meningkatkan kualitas data. Batasan fungsional dapat membantu memastikan bahwa hubungan antar kolom memiliki akurasi dan konsistensi, yang dapat menyebabkan analisis atau hasil model yang lebih akurat.
Fungsi ini dapat membantu memberlakukan batasan fungsi antara kolom dalam himpunan drop_dependency_violations
data. Ini menghilangkan baris yang melanggar batasan tertentu. Mengingat kolom yang menentukan dan kolom dependen, fungsi ini menghapus baris dengan nilai yang tidak sesuai dengan batasan fungsional antara dua kolom.
Cuplikan drop_dependency_violations
kode ini menunjukkan cara menggunakan fungsi :
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")
Di sini, fungsi memberlakukan batasan fungsional antara kolom ZIP (determinan) dan CITY (dependen). Untuk setiap nilai penentu, nilai dependen yang paling umum dipilih, dan semua baris dengan nilai lain dihilangkan. Misalnya, mengingat himpunan data ini, baris dengan CITY=Seattle akan dihilangkan, dan ZIP dependensi fungsi -> CITY menyimpan dalam output:
ZIP | KOTA |
---|---|
12345 | Seattle |
12345 | Boston |
12345 | Boston |
98765 | Baltimore |
00000 | San Fransisco |
Fungsi ini drop_dependency_violations
menyediakan verbose
opsi untuk mengontrol verbositas output. Dengan mengatur verbose=1
, Anda dapat melihat jumlah baris yang dihilangkan. Nilai verbose=2
memperlihatkan seluruh konten baris dari baris yang dijatuhkan.
Fungsi ini drop_dependency_violations
dapat memberlakukan batasan fungsional antara kolom dalam himpunan data Anda, yang dapat membantu meningkatkan kualitas data dan menyebabkan hasil yang lebih akurat dalam analisis atau model Anda. Namun, Anda harus mempertimbangkan dengan cermat konteks data Anda dan batasan fungsional yang Anda pilih untuk diberlakukan, untuk memastikan bahwa Anda tidak secara tidak sengaja menghapus informasi berharga dari himpunan data Anda.