Mehr

Wie importiere ich Python-Sklearn richtig in das QGIS PyQt-Plugin?

Wie importiere ich Python-Sklearn richtig in das QGIS PyQt-Plugin?


Ich bin etwas neu in der Entwicklung von Python und QGIS-Plugins. Ich habe mit dem Plugin Builder auf QGIS eine Plugin-Struktur für QGIS erstellt und der GUI einige Steuerelemente hinzugefügt und es geschafft, die entsprechende Modulbindung an die GUI zu aktualisieren.

Ich versuche auch, den nächsten Nachbarn der sklearn-Bibliothek in meiner Plugin-Anwendung zu verwenden. Alles funktioniert gut, bis sklearn zum ersten Mal ausgeführt wird und ich eine Fehlermeldung wie folgt erhalte:

Beim Ausführen von Python-Code ist ein Fehler aufgetreten:

Traceback (letzter Aufruf zuletzt): Datei "C:/Users/c_aaalam/.qgis2/python/pluginsFemtoCoveragefemto_coverage.py", Zeile 282, in Laufdistanzen, Indizes = nbrs.kneighbors(subs) Datei "C: /Users/c_aaalam/.qgis2/python/pluginsFemtoCoveragesklearn eighborsase.py", Zeile 332, in kneighbors return_distance=return_distance) Datei "binary_tree.pxi", Zeile 1295, in sklearn.neighbors.kd_treeB .query (sklearn eighborskd_tree.c:10386) Datei "C:/Users/c_aaalam/.qgis2/python/pluginsFemtoCoveragesklearnutilsvalidation.py", Zeile 117, in array2d if sp.issparse( X): AttributeError: 'NoneType'-Objekt hat kein Attribut 'issparse'

Dies ist das Skript, das ich in meinem Plugin ausführe:

nbrs = NearestNeighbors(n_neighbors = 1, algorithm="auto").fit(array1) Distanzen, Indizes = nbrs.kneighbors(array2)

Es sieht so aus, als ob die scipy-sparse-Variable "NoneType" ist und daher die Funktion "issparse()" nicht erkannt wird. Ich habe den sklearn-Ordner im Plugin-Verzeichnis (Windows-Benutzer) abgelegt und das notwendige Import-Sklearn zu meinem Plugin-Modul hinzugefügt.

Hat jemand Erfahrung mit sklearn in PyQt-Anwendungen oder speziell mit der Entwicklung von QGIS-Plugins und kann mir helfen, diesen Fehler zu beheben?

Vielleicht lade ich sklearn falsch?


Ich habe das Problem herausgefunden. Das Problem war, dass ich sklearn im selben Verzeichnis wie meine Plugin-Dateien hatte und nicht in den Site-Paketen unter meiner qgis-Installation.

Ich bin mir nicht 100% sicher, dass dies das Problem war, aber sobald ich sklearn aus dem Plugin-Verzeichnis gelöscht und in Site-Paketen installiert habe, war das Problem behoben. Keine Fehler mehr!


Scikit-learn installieren¶

Beachten Sie, dass es dringend empfohlen wird, eine virtuelle Umgebung (venv) oder eine Conda-Umgebung zu verwenden, um potenzielle Konflikte mit anderen Paketen zu vermeiden.

Die Verwendung einer solchen isolierten Umgebung ermöglicht es, eine bestimmte Version von scikit-learn mit pip oder conda und ihren Abhängigkeiten unabhängig von zuvor installierten Python-Paketen zu installieren. Insbesondere unter Linux wird davon abgeraten, pip-Pakete neben den Paketen zu installieren, die vom Paketmanager der Distribution verwaltet werden (apt, dnf, pacman…).

Beachten Sie, dass Sie immer daran denken sollten, die Umgebung Ihrer Wahl zu aktivieren, bevor Sie einen Python-Befehl ausführen, wenn Sie eine neue Terminalsitzung starten.

Wenn Sie NumPy oder SciPy noch nicht installiert haben, können Sie diese auch mit conda oder pip installieren. Achten Sie bei der Verwendung von pip darauf, dass binäre Räder verwendet werden und NumPy und SciPy nicht aus dem Quellcode neu kompiliert werden, was bei bestimmten Konfigurationen von Betriebssystem und Hardware (wie Linux auf einem Raspberry Pi) passieren kann.


Zugriff auf QString für QGIS-2.14 in PyQt4

Dies ist ein bisschen QGIS-spezifisch, aber ich denke, es ist eine Art niedriges Niveau, also habe ich es hier gepostet. Ich kann das definitiv auf gis.stackexchange.com verschieben, wenn das besser ist.

Ich versuche, QgsRasterCalculator zu verwenden, der ein Objekt vom Typ QString für einige Argumente zu benötigen scheint. Ich versuche, einen QString zu erstellen (wie hier beschrieben), bekomme aber:

Also versuche ich, einen regulären String für mein erstes Argument zu verwenden ( calc = QgsRasterCalculator( 'demffac > 120', newStreams, 'GTiff', rFac.extent(), rFac.crs().authid(), rFac.height() , rFac.width(), Einträge) ), habe ich:

