Brauche Hilfe bei mehren Problemen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
NewPythonNoob
User
Beiträge: 3
Registriert: Sonntag 28. Mai 2023, 19:06

Hallo zusammen, erst mal zu mir: bin ein absoluter Anfänger und brauche Python nur wegen eines Unikurses. Hatte bisher nur ein paar Stunden Einführung in das Thema und ich habe auch sonst keine Programmierkenntnisse. Deshalb wäre es schön wenn sich hier jemand finden würde der mir bei den Aufgaben helfen könnte.


Ich poste die mal so wie die uns gestellt wurden:


Aufgabenstellung
1) Erstellen Sie folgende Netzwerke:
A) Florentine Families Graph.
B) Ein Erdös-Renyi-Zufallsnetzwerk (10 Knoten, 𝑃(𝑒𝑑𝑔𝑒)=0.5).
C) Sampsons T4 Graph (Sampson_T4.paj),

2) Betrachten Sie folgende Eigenschaften:
Knoten: Anzahl und vorhandene Attribute
Kanten: Anzahl und vorhandene Attribute
Um welche Art von Graph handelt es sich?
Erzeugen sie möglichst einfachen und lesbaren Output für diese Eigenschaften.

3) Beantworten sie folgende Fragen kurz für alle 3 Graphen:
Um was handelt es sich bei den Knoten?
Um was handelt es sich bei den Kanten?
Wie ist das Netzwerk entstanden oder erhoben worden.
Welche soziologischen Fragestellungen ließen sich an diesen Graphen untersuchen, wenn überhaupt?

4) Recherchieren Sie die ursprüngliche Veröffentlichung des Karate Club Graphen (siehe zum Beispiel die Hilfe zu nx.karate_club_graph()) und die darin dokumentierte Erhebung. Reflektieren und kritisieren Sie diese Datenerhebung ausführlich vor dem Hintergrund der vier methodischen Gütekriterien, die im Seminar besprochen wurden.

5) Handelt es sich bei dem Florentines Family Graphen um ein one-mode oder two-mode Netzwerk, oder um eine Mischform? Begründen Sie ausführlich. Erläutern Sie dabei auch was ein two-mode Netzwerk auszeichnet.
6) Erzeugen Sie folgende Ausgaben:
Eine Liste mit sämtlichen Knoten des Graphen 3, die negative Beziehungen ('weight': -1) aufweisen.
7) Plotten Sie Graph 3 mit folgenden Besonderheiten:
Kamada Kawai Layout.
Einfärben der Knoten entsprechend des In-Degrees.
Farbwahl mittels einer Colormap. Diese Auswahl sollte begründet werden.
Größe der Knoten proportional zum Out-Degree. Wählen Sie hier einen sinnvollen Skalierungsfaktor.
Kantenzüge als Bögen.
Interpretieren Sie kurz Ihre Visualisierung aus Teilaufgabe 7. Was wird deutlich? Was fehlt Ihrer Meinung nach?
Berechnen Sie die Density aller drei Netzwerke. Erzeugen Sie diese Ausgabe mittels print und einer for-Schleife.


Hoffe auf viele Antworten und danke im Vorraus :D
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Schon mal ChatGPT bemüht?
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
NewPythonNoob
User
Beiträge: 3
Registriert: Sonntag 28. Mai 2023, 19:06

Erst mal danke für die Antwort.
Ja hab ich und es hat auch bei 1 A+B geholfen. Ich hätte aber noch Probleme beim Importieren von der Sampson Pajek Datei.

Habe dann diesen Code eingegeben (stand bei Chatgp und auch in unseren Einführungsdateien).

import networkx as nx

# Graph aus Pajek-Datei lesen
SMG = nx.read_pajek('data/Sampson_T4.paj')


Dann kam aber folgende Fehlermeldung beim ausführen


---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
Cell In[28], line 4
1 import networkx as nx
3 # Graph aus Pajek-Datei lesen
----> 4 SMG = nx.read_pajek('data/Sampson_T4.paj')

File <class 'networkx.utils.decorators.argmap'> compilation 21:3, in argmap_read_pajek_17(path, encoding)
1 import bz2
2 import collections
----> 3 import gzip
4 import inspect
5 import itertools

File /usr/lib/python3.11/site-packages/networkx/utils/decorators.py:191, in open_file.<locals>._open_file(path)
187 else:
188 # could be None, or a file handle, in which case the algorithm will deal with it
189 return path, lambda: None
--> 191 fobj = _dispatch_dict[ext](path, mode=mode)
192 return fobj, lambda: fobj.close()

