ตรวจหา สํารวจ และตรวจสอบการขึ้นต่อกันของฟังก์ชันในข้อมูลของคุณ โดยใช้ลิงก์ความหมาย
การขึ้นต่อกันของฟังก์ชันการทํางานคือความสัมพันธ์ระหว่างคอลัมน์ในตาราง ที่ใช้ค่าในหนึ่งคอลัมน์เพื่อกําหนดค่าในคอลัมน์อื่น การทําความเข้าใจการขึ้นต่อกันเหล่านี้สามารถช่วยให้คุณเปิดเผยรูปแบบและความสัมพันธ์ในข้อมูลของคุณ ซึ่งจะช่วยในการวิศวกรรมคุณลักษณะ การทําความสะอาดข้อมูล และงานการสร้างแบบจําลองตามลําดับ การขึ้นต่อกันทํางานทํางานทําหน้าที่เป็นผู้ไม่แปรปรวนที่มีประสิทธิภาพซึ่งช่วยให้คุณสามารถค้นหาและแก้ไขปัญหาคุณภาพของข้อมูลที่อาจยากที่จะตรวจจับได้
ในบทความนี้ คุณใช้ลิงก์เชิงความหมายเพื่อ:
- ค้นหาการขึ้นต่อกันระหว่างคอลัมน์ของ FabricDataFrame
- ทำให้การขึ้นต่อกันมองเห็นได้
- ระบุปัญหาคุณภาพของข้อมูล
- แสดงภาพปัญหาคุณภาพของข้อมูล
- บังคับใช้ข้อจํากัดการทํางานระหว่างคอลัมน์ในชุดข้อมูล
ข้อกำหนดเบื้องต้น
รับการสมัครใช้งาน Microsoft Fabric หรือลงทะเบียนเพื่อทดลองใช้งาน Microsoft Fabric ฟรี
ลงชื่อเข้าใช้ Microsoft Fabric
ใช้ตัวสลับประสบการณ์ทางด้านซ้ายของโฮมเพจของคุณเพื่อสลับไปยังประสบการณ์วิทยาศาสตร์ข้อมูล Synapse
- ไปยังประสบการณ์วิทยาศาสตร์ข้อมูลที่พบใน Microsoft Fabric
- สร้าง สมุดบันทึก ใหม่เพื่อคัดลอก/วางรหัสลงในเซลล์
- สําหรับ Spark 3.4 และสูงกว่า ลิงก์ความหมายจะพร้อมใช้งานในรันไทม์เริ่มต้นเมื่อใช้ Fabric และไม่จําเป็นต้องติดตั้ง ถ้าคุณกําลังใช้ Spark 3.3 หรือต่ํากว่า หรือถ้าคุณต้องการอัปเดตเป็นลิงก์ความหมายเวอร์ชันล่าสุด คุณสามารถเรียกใช้คําสั่งได้:
python %pip install -U semantic-link
- เพิ่มเลคเฮาส์ลงในสมุดบันทึกของคุณ
สําหรับ 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 |
แสดงภาพการอ้างอิงในข้อมูล
หลังจากที่คุณค้นหาการขึ้นต่อกันของplot_dependency_metadata
ฟังก์ชันในชุดข้อมูล (โดยใช้ find_dependencies
) คุณสามารถแสดงภาพการอ้างอิงด้วยฟังก์ชัน ฟังก์ชันนี้นําผลลัพธ์ 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 ที่ว่างเปล่า
ระบุปัญหาคุณภาพของข้อมูล
ปัญหาคุณภาพของข้อมูลสามารถมีหลายรูปแบบ เช่น ค่าที่ขาดหายไป ความไม่สอดคล้องกัน หรือความไม่ถูกต้อง การระบุและแก้ไขปัญหาเหล่านี้เป็นสิ่งสําคัญเพื่อให้แน่ใจว่ามีความน่าเชื่อถือและความถูกต้องของการวิเคราะห์หรือแบบจําลองที่สร้างขึ้นบนข้อมูล วิธีหนึ่งในการตรวจหาปัญหาคุณภาพของข้อมูลคือการตรวจสอบการละเมิดการขึ้นต่อกันของการทํางานระหว่างคอลัมน์ในชุดข้อมูล
ฟังก์ชัน 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 (ขึ้นต่อกัน) หากชุดข้อมูลมีปัญหาคุณภาพข้อมูล - ตัวอย่างเช่น รหัสไปรษณีย์เดียวกันที่กําหนดให้กับหลายเมือง - ฟังก์ชันจะแสดงข้อมูลที่มีปัญหา:
ZIP | CITY | จำนวน |
---|---|---|
12345 | บอสตัน | 2 |
12345 | Seattle | 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
จะสร้างการแสดงภาพที่สามารถช่วยระบุปัญหาคุณภาพของข้อมูลของชุดข้อมูลได้ อย่างไรก็ตาม คุณควรตรวจสอบผลลัพธ์และพิจารณาบริบทของข้อมูลของคุณอย่างรอบคอบเพื่อกําหนดแนวทางที่เหมาะสมที่สุดในการจัดการปัญหาที่ระบุ วิธีการนี้อาจเกี่ยวข้องกับการทําความสะอาดข้อมูล การตรวจสอบความถูกต้อง หรือการสํารวจเพิ่มเติมเพื่อให้แน่ใจว่าการวิเคราะห์หรือแบบจําลองของคุณมีความน่าเชื่อถือและถูกต้อง
บังคับใช้ข้อจํากัดการทํางาน
คุณภาพของข้อมูลเป็นสิ่งสําคัญสําหรับการรับประกันความน่าเชื่อถือและความถูกต้องของการวิเคราะห์หรือแบบจําลองใด ๆ ที่สร้างขึ้นบนชุดข้อมูล การบังคับใช้ข้อจํากัดในการทํางานระหว่างคอลัมน์ในชุดข้อมูลสามารถช่วยปรับปรุงคุณภาพของข้อมูลได้ ข้อจํากัดด้านการทํางานสามารถช่วยให้แน่ใจว่าความสัมพันธ์ระหว่างคอลัมน์มีความถูกต้องและความสอดคล้องกัน ซึ่งอาจนําไปสู่การวิเคราะห์ที่ถูกต้องยิ่งขึ้นหรือผลลัพธ์ของแบบจําลอง
ฟังก์ชัน 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 ที่ขึ้นต่อกันทํางานอยู่ในผลลัพธ์:
ZIP | CITY |
---|---|
12345 | Seattle |
12345 | บอสตัน |
12345 | บอสตัน |
98765 | Baltimore |
00000 | ซานฟรานซิสโก |
ฟังก์ชัน drop_dependency_violations
มีตัวเลือกใน verbose
การควบคุมความฟุบย่อยของเอาต์พุต ด้วยการตั้งค่า verbose=1
คุณสามารถดูจํานวนแถวที่ทิ้งไปได้ verbose=2
ค่าแสดงเนื้อหาแถวทั้งหมดของแถวที่ปล่อยไว้
ฟังก์ชัน drop_dependency_violations
สามารถบังคับใช้ข้อจํากัดฟังก์ชันระหว่างคอลัมน์ในชุดข้อมูลของคุณ ซึ่งสามารถช่วยปรับปรุงคุณภาพของข้อมูลและนําไปสู่ผลลัพธ์ที่ถูกต้องมากขึ้นในการวิเคราะห์หรือแบบจําลองของคุณ อย่างไรก็ตาม คุณต้องพิจารณาบริบทของข้อมูลของคุณและข้อจํากัดด้านการทํางานที่คุณเลือกที่จะบังคับใช้อย่างรอบคอบ เพื่อให้แน่ใจว่าคุณไม่ได้นําข้อมูลที่มีค่าออกจากชุดข้อมูลของคุณโดยไม่ได้ตั้งใจ