Suite

Comment importer correctement python sklearn dans le plugin QGIS PyQt ?

Comment importer correctement python sklearn dans le plugin QGIS PyQt ?


Je suis un peu nouveau dans le développement de plugins python et QGIS. J'ai créé une structure de plugin pour QGIS à l'aide de Plugin Builder sur QGIS et j'ai ajouté quelques contrôles à l'interface graphique et réussi à mettre à jour la liaison de module appropriée à l'interface graphique.

J'essaie également d'utiliser le voisin le plus proche de la bibliothèque sklearn dans mon application de plugin. Tout fonctionne bien jusqu'à la première exécution de sklearn et j'obtiens un message d'erreur comme suit :

Une erreur s'est produite lors de l'exécution du code Python :

Traceback (dernier appel le plus récent) : Fichier "C:/Users/c_aaalam/.qgis2/python/pluginsFemtoCoveragefemto_coverage.py", ligne 282, dans les distances de course, indices = nbrs.kneighbors(subs) Fichier "C : /Users/c_aaalam/.qgis2/python/pluginsFemtoCoveragesklearn eighborsase.py", ligne 332, dans kneighbors return_distance=return_distance) Fichier "binary_tree.pxi", ligne 1295, dans sklearn.neighbors.kd_tree.Binary .query (sklearn eighborskd_tree.c:10386) Fichier "C:/Users/c_aaalam/.qgis2/python/pluginsFemtoCoveragesklearnutilsvalidation.py", ligne 117, dans array2d si sp.issparse( X) : AttributeError : l'objet 'NoneType' n'a pas d'attribut 'issparse'

Voici le script que j'exécute dans mon plugin :

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

Il semble que la variable scipy sparse soit "NoneType" et donc la fonction "issparse()" n'est pas reconnue. J'ai placé le dossier sklearn dans le répertoire du plugin (utilisateur Windows) et ajouté le sklearn d'importation nécessaire à mon module de plugin.

Est-ce que quelqu'un a de l'expérience avec sklearn dans les applications PyQt ou spécifiquement avec le développement de plugins QGIS et peut m'aider à résoudre cette erreur ?

Peut-être que je charge sklearn de manière incorrecte ?


J'ai compris le problème. Le problème était que j'avais sklearn dans le même répertoire que mes fichiers de plugin et non dans les packages de site sous mon installation qgis.

Pas sûr à 100% que c'était le problème, mais une fois que j'ai supprimé sklearn du répertoire des plugins et l'ai installé dans les packages de site, le problème a été résolu. Plus d'erreurs !


Installer scikit-learn¶

Notez qu'afin d'éviter des conflits potentiels avec d'autres packages, il est fortement recommandé d'utiliser un environnement virtuel (venv) ou un environnement conda.

L'utilisation d'un tel environnement isolé permet d'installer une version spécifique de scikit-learn avec pip ou conda et ses dépendances indépendamment des packages Python précédemment installés. En particulier sous Linux, il est déconseillé d'installer des packages pip à côté des packages gérés par le gestionnaire de packages de la distribution (apt, dnf, pacman…).

Notez que vous devez toujours vous rappeler d'activer l'environnement de votre choix avant d'exécuter une commande Python chaque fois que vous démarrez une nouvelle session de terminal.

Si vous n'avez pas encore installé NumPy ou SciPy, vous pouvez également les installer en utilisant conda ou pip. Lorsque vous utilisez pip, veuillez vous assurer que roues binaires sont utilisés, et NumPy et SciPy ne sont pas recompilés à partir de la source, ce qui peut arriver lors de l'utilisation de configurations particulières de système d'exploitation et de matériel (comme Linux sur un Raspberry Pi).


Comment accéder à QString pour QGIS-2.14 dans PyQt4

C'est un peu spécifique à QGIS, mais imaginez que c'est un peu de bas niveau, donc j'ai posté ici. Je peux certainement déplacer cela vers gis.stackexchange.com si c'est mieux.

Essayer d'utiliser QgsRasterCalculator, qui semble vouloir un objet de type QString pour quelques arguments. J'essaie de créer un QString (comme décrit ici) mais j'obtiens :

J'essaie donc d'utiliser une chaîne régulière pour mon premier argument ( calc = QgsRasterCalculator( 'demffac > 120', newStreams, 'GTiff', rFac.extent(), rFac.crs().authid(), rFac.height() , rFac.width(), entrées) ), j'ai obtenu :

Traceback (appel le plus récent en dernier) : fichier "<input>", ligne 1, dans <module> TypeError : les arguments ne correspondent à aucun appel surchargé : QgsRasterCalculator(QString, QString, QString, QgsRectangle, int, int, list-of-QgsRasterCalculatorEntry): argument 5 a un type inattendu « unicode » QgsRasterCalculator(QString, QString, QString, QgsRectangle, QgsCoordinateReferenceSystem, int, int, list-of-QgsRasterCalculatorEntry): l'argument 5 a un type inattendu « unicode » QgsRasterCalculator(QgsRaster 1 inattendu) : argument hast '

J'utilise QGIS 2.14, qui a été documenté comme utilisant QString (si je comprends bien). J'ai essayé d'utiliser le package sip pour réinitialiser (selon ces instructions) mais la console python de QGIS ne semble pas vouloir changer ( ValueError: l'API 'QString' a déjà été définie sur la version 2).

Un moyen de faire fonctionner mon appel QgsRasterCalculator() ? Merci pour toute information !

/==================EDIT : capture d'écran des réponses de mon QGIS aux suggestions========= /================== Informations sur la version :


3 réponses 3

Vous avez raison, XGBoost ("eXtreme Gradient Boosting") et GradientBoost de sklearn sont fondamentalement les mêmes car ce sont tous deux des implémentations d'amplification de gradient.

Cependant, il existe des différences très importantes sous le capot dans un sens pratique. XGBoost est beaucoup plus rapide (voir http://machinelearningmastery.com/gentle-introduction-xgboost-applied-machine-learning/) que sklearn. XGBoost est assez économe en mémoire et peut être parallélisé (je pense que sklearn ne peut pas le faire par défaut, je ne connais pas exactement l'efficacité de la mémoire de sklearn mais je suis assez confiant qu'il est inférieur à celui de XGBoost).

Ayant utilisé les deux, la vitesse de XGBoost est assez impressionnante et ses performances sont supérieures à GradientBoosting de sklearn.


1 réponse 1

Non, SelectKBest et les autres transformateurs *Select* de sklearn.feature_selection ne changent pas l'ordre des fonctionnalités, ne suppriment que celles qui ne sont pas sélectionnées. Quoi qu'il en soit, généralement, les modèles d'apprentissage automatique n'utilisent pas l'ordre relatif d'une fonctionnalité.

Si vous devez vérifier et réorganiser les fonctionnalités, vous pouvez utiliser les attributs scores_ et/ou pvalues_ d'un objet Transformer ajusté (par exemple, SelectKBest ).

Sous le capot, ces classes utilisent un masque booléen pour identifier les fonctionnalités à conserver. Le masque booléen est composé à partir du premier (ou du seul) ensemble de partitions. Ce seraient des valeurs t dans votre cas. Les valeurs p ne sont pas utilisées par SelectKBest pour sélectionner des fonctionnalités pour le moment, selon le code source.


Suivre les expériences d'Auto-sklearn sur Neptune

J'ai créé des cahiers que vous pouvez facilement télécharger et faire les expériences par vous-même. Mais pour refaire toutes les étapes ensemble, vous devez :

  • Installez auto-sklearn sur votre machine ou Google Colab.
  • Sélectionnez un échantillon de 10 000 dans Santander Customer Transaction Prediction pour expérimenter la classification binaire.
  • Utilisez l'ensemble de données Boston pour effectuer une expérience basée sur un problème de régression.
  • Faites les expériences.
  • Suivez les résultats dans Neptune.

Tout d'abord, vous devez installer auto-sklearn sur votre machine. Utilisez simplement pip3 pour cela :

Si vous obtenez une erreur, vous devrez peut-être installer des dépendances pour cela, veuillez donc consulter la page d'installation officielle. Vous pouvez également utiliser les cahiers que j'ai préparés pour vous dans Neptune. Exécutez ensuite la commande suivante pour vous assurer que l'installation est effectuée correctement :

Examinons quelques problèmes de classification et de régression.

Auto-sklearn pour la classification

Pour le problème de classification, j'ai choisi un concours Kaggle chéri – Santander Customer Transaction Prediction. Veuillez télécharger l'ensemble de données et sélectionner 10 000 enregistrements au hasard. Suivez ensuite les expériences du premier cahier :

Nous devons également définir certaines configurations pour mieux comprendre l'auto-sklearn :

Configurations Valeur de plage La description
time_left_for_this_task [60- 5000] J'ai commencé les expériences avec 60 secondes, puis pour chaque expérience, je l'ai augmenté à 5000.
métrique roc_auc Comme l'étude de cas est fortement déséquilibrée, je dois alors changer la métrique en roc_auc
resampling_strategy CV Dans auto-sklearn V1, si je ne définissais pas resampling_strategy, cela ne pouvait pas obtenir un bon résultat. Mais dans auto-sklearn V2, il l'a fait automatiquement.
resampling_strategy_arguments

Pour utiliser la configuration ci-dessus, vous pouvez définir l'objet automl comme suit :

Comme j'ai utilisé beaucoup de configurations différentes, je les ai juste suivis sur le Neptune. Vous pouvez en voir un sur l'image et les vérifier tous dans Neptune.

Lorsque vous adaptez le modèle d'auto-sklearn, vous pouvez vérifier tous les pipelines les plus performants avec PipelineProfiler (pip install pipelineprofiler). Pour ce faire, vous devez exécuter le code suivant :

Votre sortie devrait ressembler à ceci :

D'un autre côté, j'ai également mené des expériences basées sur l'auto-sklearn V2. Le résultat était fascinant. Vous pouvez voir le résultat ci-dessous :

Pour utiliser auto-sklearn V2, vous pouvez utiliser le code suivant :

Auto-sklearn pour la régression

Le deuxième type de problème que l'auto-sklearn peut résoudre est la régression. J'ai effectué quelques expériences basées sur l'exemple officiel de la documentation d'auto-sklearn.

J'ai juste modifié le budget temps pour suivre les performances en fonction de la limite de temps. L'image ci-dessous montre les résultats.


Connecteur MySQL/python ImportError : aucun module nommé 'mysql'

Je suis très nouveau sur Ubuntu/Linux et Python, il est donc tout à fait possible que je manque quelque chose d'évident ici. J'utilise Ubuntu 16.04 LTS, version serveur.

Je viens d'installer le connecteur MySQL/python officiel (2.1.7, version python3) en utilisant dpkg -i [package-name].deb (j'ai évidemment remplacé [package-name] par le nom réel). Il est répertorié comme étant compatible avec Python 3.5, qui est la version que j'ai. Lorsque j'essaie de vérifier l'installation via l'interpréteur Python à l'aide de import mysql.connector , j'obtiens simplement l'erreur suivante :

Sur une question similaire, j'ai vu qu'il suggérait que le connecteur ne s'était peut-être pas installé correctement si python n'était pas dans le chemin. Je n'ai pas semblé rencontrer de problèmes lors de l'installation, le fichier python3 se trouve dans /usr/bin qui est définitivement dans le chemin, mais semble être un lien vers le fichier python3.5 au même endroit. Exécuter la commande que python3 donne la sortie usr/bin/python3 mais exécuter qui python ne donne aucune sortie.

Le paquet contenait apparemment également une bibliothèque C, qui semble avoir été installée dans usr/lib/python3/dist-packages . Rien d'autre dans ce répertoire n'est appelé quoi que ce soit lié à MySQL.

Que dois-je rechercher pour savoir s'il s'agit d'un problème avec l'installation du connecteur ou avec Python lui-même ? Et comment régler ça ?


6. Résoudre un problème d'apprentissage automatique

Nous allons mettre en œuvre ce que nous avons appris jusqu'à présent sur l'ensemble de données du Black Friday et voir comment cela fonctionne. L'exploration et le traitement des données n'entrent pas dans le cadre de cet article, car je n'illustrerai que l'utilisation de Dask pour un problème de ML. Si ces étapes vous intéressent, vous pouvez consulter les articles mentionnés ci-dessous :

1. Utiliser un modèle de régression logistique simple et faire des prédictions

Cela vous donnera les prédictions sur l'ensemble de test donné.

2. Utilisation de la recherche par grille et de l'algorithme de forêt aléatoire pour trouver le meilleur ensemble de paramètres.

A l'impression grid_search.best_params_ vous obtiendrez la meilleure combinaison de paramètres pour le mode donné. Je n'ai fait varier que quelques paramètres ici, mais une fois que vous êtes à l'aise avec l'utilisation de dask-search, je suggère d'expérimenter avec plus de paramètres tout en utilisant plusieurs valeurs variables pour chaque paramètre.


Comment importer correctement python sklearn dans le plugin QGIS PyQt ? - Systèmes d'information géographique

L'IA n'est pas aussi objective qu'on pourrait le penser - qu'est-ce qui influence le biais de l'IA ? De plus en plus d'applications d'IA affectent notre vie quotidienne à notre insu, d'une caméra intelligente pour smartphone aux algorithmes qui décident si une entreprise nous embauchera. Cette conférence couvre tous les points importants à considérer lors de l'utilisation et du développement de solutions d'IA. L'intelligence artificielle (IA) s'implique de plus en plus dans notre vie quotidienne, souvent sans même que nous nous en rendions compte ou que nous en soyons conscients. Cela peut être caché dans les caméras intelligentes des smartphones, cela peut nous influencer lors de nos achats ou même décider si nous sommes embauchés par une entreprise ou non. Pour qu'une IA fonctionne comme une seule, elle doit être formée sur des données avant de pouvoir réellement agir intelligemment. Il peut se comporter de manière étrange et inattendue, mais il faut se rappeler : peut-être que la situation est complètement nouvelle et qu'il n'a tout simplement pas encore appris le comportement correct. Les humains doivent constamment apprendre et s'adapter au cours de leur vie, une IA, cependant, n'est formée que sur un ensemble très limité de données et peut donc développer une vision complètement différente et biaisée. Quelles sont les raisons de provoquer un tel biais, qu'est-ce qui l'influence et comment pouvons-nous tenter de réduire le biais ? Cette conférence met en lumière les biais de l'IA et comment les surmonter lors du développement de solutions d'IA.

Katrin Strasser est une développeur de logiciels d'IA qui se concentre principalement sur le traitement du langage naturel chez Catalysts. Cela comprend la planification et le développement de logiciels pour les projets d'IA, ainsi que le développement commercial. Au cours de ses études de licence en développement de jeux et réalité augmentée et de ses études de maîtrise en bioinformatique, elle a pu acquérir des connaissances sur une grande variété de sujets liés à l'informatique.

Utiliser le micro:bit pour inspirer les élèves

Il est notoirement difficile de captiver un groupe d'enfants pendant une période prolongée. J'expliquerai avec vous comment le micro:bit peut être utilisé pour engager un jeune public avec des démos interactives et des activités de programmation. Les enfants adorent interagir physiquement avec le matériel. C'est ce qui est génial avec le micro:bit. Il a non seulement des LED et des boutons intégrés, mais peut également contrôler des appareils électroniques plus gros et plus excitants comme des bras robotiques. Cela permet une configuration qui donne aux étudiants de tous niveaux un défi. Les étudiants débutants en programmation peuvent recevoir un programme plus complet ou parcourir une feuille de travail qui les guide tout au long du processus de contrôle de l'appareil (dans ce cas, un bras robotique) étape par étape. Les étudiants qui ont des compétences de programmation plus élevées peuvent recevoir un fichier source plus simple / passe-partout et peuvent écrire du code pour contrôler le bras avec moins de conseils.

J'ai 17 ans et j'étudie l'informatique, les maths, les maths et la physique en 12e année (lycée anglais / sixième). J'adore programmer en Python et je pense que le micro:bit est un excellent outil pédagogique qui devrait être plus largement utilisé.

Analyser 200 ans de débat politique

Merkel n'est peut-être pas familière avec les règles parlementaires britanniques du XVIIe siècle, mais vous le serez après cet atelier. Vous apprendrez à analyser 200 ans de débats politiques britanniques avec le web scraping, la science des données et le traitement du langage naturel. Merkel n'est peut-être pas familière avec les règles parlementaires britanniques du XVIIe siècle, mais vous le serez après cet atelier. Le Dr Maryam Ahmed (BBC News) partagera les défis uniques de l'analyse des archives du hansard, un enregistrement en ligne de chaque discours parlementaire de 1803 à nos jours. HTML en données structurées avec Pandas et BeautifulSoup. Maryam expliquera comment trouver des thèmes dans les discours politiques avec les méthodes NLTK et Scikit-Learn, y compris l'allocation TF-IDF et Latent Dirichlet. Spoiler : son discours contiendra au moins un clip de John Bercow criant « ordre ».

Le Dr Maryam Ahmed est data scientist à BBC News, où elle aime utiliser l'apprentissage automatique pour trouver des informations dans des ensembles de données politiques désordonnés et exposer les biais algorithmiques. Le Dr Maryam Ahmed est basée à BBC News, où elle aime utiliser la science des données et l'apprentissage automatique pour trouver des informations dans des ensembles de données politiques désordonnés et enquêter sur les biais algorithmiques. Elle est une ardente défenseure de l'examen minutieux et de la transparence dans la sphère publique et a parlé de ce sujet au Mozilla Festival, à l'Open News Unconference à la Royal Society of Arts et à la conférence Impacts of Civic Technology à l'OCDE. Maryam pense que l'éducation est le plus grand niveleur et aime organiser des événements de codage pour les enfants issus de minorités.

Importer du bacon

On dit souvent que Python est livré avec des piles incluses, ce qui signifie que la bibliothèque standard peut pratiquement tout faire, sauf peut-être évoquer du bacon pour vous (bien que j'ai entendu dire que cela arriverait dans la version 3.8). Je ne pense pas que nous en apprécions pleinement l'immensité, alors je l'ai parcouru module par module à la recherche de joyaux cachés (désolé, œufs). Il ne s'agit en aucun cas d'une compilation exhaustive de l'utile, du sous-estimé et du drôle. Il y a de fortes chances que vous utilisiez quotidiennement la bibliothèque standard Python - ou plus probablement, un sous-ensemble plus ou moins stable de celle-ci. La manière habituelle d'ajouter des éléments au sous-ensemble consiste à rechercher une solution à un problème et à finir par pointer vers un module de bibliothèque standard. Cela, cependant, signifie que les chances que vous découvriez qu'il existe un module entier dont le seul but est de vous dire si une chaîne est un mot-clé Python sont très minces. Cette présentation ne s'adresse pas à un niveau spécifique d'expérience Python. Nous passerons en revue les modules qui sont intéressants d'une manière ou d'une autre : principalement pour leur utilité, mais dans certains cas aussi simplement parce qu'ils sont merveilleusement étranges d'une manière ou d'une autre.

Actuellement développeur backend chez iMobility, où je peux créer des choses utiles avec aiohttp. Quand je ne code pas, on me trouve généralement en train de jouer à des jeux indépendants plus ou moins obscurs.

Introduction à la sécurité de l'information avec Python

Dans cet exposé, nous travaillerons à démystifier les bases de la sécurité de l'information avec python : comment les informations sont-elles transmises sur Internet (réseaux, couches réseau, protocoles), comment ces informations sont-elles sécurisées (cryptage) et comment pouvons-nous analyser ces informations ( réseau et détection d'intrusion). Par la suite, nous appliquerons les algorithmes scikit learn pour analyser les fichiers de trafic Internet en vue d'une éventuelle intrusion. Le piratage, dans l'usage classique du mot, est probablement le domaine le plus mystérieux et pourtant l'un des plus masculins de l'ensemble de l'informatique. Beaucoup d'entre nous imaginent un mec ringard dans un sweat à capuche noir dans un sous-sol trash en train de pirater joyeusement une banque, l'État ou une grosse entreprise d'argent ou d'électricité. Il y a cependant quelque chose de très subversif à propos de ces personnes assises dans leur sous-sol, travaillant contre tous les pouvoirs de contrôle, quelque chose. L'essentiel, ça serait : ça pourrait faire un beau récit féministe. Introduction à la sécurité de l'information avec PythonHacking, dans l'usage classique du mot, est probablement le plus mystérieux et pourtant l'un des domaines les plus masculins de l'ensemble de l'informatique. Beaucoup d'entre nous imaginent un mec ringard dans un sweat à capuche noir dans un sous-sol trash en train de pirater joyeusement une banque, l'État, ou une grosse entreprise d'argent ou d'électricité. Il y a cependant quelque chose de très subversif chez ces personnes assises dans leur sous-sol, travaillant contre tous les pouvoirs de contrôle, quelque chose qui pourrait faire un beau récit féministe. Dans cette conférence, nous travaillerons à démystifier les bases de la sécurité de l'information avec python et, en chemin, discuterons de ce récit de hacker féministe, y compris des exemples historiques. Les bases, à savoir : Comment les informations sont transmises sur Internet (réseaux, couches réseau, protocoles), comment ces informations sont-elles sécurisées (cryptage) et comment pouvons-nous analyser ces informations (réseau et détection d'intrusion). Après avoir réglé les bases avec quelques exemples de python, nous plongerons plus profondément dans la spécialité des haut-parleurs - la science des données dans la détection d'intrusion. À la base, la détection d'intrusion se résume souvent à la détection d'anomalies et nous apprendrons comment nous pouvons former des algorithmes scikit learn sur des fichiers journaux pour voir si un réseau a été piraté.

Pense que la science est un art et que l'info-sec peut être cool. Fait toutes sortes de choses scientifiques, artistiques et hacky. Organise des rencontres et des choses politiques. Peut être trouvé dans les hack*spaces, les squats et les clubs queer. Généralement avec du Clube Mate ou du café (noir, sans sucre) dans les mains.

Dépasser le dogme R vs Python

Cette conférence utilisera plume, ursa labs et la dernière version de RStudio pour démontrer comment R et Python peuvent fonctionner ensemble et essayer de s'éloigner du dogme. Il y a une lutte en cours entre les utilisateurs de R et les utilisateurs de Python pour savoir quel langage de programmation est le meilleur pour la science des données. En tant qu'utilisateur des deux, je pense que passer du temps à élaborer les avantages et les inconvénients des deux est du temps perdu, en particulier parce que la discussion est généralement dirigée par des dogmes. Il se passe beaucoup de choses pour rapprocher les deux outils en construisant des ponts sur les lacunes d'incompatibilité. L'échange de données entre R et Python est un problème résolu grâce à plume. S'appuyant sur cette idée, Wes McKinney et Hadley Wickham collaborent pour développer des outils de science des données pour R et Python. Et avec la dernière version de RStudio (1.2), Python s'est peut-être trouvé un IDE approprié pour la science des données. Cette conférence utilisera plume, ursa labs et la dernière version de RStudio pour démontrer comment R et Python peuvent fonctionner ensemble et essayer de s'éloigner du dogme.

A étudié l'informatique de gestion à Innsbruck et la science des données à Londres. A travaillé avec des entreprises comme OMV, easyJet, Sainsbury's et The Unbelievable Machine Company. Co-auteur du package R open source tableHTML, un outil pour créer et styliser des tableaux HTML à partir de R

Un apprenant et un scientifique des données, avec une formation logique et mathématique, ont commencé un voyage dans le monde des mégadonnées et de la science des données, au cours duquel Dana est capable de travailler sur la résolution de divers problèmes commerciaux et d'utiliser bon nombre des incontournables du scientifique des données. a des outils. Récemment, Dana a eu la chance de contribuer au développement du package R open source tableHTML version 2.0.0.

Du notebook Jupyter à une utilisation mondiale

Dans cette contribution, nous racontons l'histoire d'un algorithme d'extraction de données de documents. Nous nous concentrons sur les défis qui ont dû être surmontés lors de la mise à l'échelle et sur la façon dont « l'internationalisation » était déjà intégrée par conception dans la conceptualisation des algorithmes. En particulier, nous discutons de : 1) L'organisation de l'équipe de science des données et de développement back-end centrée et comment l'algorithme et comment le(s) rôle(s) des membres de l'équipe ont changé au cours du cycle de vie de l'algorithme 2) Les défis que nous avons rencontrés au cours du go- en direct et leçons apprises 3) Brevets et protection de la propriété intellectuelle

Cadre en science des données avec une expérience dans la mise sur le marché de produits logiciels basés sur l'apprentissage automatique. Expérience professionnelle dans les startups de logiciels et formation académique en analyse de données.

Le guide enthousiaste de l'apprenti sur les pandas

Les Pandas ont vite compris qu'ils ne survivraient pas aux épreuves et aux difficultés de ce monde, s'ils ne se ressaisissaient pas enfin et sans un clin d'œil d'hésitation, arrêtaient d'être des êtres paresseux et moelleux, ils ont longtemps été connus et commencent à réorganiser leur vie dès que possible. Il leur fallait un regard neuf sur le monde et ses mécanismes intrinsèques, il fallait faire la lumière sur les informations qu'ils possédaient sur la survie, en quelques mots, il fallait tout recommencer. C'est ainsi qu'au milieu de la forêt une bibliothèque hautement performante prenait vie, dont la puissante boîte à outils leur permettrait une longue vie de bonheur et de joie. Cette bibliothèque rêvée devrait importer les informations qu'ils ont rassemblées sur le monde depuis des siècles et les aider à le regarder avec des yeux différents. Ils voulaient structurer leurs visions du monde et leurs croyances en types et catégories sensibles, retirer de leurs gènes leurs modèles de comportement procrastinatifs, les abandonner complètement. Après de laborieux efforts pour traiter les données manquantes sur leur environnement, regrouper et compter le reste significatif, filtrer les superstitions absurdes, ils pouvaient enfin et, sans aucun doute, indiquer avec précision, où les pousses de bambou étaient les plus fraîches, les plus succulentes, les plus riches en fibres, absolument délicieux et le moment de l'année, dicté par le calendrier lunaire, quand ils sont les plus moelleux, les plus confortables, les plus volontaires et irrésistiblement tombent amoureux les uns des autres et se blottissent. Ils mettent tout ce kit de survie secret dans des images et des graphiques facilement compréhensibles pour les rêveurs d'entre eux, qui n'étaient pas prêts à faire tous les efforts pour apprendre tous ces symboles compliqués, juste pour survivre et qui voulaient juste admirer la déesse du ciel, la lune. Mais attendez, ils n'avaient pas de nom pour leur bibliothèque grandiose, alors ils voulaient juste faire une déclaration d'être la créature la plus assidue de toutes et l'appelaient, simplement et sans équivoque, les pandas !