FileNotFoundError: [Errno 2] No such file or directory: 'data/Sampson_T4.paj'
Sirius3
User
Beiträge: 17737
Registriert: Sonntag 21. Oktober 2012, 17:20

Das sind ja keine allgemeinen Python-Fragen, sondern sehr spezifische zu Graphen und dem networkx-Paket. Wäre also schön, wenn Du das auch erwähnt hättest.
Bestimmt habt Ihr in der Vorlesung schon einiges über Graphen gehört, denn solche Aufgaben stehen ja nicht im leeren Raum.
Am besten arbeitest Du die Aufgaben mit Deinen Kommilitonen durch; man ist ja an der Uni kein Einzelkämpfer.
Wenn Ihr konkrete Fragen zu einzelnen Punkten hast, dann poste den Code, den Ihr bisher schon versucht habt, und was Ihr erwartet und wie die Erwartung von dem Ergebnis abweicht.

Und zu Deinem Code: im aktuellen Arbeitsverzeichnis gibt es kein Verzeichnis `data`. Du mußt also das korrekte Verzeichnis angeben.
NewPythonNoob
User
Beiträge: 3
Registriert: Sonntag 28. Mai 2023, 19:06

Danke für die Antwort. Werde das mit dem Verzeichnis versuchen.
Benutzeravatar
ThomasL
User
Beiträge: 1366
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

Die ausführliche Dokumentation von networkx findet man hier: https://networkx.org/documentation/stable/index.html

Zu Sampson T4 data habe ich das hier gefunden: https://www.researchgate.net/figure/Uni ... _248484742

Diese Thematik ist allerdings sehr speziell und ihr braucht Leute die in der Materie sind, wie Sirius schon sagte, Kommilitonen, eventuell ja auch höhere Semester die das schon hinter sich haben.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Benutzeravatar
__blackjack__
User
Beiträge: 13064
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@NewPythonNoob: Bei 1) A) und B) hilft ja eher die Dokumentation von NetworkX statt ChatGPT. ChatGPT denkt sich immer was aus für eine Antwort. Wenn man Glück hat, ist da auch Richtiges dabei, aber um das überprüfen zu können, muss man so viel von der Dokumentation verstehen, dass man diese beiden Aufgaben auch selbst hätte lösen können. Und die sind ja beide supereinfach.

1) C) eigentlich auch wenn man den richtigen Pfad zu der Datei angibt, die man da laden soll. Und natürlich wenn man die Datei hat.

Zu 2): Anzahl von Knoten und Kanten lassen sich leicht ermitteln. Bei den Attributen ist der Zusatz „möglichst einfachen und lesbaren Output“ zu erzeugen die eigentliche Hürde. Man muss die Attribute aus der Datenstruktur holen, und sich dabei Gedanken dazu machen von welchen Knoten und welcher Kante man die nimmt, damit sichergestellt ist, das man *alle* hat. Bei der Frage nach der Art des Graph müssen wir hier im Forum wohl erst einmal passen, denn die Frage ist recht offen. Da habt ihr sicher was in den Unterlagen was für Arten es gibt. Es gibt da ja mehrere Unterscheidungen und Eigenschaften wie gerichtet/ungerichtet, zusammenhängend/nicht zusammenhängend, Kreise/kreisfrei, und so weiter. NetworkX hat da eine Menge Testfunktionen.

Zu 3), 4), und 5): Das hat eher nichts mit Programmieren zu tun, sondern mit Deinem Fachgebiet.

Zu 6) Das ist einfach umzusetzen.

Zu 7) Da wird einem wenn man das einfach so versucht eine Fehlermeldung um die Ohren fliegen, die dazu führt, dass man die Kantendaten verändern muss.

Dann ist das eine Übung in Dokumentation lesen. Die von NetworkX und auch ein bisschen von Matplotlib um die ganzen Argumente zusammen zu suchen die man der Funktion zum zeichnen mitgeben muss, damit die Visualisierung des Graphen den Vorgaben aus der Aufgabe entspricht. Kein Programmierthema, aber auch nicht spezifisch für Dein Fachgebiet ist die Auswahl und Begründung für die Colormap. Da kann die Dokumentation von Matplotlib hilfreich sein.

Wenn man sich die Visualisierung anschaut, fehlt da recht offensichtlich wichtige Information die in den Daten vorhanden ist, in der Grafik aber komplett fehlt.

Density berechnen ist wieder sehr einfach.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten