Projeksiyon hesaplama
Şimdi, iki parçalı bir grafın projeksiyonunu bölümlerinden birindeki düğümlere çıkarmayı deneme zamanı. Bu, bir grafın iki parçalı sürümü ile tek parçalı projeksiyonları arasında dönüşüm pratiği yapmana yardımcı olacak. Videodan hatırlayacağın üzere, bir grafın bir bölümüne olan "projeksiyonu", o bölümdeki düğümlerin bağlanırlığının, diğer bölümdeki düğümlere olan bağlantılar koşuluyla tanımlanmasıdır. Daha somut düşünürsek, bunu "müşterilerin ortak satın alımlara göre bağlanırlığı" gibi düşünebilirsin.
Başlamana yardımcı olmak için, liste üreteçleri hakkında bir ipucu: Liste üreteçleri koşullar içerebilir. Yani, bir grafı belirli bir düğüm türüne göre filtrelemek istersen şöyle yapabilirsin: [n for n, d in G.nodes(data=True) if d['key'] == 'some_value'].
Bu egzersiz
Python ile Orta Düzey Ağ (Network) Analizi
kursunun bir parçasıdırEgzersiz talimatları
- Bir liste üreteci kullanarak
peopledüğüm listesini hazırla.Giçindeki birndüğümünün'bipartite'anahtar kelimesi'people'ise, o düğüm düğüm listesinde yer almalı. clubsdüğüm listesini, G'nin düğümleri üzerinde meta veriler DAHİL olacak şekilde yineleyerek hazırla. Burada, meta veri sözlüğüdiçinde'bipartite'anahtar kelimesinin'clubs'olup olmadığını kontrol etmen gerektiğine dikkat et. Not: Bu, düğüm listesini oluşturmanın alternatif bir yoludur. Meta veriler üzerinde yinelemek ZORUNDA değilsin —peopledüğüm listesini oluştururken kullandığın yaklaşımı izleyip bu kez'clubs'için kontrol edebilirsin. Burada her iki yöntemi de pratik etmen için diğer yaklaşımı kullanmanı istiyoruz.nx.bipartite.projected_graph()kullanarak people ve clubs projeksiyonlarını hesapla. SonuçlarıpeopleGveclubsGolarak sakla.- Bu fonksiyon iki argüman alır: Grafik
Gve düğüm listesi.
- Bu fonksiyon iki argüman alır: Grafik
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Prepare the nodelists needed for computing projections: people, clubs
# This exercise shows you two ways to do it, one with `data=True` and one without.
people = [n for n in G.nodes() if G.nodes[____]['____'] == '____']
clubs = [n for n, d in G.nodes(data=True) if d['____'] == '____']
# Compute the people and clubs projections: peopleG, clubsG
peopleG = ____
clubsG = ____