Data Science – Phát hiện, khám phá và xác thực các phần phụ thuộc chức năng trong dữ liệu của bạn bằng cách sử dụng liên kết ngữ nghĩa

Ràng buộc chức năng là mối quan hệ giữa các cột trong một bảng, trong đó giá trị trong một cột được sử dụng để xác định giá trị trong một cột khác. Hiểu rõ về những phụ thuộc này có thể giúp bạn khám phá các mô hình và mối quan hệ trong dữ liệu của bạn, điều này có thể hữu ích cho việc kỹ thuật tạo đặc trưng, làm sạch dữ liệu và xây dựng mô hình. Ràng buộc chức năng hoạt động như một hằng số hiệu quả, cho phép bạn tìm ra và sửa các vấn đề chất lượng dữ liệu mà có thể khó phát hiện nếu không có chúng.

Trong bài viết này, bạn sẽ sử dụng liên kết ngữ nghĩa để:

  • Tìm ra các phụ thuộc giữa các cột của FabricDataFrame.
  • Hiển thị đồ họa về các phụ thuộc.
  • Xác định các vấn đề về chất lượng dữ liệu.
  • Hiển thị đồ họa về các vấn đề chất lượng dữ liệu.
  • Áp đặt các ràng buộc chức năng giữa các cột trong một bộ dữ liệu.

Điều kiện tiên quyết

Screenshot of the experience switcher menu, showing where to select Data Science.
  • Truy cập trải nghiệm Data Science experience trong Microsoft Fabric.
  • Tạo một notebook mới để sao chép/dán code vào các ô
  • Cài đặt thư viện SemPy cho Python trong kernel của sổ ghi chú của bạn bằng cách thực thi đoạn mã này trong ô của notebook:

Python

%pip install semantic-link

Tìm sự phụ thuộc chức năng trong dữ liệu

Hàm find_dependencies trong SemPy phát hiện các phụ thuộc chức năng giữa các cột của FabricDataFrame. Hàm sử dụng một ngưỡng về entropy có điều kiện để phát hiện các phụ thuộc chức năng gần đúng, trong đó entropy có điều kiện thấp chỉ ra sự phụ thuộc mạnh mẽ giữa các cột. Để làm cho hàm find_dependencies trở nên chọn lọc hơn, bạn có thể đặt một ngưỡng thấp hơn về entropy có điều kiện. Ngưỡng thấp hơn có nghĩa là chỉ có những phụ thuộc mạnh mẽ mới được phát hiện.

Đoạn mã Python sau mô tả cách sử dụng hàm 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()

Hàm find_dependencies trả về một FabricDataFrame với các phụ thuộc được phát hiện giữa các cột. Các cột có ánh xạ 1:1 sẽ được biểu diễn dưới dạng danh sách. Hàm cũng cố gắng cắt bớt các phụ thuộc tiềm ẩn bằng cách loại bỏ các cạnh chuyển giao.

Khi bạn chỉ định tùy chọn dropna=True, các hàng có giá trị NaN trong bất kỳ cột nào sẽ bị loại bỏ khỏi quá trình đánh giá. Điều này có thể dẫn đến các phụ thuộc không chuyển giao, như trong ví dụ sau:

ABC
111
111
1NaN9
2NaN2
222

Trong một số trường hợp, chuỗi phụ thuộc có thể tạo ra chu kỳ khi bạn chỉ định tùy chọn dropna=True, như thể hiện trong ví dụ sau:

ABC
11NaN
21NaN
NaN11
NaN21
1NaN1
1NaN2

Trực quan hóa sự phụ thuộc trong dữ liệu

Sau khi tìm ra các phụ thuộc chức năng trong một bộ dữ liệu (sử dụng find_dependencies), bạn có thể hình dung các phụ thuộc bằng cách sử dụng hàm plot_dependency_metadata. Hàm này nhận FabricDataFrame kết quả từ find_dependencies và tạo ra một biểu đồ hình ảnh về các phụ thuộc giữa các cột và nhóm cột.

Đoạn mã Python sau mô tả cách sử dụng plot_dependencies:

Python

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)

Hàm plot_dependency_metadata tạo ra một hình ảnh minh họa thể hiện các nhóm 1:1 của các cột. Các cột thuộc về một nhóm duy nhất sẽ được đặt vào một ô duy nhất. Nếu không tìm thấy ứng viên phù hợp, một FabricDataFrame trống rỗng sẽ được trả về.

Screenshot showing the output of the plot_dependencies function.

Xác định các vấn đề về chất lượng dữ liệu

Các vấn đề về chất lượng dữ liệu có thể xuất hiện dưới nhiều hình thức, chẳng hạn như giá trị bị thiếu, không nhất quán hoặc không chính xác. Xác định và giải quyết những vấn đề này là quan trọng để đảm bảo độ tin cậy và tính hợp lệ của bất kỳ phân tích hoặc mô hình nào được xây dựng trên dữ liệu.

