Support IVY : Encyclopédie #1 et site d'informations, Conseils, Tutorials, Guides et plus
  • Accueil
  • Astuces
  • Magazine
    • Conseil en relations
      • Astuces
    • Rédaction & écriture
    • Web Design
    • Réseaux sociaux
      • Facebook
  • Lifestyle
    • Food
  • Ressources
    • Questions & Réponses
    • Graphique
      • PixelArt
No Result
View All Result
Support IVY : Encyclopédie #1 et site d'informations, Conseils, Tutorials, Guides et plus
  • Accueil
  • Astuces
  • Magazine
    • Conseil en relations
      • Astuces
    • Rédaction & écriture
    • Web Design
    • Réseaux sociaux
      • Facebook
  • Lifestyle
    • Food
  • Ressources
    • Questions & Réponses
    • Graphique
      • PixelArt
Support IVY : Encyclopédie #1 et site d'informations, Conseils, Tutorials, Guides et plus
No Result
View All Result
Home Cryptomonnaie

Création d’une application Web Crypto ML

15 mai 2020
in Cryptomonnaie
Reading Time: 24 mins read
Création d’une application Web Crypto ML

Table des matières

ArticlesA lire

Bitcoin bull market is back – The Startup

Le marché haussier du Bitcoin est de retour – Sajjad Hussain

Crypto City Zeroing d’Akon sur le Sénégal – Akoin and the Aftermath

Crypto City Zeroing d’Akon sur le Sénégal – Akoin and the Aftermath

Merkle Trees: de plus en plus en usage – EricB10

Merkle Trees: de plus en plus en usage – EricB10

Analyse du marché Bitcoin – La startup

Analyse du marché Bitcoin – La startup

Création d’une application Web Crypto ML

Aperçu du projet

Le projet combine les données de la blockchain, l’apprentissage automatique et les services gérés dans le cloud en un produit final en tant qu’application Web. Les données Ethereum sont disponibles en tant que jeu de données public GCP.

L’application Web prédit le profil d’investisseur (cluster) d’une adresse Ethereum qui est entrée dans l’interface utilisateur. Ceci est basé sur trois fonctionnalités extraites de la source de données: Solde actuel, transferts uniques et jetons uniques détenus.

Dans le jargon financier, un profil d’investisseur définit la préférence d’un individu dans les décisions d’investissement. Par exemple, l’aversion au risque / la tolérance au risque, la diversité des classes d’actifs et des actifs individuels, l’investissement dans des actions de croissance ou des actions de valeur, etc. Dans ce projet, il se réfère à tout type de comportement d’investissement qui peut être quantifié et utilisé pour différencier entre différentes adresses Ethereum.

Les données sont disponible sur BigQuery et est prêt à être utilisé. Le défi consiste à modéliser les données et à les utiliser pour alimenter les modèles ML. Les données ne sont pas étiquetées, c’est pourquoi le problème est formulé tâche d’apprentissage automatique non supervisée. Comme les données de tarification sont à la fois plus accessibles et monétisables, la plupart des projets de machine learning crypto se concentrent sur la prévision de cela.

D’autre part, ce projet se concentre sur les empreintes comportementales des adresses individuelles (investisseurs) et leur regroupement en fonction des données transactionnelles disponibles.

Les services cloud d’AWS ont été utilisés pour fournir le modèle dans l’interface utilisateur Web. AWS SageMaker pour toutes les étapes d’apprentissage automatique et pour servir de modèle comme point de terminaison de prédiction. Ceci est ensuite déclenché en tant que fonction Lambda via le point de terminaison API déployé avec API Gateway. Ce point de terminaison est utilisé pour prédire le profil d’investisseur Ethereum dans l’interface utilisateur Web.

Énoncé du problème

Bien que les données sur les chaînes de blocs publiques soient ouvertes, il n’y a pas encore beaucoup d’applications d’apprentissage automatique (à part les prévisions de prix) qui les exploitent. L’une des raisons est que les structures de données sous-jacentes sont basées sur des systèmes OLTP difficiles à analyser (par opposition à OLAP).

Pour chaque transaction exécutée sur les blockchains publiques, il existe une trace que nous pouvons analyser. Contrairement aux autres classes d’actifs, nous disposons de données sur le comportement des investisseurs individuels. Le but du projet est de répondre à la question:

Pouvons-nous utiliser le principe du BYOD (apporter vos propres données) et regrouper un investisseur Ethereum uniquement avec l’adresse fournie?