Traceback (letzter Aufruf zuletzt): Datei "<input>", Zeile 1, in <module> TypeError: Argumente stimmten mit keinem überladenen Aufruf überein: QgsRasterCalculator(QString, QString, QString, QgsRectangle, int, int, list-of-QgsRasterCalculatorEntry): argument 5 hat den unerwarteten Typ 'Unicode' QgsRasterCalculator(QString, QString, QString, QgsRectangle, QgsCoordinateReferenceSystem, int, int, list-of-QgsRasterCalculatorEntry): Argument 5 hat den unerwarteten Typ 'Unicode' QgsRasterCalculator(QgsRasterCalculator'): Argument 1 hat den unerwarteten Typ ' '

Ich verwende QGIS 2.14, das als QString dokumentiert wurde (wie ich es verstehe). Ich habe versucht, das SIP-Paket zum Zurücksetzen zu verwenden (gemäß diesen Anweisungen), aber die Python-Konsole von QGIS scheint sich nicht ändern zu wollen (ValueError: API 'QString' wurde bereits auf Version 2 gesetzt).

Irgendeine Möglichkeit, damit mein QgsRasterCalculator()-Aufruf funktioniert? Danke für jede Info!

/==================BEARBEITEN: Screenshot der Antworten meines QGIS auf Vorschläge========= /================== Versionsinfo:


3 Antworten 3

Sie haben Recht, XGBoost ('eXtreme Gradient Boosting') und GradientBoost von sklearn sind im Wesentlichen gleich, da es sich bei beiden um Gradient Boosting-Implementierungen handelt.

Unter der Haube gibt es jedoch in praktischer Hinsicht ganz erhebliche Unterschiede. XGBoost ist viel schneller (siehe http://machinelearningmastery.com/gentle-introduction-xgboost-applied-machine-learning/) als das von sklearn. XGBoost ist ziemlich speichereffizient und kann parallelisiert werden (ich denke, sklearn kann dies standardmäßig nicht, ich weiß nicht genau über die Speichereffizienz von sklearn, aber ich bin ziemlich zuversichtlich, dass sie unter der von XGBoost liegt).

Nachdem beide verwendet wurden, ist die Geschwindigkeit von XGBoost ziemlich beeindruckend und seine Leistung ist der von GradientBoosting von sklearn überlegen.


1 Antwort 1

Nein, SelectKBest und andere *Select*-Transformatoren von sklearn.feature_selection ändern die Reihenfolge der Features nicht, sondern löschen nur nicht ausgewählte. Wie auch immer, im Allgemeinen verwenden Modelle für maschinelles Lernen keine relative Reihenfolge eines Merkmals.

Wenn Sie Features überprüfen und neu anordnen müssen, können Sie die Attribute scores_ und/oder pvalues_ eines angepassten Transformer-Objekts (z. B. SelectKBest ) verwenden.

Unter der Haube verwenden diese Klassen eine boolesche Maske, um zu identifizieren, welche Features beibehalten werden sollen. Die boolesche Maske wird unter Verwendung des ersten (oder einzigen) Satzes von Partituren erstellt. Das wären in Ihrem Fall t-Werte. p-Werte werden von SelectKBest laut Quellcode vorerst nicht verwendet, um Features auszuwählen.


Verfolgen Sie Auto-sklearn-Experimente auf Neptune

Ich habe einige Notizbücher erstellt, die Sie einfach herunterladen und die Experimente selbst durchführen können. Aber um alle Schritte noch einmal gemeinsam durchzuführen, müssen Sie:

  • Installieren Sie Autosklearn auf Ihrem Computer oder Google Colab.
  • Wählen Sie eine Stichprobe von 10.000 aus Santander Customer Transaction Prediction aus, um mit der binären Klassifizierung zu experimentieren.
  • Verwenden Sie das Boston-Dataset, um ein Experiment basierend auf einem Regressionsproblem durchzuführen.
  • Machen Sie die Experimente.
  • Verfolgen Sie die Ergebnisse in Neptun.

Zuerst müssen Sie Auto-sklearn auf Ihrem Computer installieren. Verwenden Sie dazu einfach pip3:

Wenn Sie einen Fehler erhalten, müssen Sie dafür möglicherweise Abhängigkeiten installieren. Überprüfen Sie daher die offizielle Installationsseite. Sie können auch die Notizbücher verwenden, die ich in Neptun für Sie vorbereitet habe. Führen Sie dann den folgenden Befehl aus, um sicherzustellen, dass die Installation korrekt durchgeführt wurde:

Lassen Sie uns einige Klassifikations- und Regressionsprobleme angehen.

Automatisches Einlesen für die Klassifizierung

Für das Klassifizierungsproblem wählte ich einen beliebten Kaggle-Wettbewerb – Santander Customer Transaction Prediction. Bitte laden Sie den Datensatz herunter und wählen Sie nach dem Zufallsprinzip 10000 Datensätze aus. Folgen Sie dann den Experimenten im ersten Notizbuch:

Wir müssen auch einige Konfigurationen definieren, um mehr Einblick in Autosklearn zu erhalten:

Konfigurationen Bereichswert Beschreibung
time_left_for_this_task [60- 5000] Ich habe die Experimente mit 60 Sekunden begonnen und dann für jedes Experiment auf 5000 erhöht.
metrisch roc_auc Da die Fallstudie sehr unausgewogen ist, muss ich die Metrik in roc_auc ändern
resampling_strategie Lebenslauf In auto-sklearn V1, wenn ich die resampling_strategy nicht definiert habe, könnte es kein gutes Ergebnis erzielen. Aber in Auto-Sklearn V2 hat es dies automatisch getan.
resampling_strategy_arguments

Um die obige Konfiguration zu verwenden, könnten Sie das automl-Objekt wie folgt definieren:

Da ich viele verschiedene Konfigurationen verwendet habe, verfolge ich sie einfach auf dem Neptun. Sie können einen von ihnen im Bild sehen und alle in Neptun überprüfen.

Wenn Sie das Auto-Sklearn-Modell anpassen, können Sie mit PipelineProfiler (Pip Install Pipelineprofiler) die Pipelines mit der besten Leistung überprüfen. Dazu müssen Sie den folgenden Code ausführen:

Ihre Ausgabe sollte so aussehen:

Andererseits habe ich auch einige Experimente auf Basis von Autosklearn V2 durchgeführt. Das Ergebnis war faszinierend. Sie können das Ergebnis unten sehen:

Um Auto-sklearn V2 zu verwenden, können Sie folgenden Code verwenden:

Auto-sklearn für Regression

Der zweite Problemtyp, den Autosklearn lösen kann, ist die Regression. Ich habe einige Experimente basierend auf dem offiziellen Beispiel in der Autosklearn-Dokumentation durchgeführt.

Ich habe gerade das Zeitbudget geändert, um die Leistung basierend auf der Zeitbegrenzung zu verfolgen. Das Bild unten zeigt die Ergebnisse.


MySQL-Connector/Python ImportError: Kein Modul namens 'mysql'

Ich bin sehr neu in Ubuntu/Linux und Python, daher ist es durchaus möglich, dass ich hier etwas Offensichtliches übersehe. Ich verwende Ubuntu 16.04 LTS, Serverversion.

Ich habe gerade den offiziellen MySQL-Connector/Python (2.1.7, Python3-Version) mit dpkg -i [Paketname].deb installiert (offensichtlich habe ich [Paketname] durch den tatsächlichen Namen ersetzt). Es wird als kompatibel mit Python 3.5 aufgeführt, der Version, die ich habe. Wenn ich versuche, die Installation über den Python-Interpreter mit import mysql.connector zu überprüfen, erhalte ich nur die folgende Fehlermeldung:

Bei einer ähnlichen Frage habe ich gesehen, dass der Connector möglicherweise nicht ordnungsgemäß installiert wurde, wenn Python nicht im Pfad enthalten ist. Ich habe während der Installation anscheinend keine Probleme bekommen, die Datei python3 befindet sich in /usr/bin, was definitiv im Pfad enthalten ist, aber es scheint ein Link zur Datei python3.5 am selben Ort zu sein. Ausführen des Befehls, der python3 die Ausgabe usr/bin/python3 gibt, aber ausführen, welcher Python keine Ausgabe liefert.

Das Paket enthielt anscheinend auch eine C-Bibliothek, die in usr/lib/python3/dist-packages installiert zu sein scheint. Nichts anderes in diesem Verzeichnis wird als MySQL bezeichnet.

Worauf sollte ich achten, um zu wissen, ob es sich um ein Problem mit der Connector-Installation oder mit Python selbst handelt? Und wie behebe ich das?


6. Ein maschinelles Lernproblem lösen

Wir werden das bisher Gelernte am Black Friday-Datensatz umsetzen und sehen, wie es funktioniert. Die Untersuchung und Behandlung von Daten würde den Rahmen dieses Artikels sprengen, da ich nur veranschaulichen werde, wie Dask für ein ML-Problem verwendet wird. Falls Sie an diesen Schritten interessiert sind, können Sie die unten genannten Artikel lesen:

1. Ein einfaches logistisches Regressionsmodell verwenden und Vorhersagen treffen

Dies gibt Ihnen die Vorhersagen für das gegebene Testset.

2. Verwenden von Rastersuche und Random-Forest-Algorithmus, um den besten Parametersatz zu finden.

Beim Drucken grid_search.best_params_ Sie erhalten die beste Kombination von Parametern für den gegebenen Modus. Ich habe hier nur einige Parameter variiert, aber sobald Sie mit der Verwendung von Dask-Search vertraut sind, würde ich vorschlagen, mit mehr Parametern zu experimentieren, während Sie für jeden Parameter mehrere unterschiedliche Werte verwenden.


Wie importiere ich Python-Sklearn richtig in das QGIS PyQt-Plugin? - Geografisches Informationssystem

KI ist nicht so objektiv, wie wir vielleicht denken – was beeinflusst den Bias in der KI? Immer mehr KI-Anwendungen beeinflussen unseren Alltag ohne unser Bewusstsein, von einer intelligenten Smartphone-Kamera bis hin zu Algorithmen, die entscheiden, ob ein Unternehmen uns anstellt. In diesem Vortrag werden alle wichtigen Punkte behandelt, die beim Einsatz und der Entwicklung von KI-Lösungen zu beachten sind. Künstliche Intelligenz (KI) hält immer mehr Einzug in unser tägliches Leben, oft ohne dass wir sie überhaupt bemerken oder wahrnehmen. Es kann sich in intelligenten Smartphone-Kameras verstecken, es kann uns beim Einkaufen beeinflussen oder sogar entscheiden, ob wir von einem Unternehmen angestellt werden oder nicht. Damit eine KI als Einheit funktionieren kann, muss sie auf Daten trainiert werden, bevor sie tatsächlich intelligent agieren kann. Es mag sich seltsam und unerwartet verhalten, aber man muss bedenken: Vielleicht ist die Situation ganz neu und es hat einfach noch nicht das richtige Verhalten gelernt. Der Mensch muss im Laufe seines Lebens ständig lernen und sich anpassen, eine KI wird jedoch nur an einem sehr begrenzten Datensatz trainiert und kann so eine völlig andere und voreingenommene Sichtweise entwickeln. Welche Gründe gibt es für einen solchen Bias, was beeinflusst ihn und wie können wir versuchen, diesen Bias zu reduzieren? Dieser Vortrag beleuchtet die Voreingenommenheit in der KI und wie man sie bei der Entwicklung von KI-Lösungen überwindet.

Katrin Strasser ist KI-Softwareentwicklerin mit Schwerpunkt Natural Language Processing bei Catalysts. Dazu gehören die Planung und Entwicklung von Software für KI-Projekte sowie das Business Development. Während ihres Bachelorstudiums in Game Development & Augmented Reality und ihres Masterstudiums in Bioinformatik konnte sie Einblicke in eine Vielzahl von IT-bezogenen Themen gewinnen.

Mit dem micro:bit Schüler inspirieren

Eine Gruppe von Kindern über einen längeren Zeitraum zu fesseln, ist bekanntermaßen schwierig. Ich erkunde mit Ihnen, wie das micro:bit genutzt werden kann, um ein junges Publikum mit interaktiven Demos und Programmieraktivitäten zu begeistern. Kinder lieben es, physisch mit Hardware zu interagieren. Das ist das Tolle am micro:bit. Es verfügt nicht nur über eingebaute LEDs und Tasten, sondern kann auch größere, aufregendere Elektronik wie Roboterarme steuern. Dies ermöglicht eine Einrichtung, die Schülern aller Leistungsstufen eine Herausforderung darstellt. Schüler, die Programmieranfänger sind, können ein vollständigeres Programm erhalten oder ein Arbeitsblatt durchgehen, das sie Schritt für Schritt durch den Prozess der Steuerung des Geräts (in diesem Fall eines Roboterarms) führt. Schüler mit höheren Programmierkenntnissen können eine einfachere Quelldatei / Boilerplate-Quelldatei erhalten und können Code schreiben, um den Arm mit weniger Anleitung zu steuern.

Ich bin 17 Jahre alt und studiere Informatik, Mathematik, weitere Mathematik und Physik in der 12. Klasse (Englische Mittelschule / Oberstufe). Ich liebe es, in Python zu programmieren und denke, dass micro:bit ein großartiges Lernwerkzeug ist, das weiter verbreitet werden sollte.

Analyse von 200 Jahren politischer Debatte

Merkel ist vielleicht nicht mit den britischen Parlamentsregeln des 17. Jahrhunderts vertraut, aber Sie werden es nach diesem Workshop sein. Sie lernen, 200 Jahre britische politische Debatten mit Web Scraping, Data Science und Natural Language Processing zu analysieren. Merkel ist vielleicht nicht mit den britischen Parlamentsregeln des 17. Jahrhunderts vertraut, aber Sie werden es nach diesem Workshop sein. Dr. Maryam Ahmed (BBC News) wird die einzigartigen Herausforderungen bei der Analyse des Hansard-Archivs, einer Online-Aufzeichnung jeder Parlamentsrede von 1803 bis heute, teilen HTML in strukturierte Daten mit Pandas und BeautifulSoup. Maryam wird erklären, wie man Themen in politischen Reden mit NLTK- und Scikit-Learn-Methoden findet, einschließlich TF-IDF und latenter Dirichlet-Zuordnung. Spoiler: Ihr Vortrag wird mindestens einen Clip enthalten, in dem John Bercow „Bestellung“ ruft.

Dr. Maryam Ahmed ist Datenwissenschaftlerin bei BBC News, wo sie gerne maschinelles Lernen einsetzt, um Nachrichten in unordentlichen politischen Datensätzen zu finden und algorithmische Verzerrungen aufzudecken. Dr. Maryam Ahmed arbeitet bei BBC News, wo sie gerne Datenwissenschaft und maschinelles Lernen einsetzt, um Nachrichten in unübersichtlichen politischen Datensätzen zu finden und algorithmische Verzerrungen zu untersuchen. Sie setzt sich stark für Kontrolle und Transparenz in der Öffentlichkeit ein und hat zu diesem Thema beim Mozilla Festival, der Open News Unconference der Royal Society of Arts und der Impacts of Civic Technology Conference bei der OECD gesprochen. Maryam glaubt, dass Bildung der größte Ausgleich ist und veranstaltet gerne Programmierveranstaltungen für Kinder aus Minderheiten.

Speck importieren

Es wird oft gesagt, dass Python mit Batterien geliefert wird, was bedeutet, dass die Standardbibliothek im Grunde alles tun kann, außer vielleicht Speck für Sie zu zaubern (obwohl ich gehört habe, dass das in 3.8 kommt). Ich glaube jedoch nicht, dass wir die schiere Weite davon wirklich schätzen, also bin ich Modul für Modul durchgegangen, um nach versteckten Edelsteinen zu suchen (sorry, Eier). Dies ist eine keineswegs erschöpfende Zusammenstellung des Nützlichen, des Unterschätzten und des Lustigen. Wahrscheinlich verwenden Sie die Python-Standardbibliothek täglich – oder wahrscheinlicher eine mehr oder weniger stabile Teilmenge davon. Normalerweise fügen wir der Untermenge Dinge hinzu, indem wir nach einer Lösung für ein Problem suchen und am Ende auf ein Standardbibliotheksmodul verweisen. Das bedeutet jedoch, dass die Wahrscheinlichkeit, dass Sie herausfinden, dass es ein ganzes Modul gibt, dessen einziger Zweck darin besteht, Ihnen zu sagen, ob ein String ein Python-Schlüsselwort ist, sehr gering ist. Dieser Vortrag richtet sich nicht an eine bestimmte Stufe der Python-Erfahrung. Wir gehen auf Module ein, die in gewisser Weise interessant sind: meistens wegen ihrer Nützlichkeit, aber in einigen Fällen auch einfach, weil sie irgendwie wunderbar seltsam sind.

Derzeit Backend-Entwickler bei iMobility, wo ich mit aiohttp nützliche Dinge bauen kann. Wenn ich nicht gerade programmiere, spiele ich normalerweise Indie-Spiele unterschiedlicher Unbekannter.

Einführung in die Informationssicherheit mit Python

In diesem Vortrag arbeiten wir daran, die Grundlagen der Informationssicherheit mit Python zu entmystifizieren: Wie werden Informationen im Internet übertragen (Netzwerke, Netzwerkschichten, Protokolle), wie werden diese Informationen gesichert (Verschlüsselung) und wie können wir diese Informationen analysieren ( Netzwerk- und Intrusion Detection). Anschließend werden wir Scikit-Lernalgorithmen anwenden, um Internet-Traffic-Dateien auf mögliches Eindringen zu analysieren. Hacken, im klassischen Sprachgebrauch, ist wohl das mysteriöseste und doch eines der am stärksten von Männern dominierten Gebiete der gesamten IT. Viele von uns stellen sich einen nerdigen Typen in einem schwarzen Kapuzenpulli in einem heruntergekommenen Keller vor, der glücklich eine Bank, den Staat oder ein großes Geld- oder Machtunternehmen hackt. Es hat jedoch etwas sehr Subversives an diesen Leuten, die in ihrem Keller sitzen und gegen alle Kontrollmächte arbeiten, etwas. Die Grundlagen wären: Das könnte eine gute feministische Erzählung ergeben. Einführung in die Informationssicherheit mit PythonHacking, im klassischen Sprachgebrauch, ist wohl das mysteriöseste und doch eines der am stärksten von Männern dominierten Gebiete der gesamten IT. Viele von uns stellen sich einen nerdigen Typen in einem schwarzen Kapuzenpulli in einem heruntergekommenen Keller vor, der glücklich eine Bank, den Staat oder ein großes Geld- oder Machtunternehmen hackt. Es hat jedoch etwas sehr Subversives an diesen Leuten, die in ihrem Keller sitzen und gegen alle kontrollierenden Mächte arbeiten, etwas, das eine schöne feministische Erzählung ergeben könnte. In diesem Vortrag werden wir daran arbeiten, die Grundlagen der Informationssicherheit mit Python zu entmystifizieren und dabei dieses feministische Hacker-Narrativ mit historischen Beispielen diskutieren. Die Grundlagen wären: Wie werden Informationen im Internet übertragen (Netzwerke, Netzwerkschichten, Protokolle), wie werden diese Informationen gesichert (Verschlüsselung) und wie können wir diese Informationen analysieren (Netzwerk- und Intrusion Detection). Nachdem wir die Grundlagen mit einigen Python-Beispielen geklärt haben, werden wir tiefer in das Fachgebiet der Referenten eintauchen - Data Science in Intrusion Detection. Im Kern läuft die Intrusion Detection oft auf die Erkennung von Anomalien hinaus und wir werden lernen, wie wir Scikit-Lernalgorithmen für Protokolldateien trainieren können, um zu sehen, ob ein Netzwerk gehackt wurde.

Denkt, dass Wissenschaft Kunst ist und Info-Sek kann cool sein. Macht alle möglichen wissenschaftlichen, künstlerischen und hackigen Dinge. Organisiert Meetups und politische Dinge. Zu finden in Hack*Spaces, Squats und Queer Clubs. Meist mit Clube Mate oder Kaffee (schwarz, ohne Zucker) in den Händen.

Das R-gegen-Python-Dogma übertreffen

In diesem Vortrag werden Feder, Ursa Labs und die neueste RStudio-Version verwendet, um zu demonstrieren, wie R und Python zusammenarbeiten und versuchen können, sich vom Dogma zu lösen. Es gibt einen anhaltenden Streit zwischen Benutzern von R und Benutzern von Python darüber, welche Programmiersprache die beste für die Datenwissenschaft ist. Als Nutzer von beiden halte ich es für Zeitverschwendung, die Vor- und Nachteile der beiden zu erarbeiten, insbesondere weil die Diskussion normalerweise von Dogmen geleitet wird. Es passiert viel, um die beiden Tools näher zusammenzubringen, indem Brücken über die Inkompatibilitätslücken gebaut werden. Der Datenaustausch zwischen R und Python ist dank Feder ein gelöstes Problem. Aufbauend auf diesem Gedanken arbeiten Wes McKinney und Hadley Wickham zusammen, um Data-Science-Tools für R und Python zu entwickeln. Und mit der neuesten RStudio-Version (1.2) könnte Python eine richtige IDE für Data Science gefunden haben. In diesem Vortrag werden Feder, Ursa Labs und die neueste RStudio-Version verwendet, um zu demonstrieren, wie R und Python zusammenarbeiten und versuchen können, sich vom Dogma zu lösen.

Studium der Wirtschaftsinformatik in Innsbruck und Data Science in London. Arbeitete mit Unternehmen wie OMV, easyJet, Sainsbury’s und The Unbelievable Machine Company zusammen. Co-Autor des Open-Source-R-Pakets tableHTML, einem Tool zum Erstellen und Gestalten von HTML-Tabellen aus R

Ein Lernender und ein Data Scientist mit logischem und mathematischem Hintergrund begann eine Reise in die Welt von Big Data und Data Science, während der Dana in der Lage ist, an der Lösung einer Vielzahl von Geschäftsproblemen zu arbeiten und viele der wichtigsten Anforderungen des Data Scientists zu nutzen. hat Werkzeuge. Kürzlich hatte Dana die Chance, an der Entwicklung des Open-Source-R-Pakets tableHTML Version 2.0.0 mitzuwirken.

Vom Jupyter Notebook zum weltweiten Einsatz

In diesem Beitrag erzählen wir die Geschichte eines Algorithmus zur Extraktion von Dokumentendaten. Wir konzentrieren uns auf Herausforderungen, die beim Scale-up zu bewältigen waren und wie "Internationalisierung" bereits von Design in die Algorithmuskonzeption eingebaut wurde. Insbesondere diskutieren wir: 1) Organisation des Data Science- und Back-End-Entwicklungsteams und wie sich der Algorithmus und wie sich die Rolle(n) der Teammitglieder während des Lebenszyklus des Algorithmus verändert haben 2) Herausforderungen, denen wir während der Go- Live und gewonnene Erkenntnisse 3) Patente und IP-Schutz

Führungskraft im Bereich Data Science mit Erfahrung in der Markteinführung von maschinenlernbasierten Softwareprodukten. Beruflicher Hintergrund in Software-Startups und akademischer Hintergrund in Datenanalyse.

Der begeisterte Leitfaden des Lehrlings für Pandas

Die Pandas erkannten bald, dass sie die Strapazen und Strapazen dieser Welt auf keinen Fall überleben werden, wenn sie sich nicht endlich und ohne zu zögern zusammenreißen, aufhören, die faulen flauschigen Wesen zu sein, sie sind es schon lange bekannt für und beginnen ihr Leben so schnell wie möglich neu zu organisieren. Sie brauchten einen neuen Blick auf die Welt und ihre inneren Mechanismen, sie mussten Licht ins Dunkel bringen, was sie über das Überleben wussten, kurz gesagt, sie mussten von vorne beginnen. So entstand inmitten des Waldes eine leistungsstarke Bibliothek, deren mächtiger Werkzeugkasten ihnen ein langes Leben in Glück und Freude ermöglichen würde. Diese lang erträumte Bibliothek sollte die Informationen, die sie seit Jahrhunderten über die Welt gesammelt haben, importieren und ihnen helfen, sie mit anderen Augen zu sehen. Sie wollten ihre Weltanschauungen und Überzeugungen in sinnvolle Typen und Kategorien strukturieren, ihre aufschiebenden Verhaltensmuster aus ihren Genen entfernen, sie ganz fallen lassen. Nach mühsamen Bemühungen, mit fehlenden Daten über ihre Umgebung umzugehen, den sinnvollen Rest zu gruppieren und zu zählen, den unsinnigen Aberglauben herauszufiltern, konnten sie endlich und zweifelsfrei mit Präzision zeigen, wo die Bambussprossen am frischesten, saftigsten, faserreichsten, absolut lecker und der vom Mondkalender diktierte Moment des Jahres, in dem sie sich am flauschigsten, gemütlichsten, willigsten und unwiderstehlichsten ineinander verlieben und kuscheln aus denen, die nicht bereit waren, all diese komplizierten Symbole zu lernen, nur um zu überleben und die Himmelsgöttin, den Mond, bewundern wollten. Aber warte, sie hatten keinen Namen dafür ihre grandiose Bibliothek, also wollten sie nur ein Statement setzen, das fleißigste Wesen von allen zu sein und nannten es einfach und unverkennbar Pandas!

Mypy: Schreibst du überhaupt, Kumpel?

Seit der Einführung von Annotationen, dem Typing-Modul und myp ist für Python optional die statische Typisierung verfügbar. Wir werden die grundlegenden Tippfunktionen entdecken, mit den fortgeschritteneren Tippfunktionen fortfahren, lernen, wie man mypy konfiguriert und ein kleines mypy-Plugin schreibt.

Einführung in das Reinforcement Learning

Reinforcement Learning ist ein leistungsstarker Ansatz für maschinelles Lernen, der auf Erfahrungen ohne Vorkenntnisse oder Anleitung durch Experten basiert. Es ermöglicht einer KI, eigenständig Modelle ihrer Umgebung zu erstellen und geeignete Handlungsstrategien für zielorientierte Aufgaben zu entwickeln. Die selbstlernenden Algorithmen können auf zeitabhängige Probleme in einer veränderlichen und unbekannten Umgebung angewendet werden. Zu den Anwendungen gehören Game Ai (Alpha Go / Alpha Go Zero), Echtzeitentscheidungen und Roboternavigation. Ziel der Vorlesung ist es, einen Einblick in die theoretischen und konzeptionellen Grundlagen des Reinforcement Learning, sowie ein grundlegendes Verständnis der bekanntesten RL-Algorithmen (SARSA, Q-Learning. ) zu geben. Es wird der formale Rahmen der „Markov Decision Processes“ diskutiert, der eine sinnvolle Darstellung zeitabhängiger und entscheidungsbasierter Aufgaben ermöglicht: Die Lernaufgabe wird als Interaktion zwischen der „Umgebung“ und einem handelnden „Agenten“ modelliert drin. Das Ziel des Agenten ist es, Strategien zu finden, um eine zuvor definierte Belohnung durch die Umgebung zu maximieren. Dabei kann zielorientiertes Verhalten als Optimierungsproblem übersetzt werden, das durch die Erfahrungen des Agenten näherungsweise gelöst wird. Die Methoden werden an einfachen Anwendungen aus deterministischen und stochastischen Umgebungen mit Codebeispielen demonstriert.

Verteiltes Computing mit Ray

In diesem Vortrag werden wir Ray erkunden - ein hochleistungsfähiges und latenzarmes verteiltes Ausführungsframework, mit dem Sie Ihren Python-Code auf mehreren Kernen ausführen und denselben Code von Ihrem Laptop auf einen großen Cluster skalieren können. Ray verwendet mehrere interessante Ideen wie Schauspieler, einen schnellen Zero-Copy-Shared-Memory-Objektspeicher oder Bottom-Up-Scheduling. Darüber hinaus erstellt Ray zusätzlich zu einer prägnanten API Tools für Ihre Pandas-Pipelines schneller, Tools, die Ihnen die besten Hyperparameter für Ihre Machine-Learning-Modelle finden oder modernste Reinforcement-Learning-Algorithmen trainieren und vieles mehr. Kommen Sie zum Gespräch und erfahren Sie mehr.

Jan Margeta ist der Gründer von KardioMe, ein Python-Liebhaber, kürzlich Referent bei der PyCon Slovakia und Wildwasser-Kajakfahrer. Jan promovierte im Bereich maschinelles Lernen für die automatisierte medizinische Bildanalyse bei Inria Sophia Antipolis und MINES ParisTech als Microsoft Research PhD Stipendiat. Jan hat einen Master of Science in Computer Vision und Robotik VIBOT. Jetzt setzt er seine gesamte Forschungserfahrung in die Praxis ein, um die Behandlung von Herzerkrankungen zu verbessern. Deshalb gründete er eine Firma namens KardioMe. Jan setzt sich leidenschaftlich dafür ein, Technologie einzusetzen, um die Grenzen des menschlichen Wissens zu erweitern, Computern das Sehen beizubringen, schwierige Herausforderungen mit Daten zu lösen und unseren Planeten zu einem nachhaltigen Ort zu machen.

Knabber

nibbler untersucht das Konzept der Verwendung vorhandener Python-Syntaxfunktionen wie Typannotationen und Dekoratoren, um die Codeausführung zu beschleunigen, indem zusätzliche Bytecode-Optimierungsdurchgänge ausgeführt werden, die den durch diese Mittel bereitgestellten Laufzeitkontext nutzen. Überblick über CPython-Interna in Bezug auf Bytecode und Bytecode-Ausführung.

Ein Tag hat nur 24±1 Stunden

Am letzten Sonntag im Oktober können Sie „eine weitere Stunde Schlaf“ bekommen, aber möglicherweise viel mehr Zeit damit verbringen, Code zu debuggen, der sich mit den Zeitzonen, Sommerzeitverschiebungen und Datumsangaben im Allgemeinen befasst. In diesem Vortrag geht es zu 20 % um Programmierung und zu 80 % um die Weltgeschichte und kurzsichtige politische Entscheidungen, die einen langfristigen Einfluss auf die Technologie haben. Nach einem kurzen Überblick über das Standard-Datetime-Modul und seine Verwendung in verschiedenen geografischen Kontexten werfen wir einen Blick auf die pytz-Bibliothek und entdecken alle 591 Zeitzonen, die es beinhaltet. Wir werden sehen, warum pytz nicht Teil der Standardbibliothek ist und wann und wie und warum dieses Paket häufig aktualisiert wird. Am Ende werfen wir einen Blick auf einige Fallstricke, mit denen Sie Zeitzonen möglicherweise ganz vermeiden können.

