BaşlayınÜcretsiz Başlayın

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ır
Kursu Görüntüle

Egzersiz talimatları

  • Bir liste üreteci kullanarak people düğüm listesini hazırla. G içindeki bir n düğümünün 'bipartite' anahtar kelimesi 'people' ise, o düğüm düğüm listesinde yer almalı.
  • clubs düğüm listesini, G'nin düğümleri üzerinde meta veriler DAHİL olacak şekilde yineleyerek hazırla. Burada, meta veri sözlüğü d iç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 — people düğü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ı peopleG ve clubsG olarak sakla.
    • Bu fonksiyon iki argüman alır: Grafik G ve düğüm listesi.

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 = ____
Kodu Düzenle ve Çalıştır