Compte tenu de la complexité du problème, je ne m’attendais pas à obtenir des résultats qui seraient nécessairement éclairants. Il existe actuellement presque 100 millions d’adresses Ethereum uniques qui sont très diverses. L’objectif était de construire une solution viable. Et pour cela, certaines hypothèses devaient être faites.

Une hypothèse fondamentale (sur) simplificatrice est qu’une adresse équivaut à un investisseur. Ceci est difficile à discuter car il existe de nombreux sous-groupes dans l’écosystème Ethereum tels que les mineurs, les bourses et les portefeuilles ICO. Pendant ce temps, la distinction entre ceux-ci dépasse la portée de ce projet qui se concentre sur la construction d’un pipeline de preuve de concept.

Métrique

Avec un nombre donné de clusters, chaque modèle regroupe toutes les adresses Ethereum échantillonnées en clusters séparés. La métrique utilisée dans ce projet est la Score de silhouette. Le coefficient est calculé en utilisant la distance moyenne intra-grappe et la distance moyenne la plus proche pour chaque échantillon. Ceci est idéal pour le cas d’utilisation car nous n’avons pas de valeurs de vérité au sol disponibles.

Exploration des données

Un échantillon de 10000 adresses Ethereum est extrait. Certains d’entre eux ne remplissant pas les conditions supplémentaires de la requête spécifiée, environ 8 000 sont disponibles dans le bloc de données. Comme le montre le tableau ci-dessous, le seuil minimal de ether_balance est 1 Ether. Il s’agissait d’une limite arbitrairement définie car de nombreuses adresses Ethereum ont un solde nul.

La moyenne est de 138 Ether (actuellement environ 25 000 euros au 15 mai 2020), ce qui indique l’asymétrie de la distribution lorsque nous regardons le 75e centile. Alors que le 75e centile est inférieur à 13 Ether, la moyenne est de 138. Il y a clairement de fortes valeurs aberrantes dans l’échantillon, comme la valeur la plus élevée avec un équilibre de 300000 Ether.

le jetons_uniques caractéristique n’est pas aussi dispersée à la balance Ether. La valeur habituelle varie de 2 jetons uniques à 8 jetons détenus.

Les transferts_uniques la fonction varie considérablement. Alors que le nombre moyen de transferts est de 26, le plus grand nombre est 28560. Nous pouvons voir que les 25% des adresses les plus importantes génèrent la plupart des transferts car aucune des adresses du 75e centile n’a plus d’un transfert.

Visualisation exploratoire

Vous trouverez ci-dessous une matrice de dispersion ci-dessous pour toutes les entités construites. Comme il est clair dans la visualisation, il existe une distribution de loi de puissance dans les deux eth_balance et unique_transfers traits. La grande majorité de la valeur cumulée des deux est générée par une minorité d’adresses.

Pendant ce temps, il n’y a pas beaucoup de corrélation visible entre les différentes fonctionnalités.

Matrice de dispersion des entités extraites

Il existe une carte thermique de corrélation ci-dessous pour toutes les fonctionnalités disponibles. Comme cela a déjà été indiqué ci-dessus, il existe peu de corrélation entre les différentes caractéristiques. C’est un signe positif car nous voulons explorer différentes zones de l’espace des fonctionnalités avec différentes fonctionnalités. S’il y avait une forte corrélation, nous pourrions expliquer les mêmes phénomènes avec des caractéristiques différentes.

Algorithmes et techniques

Les techniques utilisées pour prédire les clusters sont tous des algorithmes d’apprentissage automatique non supervisés. Les choix sont K-means, Gaussian Mixture Models et Hierarchical clustering.

Comme dans K-means, les frontières entre les clusters sont toujours linéaires, les deux autres algorithmes sont utilisés pour gérer des frontières plus compliquées. En outre, la possibilité d’étendre davantage l’analyse en mesurant la probabilité ou l’incertitude des affectations de grappes. Cela ne se fait pas dans l’analyse mais c’est une extension possible.

Référence

Le modèle de référence pour le projet est le score de silhouette de l’algorithme K-means. Après cela, des algorithmes plus sophistiqués sont utilisés pour comparer les performances. En règle générale, un score Silhouette de 0,5 est défini comme un seuil pour la solution à considérer avec une performance raisonnable.

Prétraitement des données

Trois fonctionnalités sont extraites:

  • Balance Ethereum actuelle
  • Jetons uniques qui ont toujours été détenus
  • Transferts uniques par l’adresse Ethereum