Mypy : tu tapes même pas, mon pote ?

Depuis l'introduction des annotations, du module de typage et de myp, le typage statique optionnel est devenu disponible pour Python. Nous allons découvrir la fonctionnalité de saisie de base, passer aux fonctionnalités de saisie plus avancées, apprendre à configurer mypy et écrire un petit plugin mypy.

Introduction à l'apprentissage par renforcement

L'apprentissage par renforcement est une approche puissante de l'apprentissage automatique qui est basée sur l'expérience sans connaissances préalables ni conseils d'experts. Il permet à une IA de créer de manière indépendante des modèles de son environnement et de développer des stratégies d'action appropriées pour des tâches orientées vers un objectif. Les algorithmes d'auto-apprentissage peuvent être appliqués à des problèmes dépendant du temps dans un environnement changeant et inconnu. Les applications incluent Game Ai (Alpha Go / Alpha Go Zero), les décisions en temps réel et la navigation robotique. L'objectif du cours est de donner un aperçu des fondements théoriques et conceptuels de l'apprentissage par renforcement, ainsi qu'une compréhension de base des algorithmes RL les plus connus (SARSA, Q-Learning. ). Le cadre formel des « Processus décisionnels de Markov » sera discuté, permettant de représenter les tâches dépendantes du temps et basées sur la décision de manière significative : La tâche d'apprentissage est modélisée comme une interaction entre « l'environnement » et un « agent » agissant dedans. L'objectif de l'agent est de trouver des stratégies pour maximiser une récompense préalablement définie à travers l'environnement. Ainsi, le comportement axé sur les objectifs peut être traduit par un problème d'optimisation, qui est approximativement résolu par l'expérience acquise par l'agent. Les méthodes sont démontrées avec des applications simples à partir d'environnements déterministes et stochastiques avec des exemples de code.

Informatique distribuée avec Ray

Dans cet exposé, nous explorerons Ray - un framework d'exécution distribuée hautes performances et à faible latence qui vous permettra d'exécuter votre code Python sur plusieurs cœurs et de faire évoluer le même code de votre ordinateur portable vers un grand cluster. Ray utilise plusieurs idées intéressantes telles que les acteurs, le magasin d'objets rapide à mémoire partagée sans copie ou la planification ascendante. De plus, en plus d'une API succincte, Ray crée des outils pour vos pipelines Pandas plus rapidement, des outils qui vous trouvent les meilleurs hyper-paramètres pour vos modèles d'apprentissage automatique, ou forment des algorithmes d'apprentissage par renforcement de pointe, et bien plus encore. Venez parler et apprenez-en plus.

Jan Margeta est le fondateur de KardioMe, un passionné de Python, récemment conférencier à PyCon Slovaquie et un kayakiste en eaux vives. Jan a effectué son doctorat en machine learning pour l'analyse automatisée d'images médicales à Inria Sophia Antipolis et MINES ParisTech en tant que doctorant Microsoft research. Jan est titulaire d'une maîtrise ès sciences en vision par ordinateur et robotique VIBOT. Maintenant, il met toute l'expérience de la recherche en usage dans le monde réel pour améliorer la façon dont nous traitons les maladies cardiaques. C'est pourquoi il a fondé une société appelée KardioMe. Jan est passionné par l'utilisation de la technologie pour repousser les limites de la connaissance humaine, apprendre aux ordinateurs à voir, résoudre des défis difficiles avec des données et faire de notre planète un endroit durable.

Grignoteur

nibbler explore le concept d'utilisation des fonctionnalités de syntaxe Python existantes telles que les annotations de type et les décorateurs pour accélérer l'exécution du code en exécutant des passes d'optimisation de bytecode supplémentaires qui utilisent le contexte d'exécution fourni par ces moyens. Vue d'ensemble des composants internes de CPython liés au bytecode et à l'exécution du bytecode.

Une journée n'a que 24 ± 1 heures

Le dernier dimanche d'octobre, vous pouvez avoir «une heure de sommeil de plus», mais vous pouvez passer beaucoup plus de temps à déboguer le code traitant des fuseaux horaires, des changements d'heure d'été et de la date et de l'heure en général. Cette conférence porte à 20 % sur la programmation et à 80 % sur l'histoire du monde et les décisions politiques à courte vue ayant un impact à long terme sur la technologie. Après un bref aperçu du module datetime standard et de son utilisation dans différents contextes géographiques, nous allons jeter un œil à la bibliothèque pytz et découvrir les 591 fuseaux horaires qui l'accompagnent. Nous verrons pourquoi pytz ne fait pas partie de la bibliothèque standard, ainsi que quand et comment et pourquoi ce package reçoit des mises à jour fréquentes. À la fin, nous examinerons quelques pièges qui peuvent vous faire éviter complètement les fuseaux horaires.