Senior Softwareentwickler bei solute GmbH. Verwenden Sie Python, um die besten Online-Preise zu erzielen. Geboren in der Tschechoslowakei, Studium in Frankreich, wohnhaft in Deutschland. hjkl Jongleur und Sprachenenthusiast.

Die Krux mit der Kryptografie - Alles Eine Frage der Implementierung?

Einige kryptografische Verfahren, wie beispielsweise dem AES, gelten als verifiziert und sogar als „Quantencomputer“-sicher. Trotzdem ist man nicht vor Angriffen gefeit: Bei Gadget Attacks, Chosen- oder Known-Plaintext-Attacks Werden Schwächen in der Implementierung von Verschlüsselung ausgenutzt. Anhand von Angriffsszenarien auf Mail-Verschlüsselung (EFAIL) wird veranschaulicht, welche Schwachstellen dazu führen can, den bewährten AES einfach „auszuhebeln“, und welche Lessions Learned beispielsweise bei jüngeren, verwundbaren TLS-Protokollversionen hilfreich wären, zentrale Problem- und Probleme bei der Frage der Implementierung zu identifizieren.

Mahas Ambition: für Informations- & IT-Sicherheit für eine zunehmend digitalisierte Welt zu sensibilisieren Maha ist Informationssicherheitsexperte bei TODAY Experts im Auftrag von A1 Telekom, dem führenden Fest- und Mobilfunknetzbetreiber in Österreich. Ihr Bachelorstudium im Bereich Integriertes Sicherheits- und Sicherheitsmanagement absolvierte sie an der Fachhochschule Wien. Derzeit konzentriert sie sich auf die Verwaltung von Sicherheitsrichtlinien, Sensibilisierung und Bildung. Ihr Ziel ist es, für Informationssicherheit und Datenschutz für eine zunehmend digitalisierte Welt zu sensibilisieren. Sie leitet Schulungen zum Thema IT-Sicherheit und verfolgt mit großem Interesse die zukünftige Richtung der Telekommunikation im Zusammenhang mit Sicherheit.

Lint Ihren Code verantwortungsbewusst!

Code lesbar und konsistent zu halten, kann eine Herausforderung sein. Glücklicherweise hat das Python-Ökosystem viele Tools entwickelt, die dabei helfen! Lassen Sie uns sehen, was wir verwenden können, um die besten Ergebnisse zu erzielen. Sie erfahren, wie Linters Ihr Leben einfacher machen können … und was Sie beachten sollten, um es nicht zu erschweren. Heutzutage gibt es so viele Python-Linters, dass es schwierig sein kann, die beste Lösung für Ihr Projekt auszuwählen. Ich zeige einige der am häufigsten verwendeten und vergleiche sie kurz. Ich werde auch meine Erfahrungen mit ihnen teilen - sowohl gute als auch schlechte. Wir schließen mit einigen Fragen zur Verwendung von Linters in verschiedenen Projekten. Ich werde keine strengen Antworten geben, aber hoffentlich fällt es Ihnen nach diesem Gespräch leichter, sie selbst zu finden.

Softwareentwickler bei Genomics England, zuvor bei Clearcode. Ich arbeite hauptsächlich mit Python und bin immer bestrebt, mehr zu lernen. Jeder Tag versucht, das Leben der Menschen ein bisschen besser zu machen. Liebt Astrophysik, Reisen, Bücher und Kaffee, manchmal in anderer Reihenfolge.

Hallo *AI, sprichst du Python?

Python gilt wohl als die führende Programmiersprache, die in der KI verwendet wird, insbesondere im Bereich des maschinellen Lernens. During this short presentation you will have a chance to go with me thought the overview on the arguably the most popular Python framework and libraries used in ML and RL. The presentation will be the result of the short, qualitative survey as well as summary of selected, external sources. What's most interesting, and hopefully useful is the overview of the current stage of the art in the most popular ML & RL directions. During the talk you will be able to observe this subject from a couple of angles: - Plug-and-play / AI-as-a-Service solutions (Business) - Research (Academy) - The libraries that you basically like to use (Fun ))

I'm thinking about Python as a door opener to programming, data science & ML. My professional story is strongly connected with education, programming, data science, and diversity. All experience shared between the US and Europe.In previous years I have been creating B2B, data science education programs with deepsense.ai, support diversity as the Women Who Code Seattle Evangelist, Advisor at She’s Coding, SheWorx Steering Committee members. As the COO at Geek Girls Carrots (GGC) I have been building a global community of women in tech. In my couple years episode of being a PhD student, I have been doing the research on open source programming project at Chair of Sociology of Culture, Institute of Sociology (University of Warsaw).Currently, I'm working with 10Clouds on Business Development position. I also support 10Clouds ML team in terms of business strategy. I'm an amateur photographer, Japanese culture fan, runner living between Europe and the US.

Asyncio

The asyncio library and the concept of coroutines provide a useful abstraction for python programmers. However the library can be hard to understand. It is not immediately obvious how to use it and under which circumstances you would pick it over threads or processes and why. This workshop tries to fill the gap. The workshop starts with an introduction that explains the underlying concept of coroutines and a bit of behind-the-scenes insight of how they are implemented in python. There will be a comparison with threads and processes and guidance on how to pick the right tool for the job.After the introduction the actual workshop begins. Participants are handed an python/jupyter notebook containing exercises regarding coroutines and the asyncio library. The exercises can be completed by participants at their own pace.Participants should be comfortable writing Python code, but don't have to be familiar with concurrency or parallelism in order to participate in the workshop.Prerequisites: You will need a machine with Python 3.7 installed.

I have been using Python for more then a decade now. I've seen the language evolve quite a bit, witnessed the move to Python 3 and had the opportunity to grow as a programmer during that time.While most of the paid-for work I've done so far was done in high level languages I prefer to use lower level languages like C in my spare time to work on my obscure synthesizer projects and contribute to open source projects like OpenBSD. In my spare time I like to work on audio synthesizer software running on OpenBSD. So far I have mostly finished my organ synthesizer modeled after the famous electro-mechanic Hammon B3 organ, which took a lot of delving into obscure corners of the internet, dedicated to keeping the dream alive and, of course, the official Hammond service manual.I have contributed to Bitrig and I'm a contributor to OpenBSD.Sometime I like to do ASCII art (quite amateurishly).

Currently a backend developer at iMobility, where I get to build useful things with aiohttp. When I'm not coding I can usually be found playing indie games of varying obscurity.

Co-Mentoring Program Women on Data