la mise en oeuvre

Il y a pas mal de modules Python utilisés dans le projet. En attendant, ce sont certains qui sont au cœur de la mise en œuvre. Pandas_gbq La bibliothèque a été utilisée pour interroger la source de données BigQuery Ethereum. Google-cloud-bigquery a été utilisé pour s’authentifier dans le compte de service GCP. Scikit-learn a été utilisé comme un outil pour tous les modèles.

Services AWS utilisés dans le projet:

  • S3 pour stocker les données de formation, le prétraitement avec l’objet transformateur et les informations d’identification GCP
  • SageMaker pour tirer parti des instances de bloc-notes et connecter le projet de bout en bout
  • Fonction Lambda pour déclencher le script de prédiction
  • Passerelle API pour créer une API utilisée dans l’interface utilisateur Web avec laquelle l’utilisateur interagit
  • CloudWatch pour consigner et déboguer les éventuels problèmes rencontrés lors du processus de création de la solution

Deux tableaux de la source de données publique Ethereum sont utilisés:

  • `bigquery-public-data.crypto_ethereum.balances`
  • `bigquery-public-data.ethereum_blockchain.token_transfers`

Vues Bigquery impressionnantes La page Github a été utilisée pour construire les requêtes SQL et obtenir une meilleure compréhension du modèle de données Ethereum.

Ci-dessous, nous pouvons voir quelques exemples des fonctionnalités construites pour différentes adresses Ethereum.

Fonctions d’adresse Ethereum échantillonnées

Après cela, la fonctionnalité de pipeline de Sklearn est utilisée pour prétraiter les fonctionnalités. Nous les normalisons pour nous assurer que les fonctionnalités sont utiles pour alimenter les modèles. Cela se fait en utilisant la transformation de puissance, la mise à l’échelle standard et la transformation PCA. La transformation PCA peut être redondante ici car il n’y a que trois fonctionnalités mappées sur trois composants, mais peut être utile si l’ensemble de fonctionnalités est développé et que la dimensionnalité doit être réduite compte tenu de la taille de l’échantillon.

Avec l’ensemble final de fonctionnalités, les trois alternatives d’algorithmes de clustering sont entraînées: modèle K-means, modèle GMM et modèle de clustering hiérarchique.

La visualisation ci-dessous trace le nombre d’instances dans chacun des 4 clusters.

Distributions de cluster

Le nombre de clusters choisi est 4. Il est choisi en fonction des essais et erreurs de différentes valeurs. Comme les performances des algorithmes alternatifs n’améliorent pas considérablement le coefficient de Silhouette, K-means est utilisé dans la solution utilisée dans le modèle qui est déployé.

Après la formation à l’aide du script de formation, les métadonnées du modèle formé sont combinées avec le script de prédiction pour prédire la valeur de cluster des adresses Ethereum individuelles.

Le script de prédiction effectue un calcul à la volée des valeurs d’entité de l’adresse Ethereum fournie. Il interroge la source de données Ethereum et renvoie les valeurs de fonctionnalité normalisées. Celles-ci sont ensuite utilisées comme entrée dans le modèle entraîné qui renvoie la valeur de cluster prédite.

La source: Udacity MLND

La solution finale est un point de terminaison de prédiction déclenché en tant que fonction Lambda via la passerelle API. La fonction Lambda est une fonction cloud basée sur une architecture sans serveur. Il est déployé via la passerelle API en tant qu’API pouvant être utilisée dans l’interface utilisateur de l’application Web.

Chaque fois qu’un utilisateur entre une adresse Ethereum et appuie sur le bouton Soumettre, la valeur de cluster prédite est affichée dans l’interface utilisateur.

Évaluation et validation du modèle

Le résultat final est une application Web qui renvoie un profil d’investisseur basé sur l’adresse Ethereum fournie par l’utilisateur. L’utilisateur n’a pas besoin de fournir ses propres données personnelles, car toutes les données nécessaires peuvent être extraites de la source de données Ethereum accessible au public.

Les modèles sont évalués sur la base du score Silhouette. Comme il existe actuellement plus de 100 millions d’adresses Ethereum existantes, il est difficile d’échantillonner de manière fiable les adresses sans établir de règles explicites telles que le filtrage des montants de solde non triviaux.

Le modèle est évalué empiriquement avec la métrique choisie. Le score Silhouette de K-means est de 0,38. Comme il n’y a pas de valeurs de vérité au sol disponibles, il n’y a aucun moyen de tester cela objectivement de manière évolutive. D’un autre côté, la métrique choisie quantifie bien la façon dont les différents clusters sont différenciés dans l’espace des fonctionnalités.

La solution finale est testée dans une application Web où la valeur de cluster prédite est extraite pour un exemple d’adresse Ethereum.

Compte tenu des performances, il est clair qu’il n’y a pas suffisamment de variance dans les données extraites pour pouvoir créer des clusters interprétables. Lors de l’examen de différents clusters, il n’a pas été possible non plus de trouver un nom significatif pour les clusters.

Justification

Les 0,5 seuils pour le coefficient Silhouette ne sont pas atteints, ce qui signifie que, compte tenu de cette métrique, nous ne pouvons pas décrire les modèles pour avoir une bonne compréhension des données sous-jacentes. Pendant ce temps, l’objectif principal du projet était de construire une solution minimale viable qui puisse ensuite être améliorée.

Les plus gros goulots d’étranglement des performances sont les fonctionnalités qui sont intégrées dans les modèles. Avec une meilleure compréhension du modèle de données sous-jacent, nous pourrions construire un meilleur ensemble de fonctionnalités.

En outre, le prétraitement pourrait être amélioré. En outre, le nombre de clusters a été choisi avec essais et erreurs avec les mêmes valeurs dans tous les algorithmes. Cela pourrait être accéléré en utilisant une analyse plus sophistiquée (analyse Silhouette).

Ce projet montre comment il est possible de configurer relativement rapidement un pipeline d’apprentissage automatique et de le fournir en tant que produit de données dans l’interface utilisateur Web.

Compte tenu de la maturation des industries de la science des données et de la cryptographie, nous verrons lentement un changement où il deviendra plus courant de rapprocher ces technologies d’une manière qui n’était pas possible auparavant.

Avec les services gérés dans le cloud, une grande partie de la complexité est éliminée, ce qui aide les scientifiques des données qui ne sont souvent pas formés en génie logiciel et DevOps / MLOps. En plus de cela, les API de haut niveau peuvent aider les ingénieurs à créer des produits de données qui n’étaient auparavant disponibles que pour les professionnels des données spécialisés. Avec les progrès de ces domaines, nous pouvons voir beaucoup d’apprentissage les uns des autres qui permettra un nouveau paradigme de produits logiciels.

Quelques autres projets travaillant sur des solutions de données cryptographiques:

ShareTweetPin

Related Posts

Bitcoin bull market is back – The Startup
Cryptomonnaie

Le marché haussier du Bitcoin est de retour – Sajjad Hussain

Le marché haussier du Bitcoin est de retour - Sajjad Hussain Après les dizaines de milliers de dollars éphémères début...

Crypto City Zeroing d’Akon sur le Sénégal – Akoin and the Aftermath
Cryptomonnaie

Crypto City Zeroing d’Akon sur le Sénégal – Akoin and the Aftermath

Crypto City Zeroing d'Akon sur le Sénégal - Akoin and the Aftermath

Merkle Trees: de plus en plus en usage – EricB10
Cryptomonnaie

Merkle Trees: de plus en plus en usage – EricB10

Merkle Trees: de plus en plus en usage - EricB10 Ralph C. Merkle ( photo ci-dessus), né en 1952, est...

Analyse du marché Bitcoin – La startup
Cryptomonnaie

Analyse du marché Bitcoin – La startup

Analyse du marché Bitcoin - La startup D'accord, continue. Nous ne parlons pas de ces problèmes de coûts. Comme je...

Next Post
Leçons de 20 ans de Malaysiakini

Leçons de 20 ans de Malaysiakini

Business : Les courses de Nascar pour sauver les sports en direct et sa propre réputation

Les courses de Nascar pour sauver les sports en direct et sa propre réputation

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

  • Accueil
  • Questions & Réponses
  • Science
  • Astuces
  • Business
  • Cryptomonnaie
  • Design
  • Marketing
  • Programmation
  • Politique de confidentialité
  • A propos
  • Contact

© 2018-2020 SupportIVY - Premium Magazine.

No Result
View All Result
  • Accueil
  • Astuces
  • Magazine
    • Conseil en relations
      • Astuces
    • Rédaction & écriture
    • Web Design
    • Réseaux sociaux
      • Facebook
  • Lifestyle
    • Food
  • Ressources
    • Questions & Réponses
    • Graphique
      • PixelArt