แชร์ผ่าน


ตรวจหา สํารวจ และตรวจสอบการขึ้นต่อกันของฟังก์ชันในข้อมูลของคุณ โดยใช้ลิงก์ความหมาย

การขึ้นต่อกันของฟังก์ชันการทํางานคือความสัมพันธ์ระหว่างคอลัมน์ในตาราง ที่ใช้ค่าในหนึ่งคอลัมน์เพื่อกําหนดค่าในคอลัมน์อื่น การทําความเข้าใจการขึ้นต่อกันเหล่านี้สามารถช่วยให้คุณเปิดเผยรูปแบบและความสัมพันธ์ในข้อมูลของคุณ ซึ่งจะช่วยในการวิศวกรรมคุณลักษณะ การทําความสะอาดข้อมูล และงานการสร้างแบบจําลองตามลําดับ การขึ้นต่อกันทํางานทํางานทําหน้าที่เป็นผู้ไม่แปรปรวนที่มีประสิทธิภาพซึ่งช่วยให้คุณสามารถค้นหาและแก้ไขปัญหาคุณภาพของข้อมูลที่อาจยากที่จะตรวจจับได้

ในบทความนี้ คุณใช้ลิงก์เชิงความหมายเพื่อ:

  • ค้นหาการขึ้นต่อกันระหว่างคอลัมน์ของ FabricDataFrame
  • ทำให้การขึ้นต่อกันมองเห็นได้
  • ระบุปัญหาคุณภาพของข้อมูล
  • แสดงภาพปัญหาคุณภาพของข้อมูล
  • บังคับใช้ข้อจํากัดการทํางานระหว่างคอลัมน์ในชุดข้อมูล

ข้อกำหนดเบื้องต้น

  • ไปยังประสบการณ์วิทยาศาสตร์ข้อมูลที่พบใน 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 ที่ว่างเปล่า

สกรีนช็อตที่แสดงผลลัพธ์ของฟังก์ชัน 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 (ขึ้นต่อกัน) หากชุดข้อมูลมีปัญหาคุณภาพข้อมูล - ตัวอย่างเช่น รหัสไปรษณีย์เดียวกันที่กําหนดให้กับหลายเมือง - ฟังก์ชันจะแสดงข้อมูลที่มีปัญหา:

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 จะสร้างการแสดงภาพที่สามารถช่วยระบุปัญหาคุณภาพของข้อมูลของชุดข้อมูลได้ อย่างไรก็ตาม คุณควรตรวจสอบผลลัพธ์และพิจารณาบริบทของข้อมูลของคุณอย่างรอบคอบเพื่อกําหนดแนวทางที่เหมาะสมที่สุดในการจัดการปัญหาที่ระบุ วิธีการนี้อาจเกี่ยวข้องกับการทําความสะอาดข้อมูล การตรวจสอบความถูกต้อง หรือการสํารวจเพิ่มเติมเพื่อให้แน่ใจว่าการวิเคราะห์หรือแบบจําลองของคุณมีความน่าเชื่อถือและถูกต้อง

สกรีนช็อตที่แสดงเอาต์พุตฟังก์ชัน 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 สามารถบังคับใช้ข้อจํากัดฟังก์ชันระหว่างคอลัมน์ในชุดข้อมูลของคุณ ซึ่งสามารถช่วยปรับปรุงคุณภาพของข้อมูลและนําไปสู่ผลลัพธ์ที่ถูกต้องมากขึ้นในการวิเคราะห์หรือแบบจําลองของคุณ อย่างไรก็ตาม คุณต้องพิจารณาบริบทของข้อมูลของคุณและข้อจํากัดด้านการทํางานที่คุณเลือกที่จะบังคับใช้อย่างรอบคอบ เพื่อให้แน่ใจว่าคุณไม่ได้นําข้อมูลที่มีค่าออกจากชุดข้อมูลของคุณโดยไม่ได้ตั้งใจ