Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu öğreticide, bir Power BI analistinin anlamsal modeller (Power BI veri kümeleri) olarak depolanan çalışmasını temel alarak ilerlersiniz. Fabric Data Science iş yükünde SemPy (önizleme) kullanarak, DataFrame sütunlarındaki fonksiyonel bağımlılıkları analiz ediyorsunuz. Bu analiz, daha doğru içgörüler elde etmek için küçük veri kalitesi sorunlarını keşfetmenize yardımcı olur.
Bu öğreticide şunların nasıl yapılacağını öğreneceksiniz:
- Anlamsal modelde işlevsel bağımlılıklar hakkındaki hipotezleri formüle etmek için etki alanı bilgisi uygulayın.
- Semantic Link'in Python kitaplığının (SemPy) Power BI ile tümleşen ve veri kalitesi analizini otomatikleştirmeye yardımcı olan bileşenleri hakkında bilgi edinin. Bu bileşenler şunlardır:
- FabricDataFrame— ek anlamsal bilgilerle geliştirilmiş pandas benzeri bir yapı
- Fabric çalışma alanından not defterinize anlamsal modeller çeken fonksiyonlar
- İşlevsel bağımlılık hipotezlerini değerlendiren ve anlamsal modellerinizdeki ilişki ihlallerini tanımlayan işlevler
Önkoşullar
Microsoft Fabric aboneliği alın. Alternatif olarak, ücretsiz bir Microsoft Fabric deneme sürümüne kaydolun.
Giriş sayfanızın sol alt köşesindeki deneyim değiştiriciyi kullanarak Fabric'e geçin.
Çalışma alanınızı bulmak ve seçmek için gezinti bölmesinden Çalışma Alanları'nı seçin. Bu çalışma alanı, geçerli çalışma alanınız haline gelir.
Fabric-samples GitHub deposundanCustomer Profitability Sample.pbix dosyasını indirin.
Çalışma alanınızda, İçe Aktar>Rapor veya Sayfalandırılmış Rapor>Bu bilgisayardan seçeneklerini belirleyerek Customer Profitability Sample.pbix dosyasını çalışma alanınıza yükleyin.
Not defterinde takip edin
Powerbi_dependencies_tutorial.ipynb not defteri bu öğreticiye eşlik eder.
Bu öğreticide eşlik eden not defterini açmak için, Sistemizi veri bilimi öğreticilerine hazırlama başlığındaki yönergeleri izleyerek not defterini çalışma alanınıza aktarın.
Bu sayfadaki kodu kopyalayıp yapıştırmayı tercih ederseniz, yeni bir not defteri oluşturabilirsiniz.
Kod çalıştırmaya başlamadan önce not defterine bir göl evi eklediğinizden emin olun.
Dizüstü bilgisayarı kurun
İhtiyacınız olan modüller ve verilerle bir not defteri ortamı ayarlayın.
Not defterine PyPI'den SemPy'yi yüklemek için kullanın
%pip.%pip install semantic-linkİhtiyacınız olan modülleri içeri aktarın.
import sempy.fabric as fabric from sempy.dependencies import plot_dependency_metadata
Verileri yükleme ve ön işleme
Bu öğreticide standart örnek bir anlam modeli Customer Profitability Sample.pbix kullanılmıştır. Anlamsal modelin açıklaması için bkz. Power BI için müşteri kârlılığı örneğini.
fabric.read_tableişlevini kullanarak Power BI verileriniFabricDataFrameiçine yükleyin.dataset = "Customer Profitability Sample" customer = fabric.read_table(dataset, "Customer") customer.head()StatetabloyuFabricDataFrameiçine yükleyin.state = fabric.read_table(dataset, "State") state.head()Çıktı bir pandas DataFrame gibi görünse de bu kod, pandas'a ek işlemler sağlayan
FabricDataFrameadlı bir veri yapısını başlatır.veri türünü
customerdenetleyin.type(customer)Çıktı,
customerdeğerininsempy.fabric._dataframe._fabric_dataframe.FabricDataFrameolduğunu gösterir.customervestateDataFramenesnelerini birleştirin.customer_state_df = customer.merge(state, left_on="State", right_on="StateCode", how='left') customer_state_df.head()
İşlevsel bağımlılıkları tanımlama
İşlevsel bağımlılık, DataFrame içindeki iki veya daha fazla sütundaki değerler arasında bire-çok ilişkidir. Veri kalitesi sorunlarını otomatik olarak algılamak için bu ilişkileri kullanın.
Sütun değerleri arasındaki işlevsel bağımlılıkları belirlemek için SemPy'nin
find_dependenciesişlevini birleştirilmişDataFrameüzerinde çalıştırın.dependencies = customer_state_df.find_dependencies() dependenciesSemPy'nin işlevini kullanarak bağımlılıkları görselleştirin
plot_dependency_metadata.plot_dependency_metadata(dependencies)İşlevsel bağımlılıklar grafiği, sütunun
Customer,CityvePostal CodegibiNamesütunları belirlediğini gösterir.Büyük olasılıkla sütunlar arasındaki ilişkide birçok ihlal olduğundan grafik ile
CityarasındaPostal Codeişlevsel bir bağımlılık göstermez. Belirli sütunlar arasındaki bağımlılık ihlallerini görselleştirmek için SemPy'ninplot_dependency_violationsişlevini kullanın.
Kalite sorunlarını tespit etmek için verileri inceleyin
SemPy'nin
plot_dependency_violationsgörselleştirme işleviyle bir grafik çizin.customer_state_df.plot_dependency_violations('Postal Code', 'City')
Bağımlılık ihlalleri grafiği, sol tarafta
Postal Codedeğerlerini, sağ tarafta iseCitydeğerlerini gösterir. Bir kenar, bu iki değeri içeren bir satır varsa, sol taraftaki birPostal Code'ı sağ taraftaki birCity'e bağlar. Kenarlar, bu tür satırların sayısı ile açıklanır. Örneğin, posta kodu 20004 olan iki satır var, bunlardan biri "Kuzey Kulesi" isimli şehri, diğeri "Washington" isimli şehri içeriyor.Çizimde ayrıca birkaç ihlal ve birçok boş değer gösterilir.
Postal Codeiçin boş değerlerin sayısını onaylayın:customer_state_df['Postal Code'].isna().sum()Postal Codeiçin 50 satırda NA vardır.Boş değerleri olan satırları çıkarın. Ardından,
find_dependenciesişlevini kullanarak bağımlılıkları bulun. SemPy'nin iç çalışmalarına bir bakış sunan ek parametreverbose=1dikkat edin:customer_state_df2=customer_state_df.dropna() customer_state_df2.find_dependencies(verbose=1)Postal CodeveCityiçin koşullu entropi 0,049'dur. Bu değer, işlevsel bağımlılık ihlalleri olduğunu gösterir. İhlalleri düzeltmeden önce, bağımlılıkları görmek için koşullu entropi eşiğini varsayılan0.01değerinden0.05değerine yükseltin. Düşük eşikler daha az bağımlılıkla (veya daha yüksek seçiciliğe) neden olur.Koşullu entropi eşiğini varsayılan
0.01değerinden0.05değerine yükseltin:plot_dependency_metadata(customer_state_df2.find_dependencies(threshold=0.05))Diğer varlıkların değerlerini hangi varlığın belirlediği hakkında etki alanı bilgisi uygularsanız, bu bağımlılık grafiği doğru görünür.
Algılanan diğer veri kalitesi sorunlarını keşfedin. Örneğin, kesikli bir ok
CityveRegion'i birleştirir, bu da bağımlılığın yalnızca yaklaşık olduğunu gösterir. Bu yaklaşık ilişki kısmi işlevsel bağımlılık olduğu anlamına gelebilir.customer_state_df.list_dependency_violations('City', 'Region')Var olmayan bir
Regiondeğerinin ihlale neden olduğu durumların her birine daha yakından bakın:customer_state_df[customer_state_df.City=='Downers Grove']Sonuç, Illinois ve Nebraska'daki Downers Grove şehrini gösterir. Ancak Downers Grove, Nebraska'da değil , Illinois'de bulunan bir şehirdir.
Fremontşehrine göz atın:
customer_state_df[customer_state_df.City=='Fremont']California'da Fremont adında bir şehir. Ancak, Texas için arama motoru Fremont'ı değil Premont'ı döndürür.
Ayrıca, bağımlılık ihlallerinin özgün grafiğindeki noktalı çizgiyle belirtildiği gibi (boş değer içeren satırları bırakmadan önce)
NameileCountry/Regionarasındaki bağımlılık ihlallerini görmek de şüphelidir.customer_state_df.list_dependency_violations('Name', 'Country/Region')Bir müşteri olan SDI Design, ABD ve Kanada olmak üzere iki bölgede görünür. Bu durum semantik bir ihlal olmayabilir, yalnızca sık rastlanmayan bir durum olabilir. Yine de yakından bakmaya değer:
Müşterinin SDI Tasarımına daha yakından bakın:
customer_state_df[customer_state_df.Name=='SDI Design']Daha ayrıntılı inceleme, farklı sektörlerden, aynı isme sahip iki farklı müşteri olduğunu gösteriyor.
Keşfedici veri analizi ve veri temizleme yinelemeli süreçlerdir. Ne bulacağınız sorularınıza ve perspektifinize bağlıdır. Semantik Bağlantı, verilerinizden daha fazlasını elde etmek için yeni araçlar sağlar.
İlgili içerik
Anlamsal bağlantı ve SemPy için diğer öğreticilere göz atın:
- Eğitim: İşlevsel bağımlılıklar kullanarak verileri temizleme
- Öğretici: Jupyter Notebook’tan Power BI ölçülerini çıkarma ve hesaplama
- Öğreticisi: Anlamsal bağlantı kullanarak anlamsal modeldeki ilişkileri keşfetme
- Öğretici: Anlamsal bağlantıyı kullanarak Synthea veri kümesindeki ilişkileri bulma
- Eğitim: SemPy ve Great Expectations (GX) ile veri doğrulama