Développeur logiciel senior chez solute GmbH. Utiliser Python pour obtenir les meilleurs prix en ligne. Né en Tchécoslovaquie, étudié en France, vivant en Allemagne. jongleur hjkl et passionné de langues.

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 gefeit vor Angriffen: Bei Gadget Attacks, Chosenoder 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 können, den bewährten AES einfach „auszuhebeln“, und welche Lessions Learned beispielsweise bei- sulten version beispielsweise bei. Frage der Implementierung zu identifizieren.

L'ambition de Maha : sensibiliser à l'information et à la sécurité informatique pour un monde de plus en plus numérisé Maha est un expert en sécurité de l'information chez TODAY Experts sous contrat avec A1 Telekom, le premier opérateur de réseaux fixes et mobiles en Autriche. Elle a obtenu son baccalauréat en gestion intégrée de la sécurité et de la sûreté à l'Université des sciences appliquées de Vienne. Actuellement, elle se concentre sur la gestion des politiques de sécurité, la sensibilisation et l'éducation. Son ambition est de sensibiliser à la sécurité de l'information et à la confidentialité des données pour un monde de plus en plus numérisé. Elle anime des formations sur la sécurité informatique et suit avec un vif intérêt l'orientation future des télécommunications en lien avec la sécurité.

Lint votre code de manière responsable !

Garder le code lisible et cohérent peut être difficile. Heureusement, l'écosystème Python a développé de nombreux outils pour y contribuer ! Voyons ce que nous pouvons utiliser pour obtenir les meilleurs résultats. Vous apprendrez comment les linters peuvent vous faciliter la vie… et à quoi faire attention pour ne pas la compliquer à la place. De nos jours, il y a tellement de linters Python qu'il peut être difficile de choisir la meilleure solution pour votre projet. Je vais montrer quelques-uns des plus utilisés et les comparer brièvement. Je partagerai également mon expérience avec leur utilisation - à la fois bonne et mauvaise. Nous terminerons par quelques questions sur l'utilisation des linters dans différents projets. Je ne donnerai pas de réponses strictes, mais j'espère qu'après cet entretien, il vous sera plus facile de les trouver vous-même.

Développeur logiciel chez Genomics England, auparavant chez Clearcode. Travaillant principalement avec Python, cherchant toujours à en savoir plus. Chaque jour essaie d'améliorer un peu la vie des gens. Aime l'astrophysique, les voyages, les livres et le café, parfois dans un ordre différent.

Salut *AI, parles-tu Python ?

Python est sans doute considéré comme le principal langage de programmation utilisé dans l'IA, en particulier dans le domaine de l'apprentissage automatique. 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. Comment? 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 ( paramètres , 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.

paramètres (dict) – Booster params.

dtrain (DMatrix) – Data to be trained.

num_boost_round (entier) – Number of boosting iterations.

evals (list of pairs (DMatrix, chaîne de caractères)) – List of validation sets for which metrics will evaluated during training. Validation metrics will help us track the performance of the model.

obj (function) – Customized objective function.

feval (function) – Customized evaluation function.

maximiser (bool) – Whether to maximize feval.

early_stopping_rounds (entier) – 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 paramètres, 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 (dict) –

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 Retour

verbose_eval (bool ou alors entier) – Requires at least one item in evals. Si verbose_eval is True then the evaluation metric on the validation set is printed at each boosting stage. Si 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 ou alors '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 . Exemple:

xgboost. cv ( paramètres , 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.

paramètres (dict) – Booster params.

dtrain (DMatrix) – Data to be trained.

num_boost_round (entier) – Number of boosting iterations.

nfold (entier) – Number of folds in CV.

stratifié (bool) – Perform stratified sampling.

folds (a KFold ou alors StratifiedKFold instance ou alors 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.

métrique (chaîne de caractères ou alors list of strings) – Evaluation metrics to be watched in CV.

obj (function) – Custom objective function.

feval (function) – Custom evaluation function.

maximiser (bool) – Whether to maximize feval.

early_stopping_rounds (entier) – 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 paramètres, the last metric will be used for early stopping.

fpreproc (function) – 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, entier, ou alors Rien, 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.

la graine (entier) – 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 . Exemple:

shuffle (bool) – Shuffle data before creating folds.

evaluation history


2 réponses 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
il y a 13 heures

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