Một cách để phát hiện vấn đề về chất lượng dữ liệu là thông qua việc kiểm tra vi phạm các phụ thuộc chức năng giữa các cột trong một bộ dữ liệu.

Hàm list_dependency_violations có thể giúp bạn xác định vi phạm các phụ thuộc chức năng giữa các cột trong một bộ dữ liệu. Với một cột quyết định và một cột phụ thuộc, hàm này sẽ hiển thị các giá trị vi phạm phụ thuộc chức năng, cùng với số lần xuất hiện của chúng. Điều này có thể hữu ích để kiểm tra các phụ thuộc gần đúng và xác định các vấn đề về chất lượng dữ liệu.

Dưới đây là một đoạn mã minh họa về cách sử dụng hàm list_dependency_violations:

Python

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")

Trong ví dụ này, hàm giả định rằng tồn tại một phụ thuộc chức năng giữa các cột ZIP (quyết định) và CITY (phụ thuộc). Nếu bộ dữ liệu có vấn đề về chất lượng dữ liệu, như cùng một Mã ZIP được gán cho nhiều thành phố, hàm sẽ xuất ra các giá trị vi phạm như sau:

ZIPCITYcount
12345Boston2
12345Seattle1

Đầu ra này cho thấy rằng cùng một Mã ZIP (12345) được gán cho hai thành phố khác nhau (Boston và Seattle), ngụ ý một vấn đề về chất lượng dữ liệu trong bộ dữ liệu.

Hàm list_dependency_violations cung cấp nhiều tùy chọn hơn để xử lý giá trị thiếu, hiển thị các giá trị được ánh xạ với các giá trị vi phạm, giới hạn số lượng vi phạm trả về, và sắp xếp kết quả theo số lần xuất hiện hoặc cột quyết định. (TODO: Liên kết đến tài liệu API)

Kết quả của hàm list_dependency_violations có thể giúp xác định vấn đề về chất lượng dữ liệu trong bộ dữ liệu của bạn. Tuy nhiên, quan trọng là phải xem xét kết quả một cách cẩn thận và xem xét ngữ cảnh của dữ liệu để xác định hành động phù hợp nhất để giải quyết các vấn đề được xác định. Hành động này có thể liên quan đến làm sạch dữ liệu, xác nhận hoặc khám phá dữ liệu thêm để đảm bảo tính tin cậy và tính hợp lệ của phân tích hoặc mô hình của bạn.

Trực quan hóa các vấn đề về chất lượng dữ liệu

Vấn đề về chất lượng dữ liệu có thể ảnh hưởng tiêu cực đến tính tin cậy và tính hợp lệ của bất kỳ phân tích hoặc mô hình nào được xây dựng trên dữ liệu. Xác định và giải quyết những vấn đề này là quan trọng để đảm bảo độ chính xác của kết quả. Một cách để phát hiện vấn đề về chất lượng dữ liệu là thông qua việc kiểm tra vi phạm các phụ thuộc chức năng giữa các cột trong một bộ dữ liệu. Hình dung những vi phạm này có thể cung cấp một hiểu biết tốt hơn về các vấn đề và giúp bạn giải quyết chúng một cách hiệu quả hơn.

Hàm plot_dependency_violations có thể giúp hình dung vi phạm các phụ thuộc chức năng giữa các cột trong một bộ dữ liệu. Với một cột quyết định và một cột phụ thuộc, hàm này sẽ hiển thị các giá trị vi phạm dưới dạng đồ họa, giúp bạn hiểu rõ hơn về bản chất và phạm vi của vấn đề chất lượng dữ liệu.

Dưới đây là một đoạn mã minh họa về cách sử dụng hàm plot_dependency_violations:

Python

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")

Trong ví dụ này, hàm giả định rằng có một phụ thuộc chức năng giữa các cột ZIP (quyết định) và CITY (phụ thuộc). Nếu bộ dữ liệu có vấn đề về chất lượng dữ liệu, chẳng hạn như cùng một mã ZIP được gán cho nhiều thành phố, hàm sẽ tạo ra một biểu đồ của các giá trị vi phạm.

Hàm plot_dependency_violations cung cấp nhiều tùy chọn hơn để xử lý giá trị thiếu, hiển thị các giá trị được ánh xạ với các giá trị vi phạm, giới hạn số lượng vi phạm trả về và sắp xếp kết quả theo số lần xuất hiện hoặc cột quyết định. (TODO: Liên kết đến tài liệu API)

Hình ảnh được tạo ra bởi plot_dependency_violations có thể giúp bạn xác định vấn đề về chất lượng dữ liệu trong bộ dữ liệu của bạn và hiểu rõ về bản chất và phạm vi của chúng. Bằng cách xem xét biểu đồ, bạn có thể thu được những hiểu biết về mối quan hệ giữa các cột quyết định và phụ thuộc và xác định các lỗi potentional hoặc không nhất quán trong dữ liệu của bạn.

Screenshot showing the output of the plot_dependency_violations function.

Thực thi các ràng buộc chức năng

Chất lượng dữ liệu là quan trọng để đảm bảo tính tin cậy và tính hợp lệ của bất kỳ phân tích hoặc mô hình nào được xây dựng trên một bộ dữ liệu. Một cách để cải thiện chất lượng dữ liệu là thông qua việc áp đặt các ràng buộc chức năng giữa các cột trong một bộ dữ liệu. Ràng buộc chức năng có thể giúp đảm bảo rằng các mối quan hệ giữa các cột là nhất quán và chính xác, từ đó có thể dẫn đến kết quả chính xác hơn trong phân tích hoặc mô hình của bạn.

Hàm drop_dependency_violations có thể giúp áp đặt các ràng buộc chức năng giữa các cột trong một bộ dữ liệu bằng cách loại bỏ các hàng vi phạm ràng buộc đã cho. Với một cột quyết định và một cột phụ thuộc, hàm này loại bỏ các hàng có giá trị không tuân thủ ràng buộc chức năng giữa hai cột.

Dưới đây là một đoạn mã minh họa về cách sử dụng hàm drop_dependency_violations:

Python

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")

Trong ví dụ này, hàm áp đặt một ràng buộc chức năng giữa các cột ZIP (quyết định) và CITY (phụ thuộc). Đối với mỗi giá trị của quyết định, giá trị phụ thuộc phổ biến nhất được chọn, và tất cả các hàng với các giá trị khác sẽ bị loại bỏ. Ví dụ, với bộ dữ liệu sau đây:

ZIPCITY
12345Seattle
12345Boston
12345Boston
98765Baltimore
00000San Francisco

Hàng với CITY=Seattle sẽ bị loại bỏ, và phụ thuộc chức năng ZIP -> CITY sẽ được giữ lại trong kết quả.

Hàm drop_dependency_violations cung cấp tùy chọn verbose để kiểm soát mức độ chi tiết của đầu ra. Bằng cách đặt verbose=1, bạn có thể thấy số lượng hàng bị loại bỏ, và verbose=2 cho phép bạn xem toàn bộ nội dung của các hàng đã bị loại bỏ.

Bằng cách sử dụng hàm drop_dependency_violations, bạn có thể áp đặt ràng buộc chức năng giữa các cột trong bộ dữ liệu của mình, giúp cải thiện chất lượng dữ liệu và dẫn đến kết quả chính xác hơn trong phân tích hoặc mô hình của bạn. Tuy nhiên, quan trọng là phải xem xét kỹ ngữ cảnh của dữ liệu và ràng buộc chức năng bạn chọn để áp dụng, để đảm bảo rằng bạn không vô tình loại bỏ thông tin quan trọng từ bộ dữ liệu của mình.

Nguồn: https://learn.microsoft.com/en-us/fabric/data-science/semantic-link-validate-data

spot_img

More from this stream

Recomended

Cập Nhật Google Analytics Quý 2/2024

Bài viết này cung cấp thông tin về các bản phát hành mới nhất trong Google Analytics trong quý 2 năm 2024.

[GA4] – Hiểu rõ về nguồn dữ liệu

Một nguồn dữ liệu là một nơi chứa dữ liệu bạn tải lên Analytics, bao gồm cơ sở dữ liệu, dịch vụ, hoặc tệp CSV bạn tải lên và một ánh xạ của các trường dữ liệu Analytics với các trường trong cơ sở dữ liệu, dịch vụ hoặc CSV bên ngoài của bạn.

Segment là gì?

Segment là một traditional Customer Data Platform (CDP) chuyên về việc thu thập sự kiện và kích hoạt dữ liệu.

Composable CDP là gì?

Composable CDP là một lớp kích hoạt cho phép bạn tạo ra đối tượng khán giả, điều phối hành trình, và gửi dữ liệu hiện tại của bạn đến các công cụ tiếp thị hàng đầu của bạn.

Traditional CDP và Composable CDP

Việc áp dụng rộng rãi của hệ thống lưu trữ dữ liệu đám mây đã cách mạng hóa không gian Customer Data Platform (CDP), dẫn đến sự xuất hiện của một kiến trúc CDP mạnh mẽ hơn, nguyên gốc từ hệ thống lưu trữ dữ liệu đám mây được biết đến là Composable CDP.

Customer Data Platform (CDP) là gì?

Một Customer Data Platform, hay CDP, là một giải pháp hoặc kiến trúc cho phép bạn thu thập, lưu trữ, mô hình hóa và kích hoạt dữ liệu khách hàng của bạn.