Aracılığıyla paylaş


Semantik bağlantıyı kullanarak verilerinizdeki işlevsel bağımlılıkları algılama, keşfetme ve doğrulama

İşlevsel bağımlılıklar, tablodaki sütunlar arasındaki ilişkilerdir ve bir sütundaki değerler başka bir sütundaki değerleri belirlemek için kullanılır. Bu bağımlılıkları anlamak, verilerinizdeki desenleri ve ilişkileri ortaya çıkarmanıza yardımcı olabilir ve bu da özellik mühendisliği, veri temizleme ve model oluşturma görevlerine yardımcı olabilir. İşlevsel bağımlılıklar, aksini tespit etmek zor olabilecek veri kalitesi sorunlarını bulmanıza ve düzeltmenize olanak tanıyan etkili bir sabit değer görevi görür.

Bu makalede, anlamsal bağlantıyı kullanarak:

  • FabricDataFrame sütunları arasındaki bağımlılıkları bulma
  • Bağımlılıkları görselleştirin
  • Veri kalitesi sorunlarını belirleme
  • Veri kalitesi sorunlarını görselleştirme
  • Veri kümesindeki sütunlar arasında işlevsel kısıtlamaları zorunlu kılma

Önkoşullar

  • Microsoft Fabric'te bulunan Veri Bilimi deneyimine gidin.
  • Hücrelere kod kopyalamak/yapıştırmak için yeni bir not defteri oluşturun.
  • Spark 3.4 ve üzeri için Doku kullanılırken varsayılan çalışma zamanında Anlam bağlantısı kullanılabilir ve yüklemeniz gerekmez. Spark 3.3 veya üzerini kullanıyorsanız veya Anlam Bağlantısı'nın en son sürümüne güncelleştirmek istiyorsanız komutunu çalıştırabilirsiniz: python %pip install -U semantic-link  
  • Not defterinize bir Lakehouse ekleyin.

Spark 3.4 ve üzeri için Doku kullanılırken varsayılan çalışma zamanında Anlam bağlantısı kullanılabilir ve yüklemeniz gerekmez. Spark 3.3 veya üzerini kullanıyorsanız veya Anlam Bağlantısı'nın en son sürümüne güncelleştirmek istiyorsanız şu komutu çalıştırın:

%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()

İşlev, find_dependencies sütunlar arasında algılanan bağımlılıklara sahip bir FabricDataFrame döndürür. Liste, 1:1 eşlemesi olan sütunları temsil eder. İşlev, olası bağımlılıkları ayıklamaya çalışmak için geçişli kenarları da kaldırır.

Seçeneğini belirttiğinizde dropna=True , her iki sütunda da NaN değeri olan satırlar değerlendirmeden çıkarılır. Bu, bu örnekte gösterildiği gibi geçişsiz bağımlılıklara neden olabilir:

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

Bazı durumlarda bağımlılık zinciri, bu örnekte gösterildiği gibi seçeneği belirttiğinizde dropna=True döngüler oluşturabilir:

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

Verilerdeki bağımlılıkları görselleştirme

Bir veri kümesindeki işlevsel bağımlılıkları buldukta (kullanarak find_dependencies), işleviyle plot_dependency_metadata bağımlılıkları görselleştirebilirsiniz. Bu işlev, elde edilen FabricDataFrame değerini alır find_dependencies ve sütunlar ve sütun grupları arasındaki bağımlılıkların görsel bir gösterimini oluşturur.

Bu Python kod parçacığının nasıl kullanılacağını plot_dependenciesgösterir:

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)

İşlev, plot_dependency_metadata 1:1 sütun gruplandırmalarını gösteren bir görselleştirme oluşturur. Tek bir gruba ait sütunlar tek bir hücreye yerleştirilir. Uygun aday bulunmazsa boş bir FabricDataFrame döndürülür.

plot_dependencies işlevinin çıkışını gösteren ekran görüntüsü.

Veri kalitesi sorunlarını belirleme

Veri kalitesi sorunlarının çeşitli biçimleri olabilir; örneğin eksik değerler, tutarsızlıklar veya yanlışlıklar. Bu sorunların tanımlanması ve ele alınması, veriler üzerinde oluşturulan analiz veya modellerin güvenilirliğini ve geçerliliğini sağlamak için önemlidir. Veri kalitesi sorunlarını algılamanın bir yolu, veri kümesindeki sütunlar arasındaki işlevsel bağımlılıkların ihlallerini incelemektir.

işlevi, list_dependency_violations veri kümesi sütunları arasındaki işlevsel bağımlılıkların ihlallerini belirlemeye yardımcı olabilir. Belirleyici bir sütun ve bağımlı sütun göz önüne alındığında, bu işlev işlevsel bağımlılığı ihlal eden değerleri ve bunların ilgili oluşumlarının sayısını gösterir. Bu, yaklaşık bağımlılıkları incelemeye ve veri kalitesi sorunlarını belirlemeye yardımcı olabilir.

Bu kod parçacığı işlevin list_dependency_violations nasıl kullanılacağını gösterir:

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

Bu örnekte işlev, ZIP (determinant) ve CITY (bağımlı) sütunları arasında işlevsel bir bağımlılık olduğunu varsayar. Veri kümesinde veri kalitesi sorunları varsa (örneğin, aynı POSTA Kodu birden çok şehre atanmışsa) işlev, veri çıkışını şu sorunlarla oluşturur:

ZIP ŞEHİR count
12345 Boston 2
12345 Seattle 1

Bu çıkış, iki farklı şehrin (Boston ve Seattle) aynı POSTA Kodu değerine (12345) sahip olduğunu gösterir. Bu, veri kümesinde bir veri kalitesi sorunu olduğunu gösterir.

