Ein Kollege hat mir den Code geschickt und gesagt "einfach laufen lassen, dann gibt es Ergebnisse". Ich habe ihn zwei Stunden laufen lassen und vier Fehlermeldungen bekommen. Erst als ich ihn in einzelne Zellen zerlegt habe, habe ich gefunden, wo das Problem lag.
Meine Vorgehensweise ist jetzt: Wenn ich fremden Code bekomme, zerlege ich ihn zuerst in Zellen und lokalisiere dann Zelle für Zelle. Ausgeführt wird er in der MuchSci Wissenschaftstool-Sammlung, im interaktiven Datenanalyse-Notebook.
Nach dem Zerlegen in Zellen gibt es vier Fehlerarten
Erste Kategorie: Fehlende Pakete in der Umgebung. Die erste Zelle macht nur eine Sache: die benötigten Bibliotheken mit import einmal laden und schauen, welche rot markiert werden. Was fehlt, wird installiert; so sieht man alles auf einmal, statt es erst auf halber Strecke zu merken.
Zweite Kategorie: Pfade funktionieren nicht. Die zweite Zelle liest die Daten ein und gibt sofort Zeilen- und Spaltenzahl sowie die ersten Zeilen aus. In fremdem Code steht im Pfad der Speicherort auf dem Rechner des anderen; diesen Schritt muss ich selbst anpassen.
Dritte Kategorie: Spaltennamen stimmen nicht überein. Die dritte Zelle prüft die Spaltennamen: Sie gibt die tatsächlichen Spaltennamen in den Daten aus und gleicht sie mit den im Code verwendeten Spaltennamen ab.
Diese Kategorie ist am schwersten zu finden, denn wenn ein Spaltenname um einen Buchstaben falsch ist, melden manche Bibliotheken keinen Fehler, sondern liefern stillschweigend ein falsches Ergebnis. Meine Gewohnheit ist inzwischen: Bei jedem berechneten Ergebnis schaue ich zuerst eine Zeile mit Rohwerten an, bevor ich weitermache. Genau hier liegt der Vorteil des interaktiven Datenanalyse-Notebooks——Das Ergebnis jeder Zelle bleibt im Notebook, und ich kann Zelle für Zelle zurückverfolgen, ab welchem Schritt es falsch wird.
Vierte Kategorie: Versionsunterschiede. Bei manchen Funktionen sind die Standardparameter in verschiedenen Versionen unterschiedlich. Bei wichtigen Funktionen schreibe ich die Parameter explizit hin und verwende keine Standardwerte.
Nachdem ich die vier Kategorien geprüft habe, mache ich den Code zu meinem eigenen
Fremden Code verwende ich nicht direkt; ich ordne ihn im interaktiven Datenanalyse-Notebook in vier Abschnitte neu:
- Einlesen (Originaldatei bleibt unverändert)
- Bereinigen (jede Aktion in einer eigenen Zelle)
- Berechnen (Parameter stehen in der Zelle)
- Darstellen und Exportieren (Grafik und Zahlen kommen zusammen heraus)
Nach der Neuordnung ist dieser Code zu meinem eigenen Analyseablauf geworden. Wenn ich das nächste Mal einen anderen Datensatz verwende, ändere ich nur die Zelle zum Einlesen.
Diese Methode des Aufteilens in Zellen verwende ich in drei Situationen
- Ich übernehme fremde Daten: zuerst in Zellen zerlegen und zum Laufen bringen, dann über Schlussfolgerungen sprechen.
- Ich reproduziere Ergebnisse aus einem Paper: die vier Abschnitte gemäß dem Methodenteil des Papers neu anordnen; wenn es nicht übereinstimmt, Zelle für Zelle nach Unterschieden suchen.
- Meine eigene Analyse soll von anderen geprüft werden: das ganze Notebook direkt weitergeben; die andere Person muss nicht meine Zwischenschritte erklärt bekommen.
Drei begleitende Funktionen
- Die Abläufe und Ergebnisse im Notebook werden in MuchScis persönlicher Wissensdatenbank archiviert und beim Schreiben des Methodenteils direkt abgerufen.
- Die im Methodenteil zu zitierende Literatur prüfe ich mit dem MuchSci Paper-Recherche-Assistenten auf DOI und Zitationsangaben.
- Die fremdsprachige Originalbeschreibung der Methode lese ich im Vergleich mit der MuchSci Paper-Übersetzung.
- Die abschließende Dokumentation formatiere ich mit dem MuchSci Office-Assistenten-Agenten als bearbeitbare Datei.
Von "fremdem Code" bis "zu meinem eigenen Ablauf", das alles verdanke ich dieser Methode des Aufteilens in Zellen.MuchScis interaktives Datenanalyse-Notebook sorgt für die Nachvollziehbarkeit,MuchScis persönliche Wissensdatenbank für die Archivierung,MuchScis Paper-Recherche-Assistent,MuchScis Paper-Übersetzung und MuchScis Office-Assistenten-Agent übernehmen den Abschluss.
Fehlermeldungen sind nicht das Schlimmste; das Schlimmste ist, stillschweigend falsch zu rechnen. Das ist auch mein erster Grundsatz, wenn ich jetzt mit dem KI-Assistenten für Graduierte an Daten arbeite: Jeder Schritt muss nachvollziehbar sein.