Diversity matters! Not just because it makes the world a fairer place, but also because it improves welfare and safety for society as a whole. It is becoming increasingly clear that diversity is also good for business, as it improves creativity and also increases the company’s bottom line.The co-mentoring program “Women in data” is a platform to connect and learn together. This is our first official meetup and you are very welcome to attend!This meetup is open for women* and non-binary folks who are interested in or working with data. Data professionals are designing and implementing some of the most innovative products for the whole society. Nonetheless, data teams tend to be homogenous and mainly (if not 100%) composed of male members.This lack of diversity leads to a lack of different perspectives on product design, reducing profitability opportunities for businesses. Even worse, it can put human lives at risk, as is explained in the article: "The deadly truth about a world built for men – from stab vests to car crashes".So, the question is: How do we improve diversity in data teams? One of the most effective ways is through building a strong network and empowering others. In order to achieve this, it is important to get to meet female data professionals, to get to know each other’s work and to establish mutually beneficial learning relationships.Often we are asked to recommend fellow data professionals in different contexts but since the community is dispersed, even we as women face difficulties in coming up with a female colleague’s name and only male colleagues’ names come to our mind. If the network grows strong, this will hopefully not be the case anymore as we will know who to recommend because we know who we are and we know each other’s work.The co-mentoring program “Women in data” is a platform to connect and learn together. It is planned to have a meeting once per month, where we would discuss two projects per session helping each other with feedback and ideas.

Post doctoral researcher at WU Vienna, working in the field of data science, quantitative risk management and applied statistics. Open source software supporter and developer.

Semantic Containers for Data Mobility

Data becomes more useful when it is shared. In our talk we present our findings and future goals about transferring data in a privacy respecting and traceable way. We will lay out the technical foundation and demonstrate use-cases in a live-coding session by accessing Semantic Containers with Jupyter notebooks. Semantic Containers is a concept of bundling data, semantic description, and processing capabilities in a Docker container. This provides capabilities of validating access to data, automatically building provenance records, as well as ensuring data quality itself. Currently, this project is funded by FFG and we will present some of the already available use cases. This includes visualization of earthquake data provided by ZAMG (Zentralanstalt für Meteorologie und Geodynamik) and creating time-lapse videos of Sentinel 2 satellite data provided by the Copernicus programme of the EU. In this talk you will learn about the technical foundation of Semantic Containers and how to successfully integrate the concept in your daily routine as a Data Scientist with a focus on Python.

DI Dr. Christoph Fabianek, MBA studierte technische Mathematik an der TU Wien, absolvierte einen berufsbegleitenden MBA an der DU Krems und ist (ACC akkreditierter) systemischer Coach. Nach 3 Jahren Consulting bei AI Informatics und Siemens wechselte er in die Frequentis AG und ist dort seit über 10 Jahren in unterschiedlichen Bereichen als Projekt- und Produktmanager tätig. Daneben ist er in unterschiedlichen Startups aktiv und betreibt die Plattform OwnYourData.eu.

Refactoring in Python

This talk will describe experiences and lessons learned from tackling extremely demanding code. How to bring order to mismanaged code and elevate the code base to a standard that's acceptable in today's tech environment. The talk will tackle the problems in three parts: The Easy Wins Patterns and Antipatterns The Philosophy This talk will describe experiences and lessons learned from tackling extremely demanding code. How to bring order to mismanaged code and elevate the code base to a standard that's acceptable in today's tech environment. Python makes wonderful code accessible at our fingertips, but it also allows us to take a lot of liberty. When you start, code is beautiful and makes sense. With each step you walk on, you find more and more hacks showing up. Eventually, the brilliant codebase you've started with can not be seen under the mud. Not every code-base can be rewritten, not everything can be redone from scratch. Cool libraries often take a lot of liberty with code structure and make cross-integration difficult, if not impossible. Tests sound ideal, but in practice, they're just so hard to make right. Why is this, and how to change it? The talk will tackle the problems in three parts: The Easy Wins: What to do to instantly increase the code quality in your organisation. Wie? Why isn't it enough? Patterns and Antipatterns: How to identify code that "smells", how to replace it? How to integrate into old code, better? The Philosophy: What approach to set down for the future? Why to care? How to write replace-able code. How to prevent history from repeating. The talk will close with audience discussion and experiences, questions and proposals - building a collection of some on-premise tips and tricks.

Tin Marković is a software engineer, a full stack developer with strong software architecture bend. Specialized for designing systems, rather than components - he tries to spread knowledge of code as product, rather than ideal. Tin Marković is a software engineer working in Python, and a team lead in Kiwi.com After undergoing higher education in Bosnia and Herzegovina, and Croatia - Tin has interned in Slovakia and Croatia as a Computer Science and Engineering master level graduate. Professionally, he has worked with Python specialized ExtensionEngine (and in extension edX), then for Kiwi.com Becoming a team lead at Kiwi.com, Tin has managed to encounter challenges that come from interlocking dozens of systems, with complex logic that the travel industry presents. As a dedicated professional, Tin is more than eager to meet and converse with fellow attendees and speakers - looking to build long-lasting contacts and potential for fruitful cooperation.

How to fake properly

Aiming at complete code coverage by unit tests tends to be cumbersome, especially for cases where external API calls a part of the code base. For these reasons, Python comes with the unittest.mock library, appearing to be a powerful companion in replacing parts of the system under test. First and foremost, there will be a thorough discussion of the relevant use cases implemented in Python’s unittest.mock library. To move on, I will outline how this mocking functionality can be embedded in a pytest based test suite, amongst discussing the feasibility of replacing parts of the system under test. Eventually, I will discuss examples of production code unit tests that make use of the mock object library, thereby contributing to a solid understanding of the matter.

Seasoned database engineer and Linux enthusiast who believes that Python is the tool of trade when it comes to getting rid of boring tasks.

Lightning Talk: Python #LikeABosch

Short survey on what is happening with Python at Bosch. Ranges from micropython to full-scale containerized microservices.

Plenty of CYBER in my life . Security engineer by day, digital forensics as expert witness by night. Plenty of things in between. Find me on Twitter as @fr333k.

Lies they told you about OOP

OOP has been around forever. Yet, every day I see people writing spaghetti code with the occasional function included. Why do so many people discard OOP? How can you wrap your head around it and become a better coder?

Cloud Solution Architect, Educator and DevOps Engineer @ A1 Digital at day. Crazy research projects in DevOps and security at night.

Lightning Talk: An Electron Printer for Masks

Detection of precipitating clouds based on optical satellite sensors using Machine Learning

This study aims at developing rainy clouds delineation schemes based on the high spectral resolution of Meteosat Second Generation - Spinning Enhanced Visible and Infrared Imager (MSG-SEVIRI). The possibility of developing precipitating cloud detection schemes was investigated, using the enhanced thermal infrared spectral resolution of the MSG satellite data. Two different rain clouds detection methods were proposed that incorporate spectral cloud parameters. The first is an Artificial Neural Network (MLP) model for rain and no rain discrimination and the second model is a Random Forest (RF) algorithm that relies on the correlation of spectral cloud parameters and rain information recorded from rain gauge stations. Both algorithms were developed using the scikit-learn python library. The rainy clouds detection schemes were trained using as rain information spatially and temporary collocated rain gauge data for several rain cases. The two rain detection schemes were validated against independent rain gauge measurements. During the training phase RF model presented the best performance among all the rain cloud delineation models. When evaluating the techniques performance against the independent rain gauge dataset RF algorithm still provides the best performance among all precipitating clouds detection schemes. The objective of this study is to investigate the possibility of the random forests ensemble classification technique to improve rain area delineation based on the correlation of spectral and textural cloud properties extracted from Meteosat Second Generation - Spinning Enhanced Visible and Infrared Imager (MSG-SEVIRI) data with rainfall data recorded by the National Observatory of Athens (NOA) meteorological stations. Two different precipitating cloud detection schemes are examined that use spectral cloud parameters along derived from the thermal infrared MSG satellite data to discriminate rain from no rain clouds. The first is an Artificial Neural Network (MLP) algorithm for rain cloud detection and the second scheme is a Random Forest (RF) algorithm that is based on the correlation of spectral cloud measures and rain information recorded from rain stations. The two ML approaches are implemented in python using the Scikit-learn package. The rain and no rain clouds descrimination models were calibrated using as rain information spatially and temporary matched rain gauge data for several rain events. The rain cloud areas detection schemes were calibrated and evaluated using spatio-temporally matched 15min observation datasets of seven SEVIRI thermal infrared channels and rain gauge data. In order to create the two precipitating cloud detection models SEVIRI thermal infrared data were used and acquired a 15 min time intervals with a spatial resolution of 3x3 km2 at sub-satellite point reaching 4 x 5 km2 at the study area. Rain gauge data from 88 stations of the National Observatory of Athens were used as rainfall information to train the models. Models were validated against independent rainy days that were not used for training the rain area delineation algorithms.