list_dependency_violations işlevi eksik değerleri işleyebilen, ihlal eden değerlerle eşlenen değerleri gösterebilen, döndürülen ihlal sayısını sınırlayan ve sonuçları sayıya veya belirleyici sütuna göre sıralayabilecek daha fazla seçenek sağlar.

Çıktı, list_dependency_violations veri kümesi veri kalitesi sorunlarını belirlemeye yardımcı olabilir. Ancak, tanımlanan sorunları çözmek için en uygun eylem seyrini belirlemek için sonuçları dikkatle incelemeli ve verilerinizin bağlamını göz önünde bulundurmalısınız. Bu yaklaşım, analiz veya modelinizin güvenilirliğini ve geçerliliğini sağlamak için daha fazla veri temizleme, doğrulama veya araştırma içerebilir.

Veri kalitesi sorunlarını görselleştirme

Veri kalitesi sorunları, bu veriler üzerinde oluşturulan tüm analiz veya modellerin güvenilirliğine ve geçerliliğine zarar verebilir. Sonuçlarınızın doğruluğundan emin olmak için bu sorunların tanımlanması ve ele alınması önemlidir. Veri kalitesi sorunlarını algılamak için bir veri kümesindeki sütunlar arasındaki işlevsel bağımlılıkların ihlallerini inceleyebilirsiniz. Bu ihlalleri görselleştirmek sorunları daha net gösterebilir ve bunları daha etkili bir şekilde çözmenize yardımcı olabilir.

işlevi, plot_dependency_violations bir veri kümesindeki sütunlar arasındaki işlevsel bağımlılıkların ihlallerini görselleştirmeye yardımcı olabilir. Belirleyici bir sütun ve bağımlı sütun göz önüne alındığında, bu işlev veri kalitesi sorunlarının doğasını ve kapsamını daha kolay anlamak için ihlal eden değerleri grafik biçiminde gösterir.

Bu kod parçacığı işlevin plot_dependency_violations nasıl kullanılacağını gösterir:

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

Bu örnekte işlev, ZIP (determinant) ve CITY (bağımlı) sütunları arasında var olan bir işlevsel bağımlılığı varsayar. Veri kümesinde veri kalitesi sorunları varsa (örneğin, aynı posta kodu birden çok şehre atanmışsa) işlev ihlal eden değerlerin grafiğini oluşturur.

plot_dependency_violations işlevi eksik değerleri işleyebilen, ihlal eden değerlerle eşlenen değerleri gösterebilen, döndürülen ihlal sayısını sınırlayan ve sonuçları sayıya veya belirleyici sütuna göre sıralayabilecek daha fazla seçenek sağlar.

işlevi, plot_dependency_violations veri kümesi veri kalitesi sorunlarını tanımlamaya yardımcı olabilecek bir görselleştirme oluşturur. Ancak, tanımlanan sorunları çözmek için en uygun eylem seyrini belirlemek için sonuçları dikkatle incelemeli ve verilerinizin bağlamını göz önünde bulundurmalısınız. Bu yaklaşım, analiz veya modelinizin güvenilirliğini ve geçerliliğini sağlamak için daha fazla veri temizleme, doğrulama veya araştırma içerebilir.

plot_dependency_violations işlev çıkışını gösteren ekran görüntüsü.

İşlevsel kısıtlamaları zorunlu kılma

Veri kümesi üzerinde oluşturulan analiz veya modellerin güvenilirliğini ve geçerliliğini sağlamak için veri kalitesi çok önemlidir. Veri kümesindeki sütunlar arasında işlevsel kısıtlamaların uygulanması, veri kalitesinin artırılmasına yardımcı olabilir. İşlevsel kısıtlamalar, sütunlar arasındaki ilişkilerin doğruluğu ve tutarlılığı olduğundan emin olmanıza yardımcı olabilir ve bu da daha doğru analiz veya model sonuçlarına yol açabilir.

işlevi, drop_dependency_violations veri kümesindeki sütunlar arasında işlevsel kısıtlamaların uygulanmasına yardımcı olabilir. Belirli bir kısıtlamayı ihlal eden satırları görmezden gelir. Belirleyici bir sütun ve bağımlı sütun göz önüne alındığında, bu işlev iki sütun arasındaki işlevsel kısıtlamaya uymayan değerlere sahip satırları kaldırır.

Bu kod parçacığı işlevin drop_dependency_violations nasıl kullanılacağını gösterir:

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

Burada işlev, ZIP (determinant) ve CITY (bağımlı) sütunları arasında işlevsel bir kısıtlama uygular. Determinantın her değeri için, bağımlının en yaygın değeri seçilir ve diğer değerlere sahip tüm satırlar bırakılır. Örneğin, bu veri kümesi göz önüne alındığında, CITY=Seattle satırı > alır:

ZIP ŞEHİR
12345 Seattle
12345 Boston
12345 Boston
98765 Baltimore
00000 San Francisco

işlevi, drop_dependency_violations çıkış ayrıntı düzeyini denetleme seçeneği sağlar verbose . ayarını verbose=1yaparak bırakılan satır sayısını görebilirsiniz. Değer verbose=2 , bırakılan satırların tüm satır içeriğini gösterir.

İşlev, drop_dependency_violations veri kümenizdeki sütunlar arasında işlevsel kısıtlamalar uygulayabilir ve bu da veri kalitesini artırmaya yardımcı olabilir ve analiz veya modelinizde daha doğru sonuçlara yol açabilir. Ancak, değerli bilgileri yanlışlıkla veri kümenizden kaldırmadığınızdan emin olmak için verilerinizin bağlamını ve uygulamayı seçtiğiniz işlevsel kısıtlamaları dikkatle dikkate almanız gerekir.