Experienced researcher with more than ten years undergraduate and postgraduate research experience in the field of Satellite Meteorology, Satellite Remote Sensing and GIS. Knowledge in the development of satellite products. Research experience in satellite data analysis techniques, GIS and programming for meteorological and environmental applications.


Learning API¶

Training Library containing training routines.

xgboost. train ( Parameter , dtrain , num_boost_round = 10 , evals = () , obj = None , feval = None , maximize = None , early_stopping_rounds = None , evals_result = None , verbose_eval = True , xgb_model = None , callbacks = None ) ¶

Train a booster with given parameters.

Parameter (diktieren) – Booster params.

dtrain (DMatrix) – Data to be trained.

num_boost_round (int) – Number of boosting iterations.

evals (list of pairs (DMatrix, Schnur)) – List of validation sets for which metrics will evaluated during training. Validation metrics will help us track the performance of the model.

obj (Funktion) – Customized objective function.

feval (Funktion) – Customized evaluation function.

maximieren (bool) – Whether to maximize feval.

early_stopping_rounds (int) – Activates early stopping. Validation metric needs to improve at least once in every early_stopping_rounds round(s) to continue training. Requires at least one item in evals. The method returns the model from the last iteration (not the best one). Use custom callback or model slicing if the best model is desired. If there’s more than one item in evals, the last entry will be used for early stopping. If there’s more than one metric in the eval_metric parameter given in Parameter, the last metric will be used for early stopping. If early stopping occurs, the model will have three additional fields: bst.best_score , bst.best_iteration .

evals_result (diktieren) –

This dictionary stores the evaluation results of all the items in watchlist.

Example: with a watchlist containing [(dtest,'eval'), (dtrain,'train')] and a parameter containing ('eval_metric': 'logloss') , the evals_result kehrt zurück

verbose_eval (bool oder int) – Requires at least one item in evals. Ob verbose_eval is True then the evaluation metric on the validation set is printed at each boosting stage. Ob verbose_eval is an integer then the evaluation metric on the validation set is printed at every given verbose_eval boosting stage. The last boosting stage / the boosting stage found by using early_stopping_rounds is also printed. Example: with verbose_eval=4 and at least one item in evals, an evaluation metric is printed every 4 boosting stages, instead of every boosting stage.

xgb_model (file name of stored xgb model oder 'Booster' instance) – Xgb model to be loaded before training (allows training continuation).

callbacks (list of callback functions) –

List of callback functions that are applied at end of each iteration. It is possible to use predefined callbacks by using Callback API . Beispiel:

xgboost. cv ( Parameter , dtrain , num_boost_round = 10 , nfold = 3 , stratified = False , folds = None , metrics = () , obj = None , feval = None , maximize = None , early_stopping_rounds = None , fpreproc = None , as_pandas = True , verbose_eval = None , show_stdv = True , seed = 0 , callbacks = None , shuffle = True ) ¶

Cross-validation with given parameters.

Parameter (diktieren) – Booster params.

dtrain (DMatrix) – Data to be trained.

num_boost_round (int) – Number of boosting iterations.

nfold (int) – Number of folds in CV.

geschichtet (bool) – Perform stratified sampling.

folds (a KFold oder StratifiedKFold instance oder list of fold indices) – Sklearn KFolds or StratifiedKFolds object. Alternatively may explicitly pass sample indices for each fold. For n folds, folds should be a length n list of tuples. Each tuple is (in,out) where in is a list of indices to be used as the training samples for the n th fold and out is a list of indices to be used as the testing samples for the n th fold.

Metriken (Schnur oder list of strings) – Evaluation metrics to be watched in CV.

obj (Funktion) – Custom objective function.

feval (Funktion) – Custom evaluation function.

maximieren (bool) – Whether to maximize feval.

early_stopping_rounds (int) – Activates early stopping. Cross-Validation metric (average of validation metric computed over CV folds) needs to improve at least once in every early_stopping_rounds round(s) to continue training. The last entry in the evaluation history will represent the best iteration. If there’s more than one metric in the eval_metric parameter given in Parameter, the last metric will be used for early stopping.

fpreproc (Funktion) – Preprocessing function that takes (dtrain, dtest, param) and returns transformed versions of those.

as_pandas (bool, default True) – Return pd.DataFrame when pandas is installed. If False or pandas is not installed, return np.ndarray

verbose_eval (bool, int, oder Keiner, default None) – Whether to display the progress. If None, progress will be displayed when np.ndarray is returned. If True, progress will be displayed at boosting stage. If an integer is given, progress will be displayed at every given verbose_eval boosting stage.

show_stdv (bool, default True) – Whether to display the standard deviation in progress. Results are not affected, and always contains std.

seed (int) – Seed used to generate the folds (passed to numpy.random.seed).

callbacks (list of callback functions) –

List of callback functions that are applied at end of each iteration. It is possible to use predefined callbacks by using Callback API . Beispiel:

shuffle (bool) – Shuffle data before creating folds.

evaluation history


2 Antworten 2

You can use the QGIS Python console for this. The output results as a memory layer. I'm using QGIS 2.18.28. Probably in QGIS 3 the code does not work, due to software changes.

Just paste this code into the Python console. You have to edit the code according to your layer names. In my case I have a shapefile points and a shapefile lines. You have to know the projection of your shapefiles and they have to have the same projection. Otherwise we have to do some transformation. Choose the right projection when adding the memory layer.

This won't work at my Qgis.. Maybe I'm doing something wrong. Can you pm me, so I can share my shapefiles with you?

– Mathijs Alkema
vor 13 Stunden

Please clarify: QGIS version (2 or 3), any errors (Python console or other). Do you know how to use the Python console? See the docs docs.qgis.org/2.18/en/docs/user_manual/plugins/….

my shapefiles have an attribute called "id". For the resulting closest distance lines they will be adopted. See the penultimate line in the for loop: feat.setAttributes([int(points["id"]), int(l["id"]), line.geometry().length()]) . You have to replace the "id" regarding the attributes of your shapefiles. I can edit the code when only the distance is needed.

There is not such a plugin. And if you do not want to use python, you can combine two build-in algorithms in QGIS3


Schau das Video: Python in QGIS. Урок 5. Plugins.