Je suis allé à "L'été bat son plein! Spark + Python + Data Science Festival".

http://connpass.com/event/34680/

Comme d'habitude, j'ai participé au milieu de la session, j'ai donc oublié le & macbook et pris des notes sur mon iPhone dès le milieu de la première annonce, donc je trouve que le japonais n'est pas pratique.

Ibis: des pandas étonnants L'analyse des données à grande échelle est facile

M. Yasuaki Ariga (@chezou) de Cloudera

http://www.slideshare.net/Cloudera_jp/ibis-pandas-summerds

Démo avec le notebook Jupyter

Scikit-learn sort après la création des données des enseignants

Comparé à PySpark

spark-sklearn

pip install ibis-framework Peut être installé avec

Si vous souhaitez utiliser Impala, vous devez utiliser le directeur de Cloudera.

Introduction du système de recommandation dans Ameba

M. Haruka Naito, cyber agent

Aperçu du système de recommandation

Les trois types de systèmes de recommandation suivants sont utilisés dans Ameba

Utilisation du système de recommandation

Aperçu

  1. Journal d'activité vers hadoop
  2. Envoyez le résultat de la recommandation à hbase
  1. Rétroaction du résultat de la recommandation imp / clk etc.

Item to Item collaborative filtering

Co-filtrage basé sur l'utilisateur

Basé sur l'évaluation des utilisateurs proches les uns des autres

Base d'article

Basé sur l'évaluation des utilisateurs basée sur la distance entre les éléments La précision peut être obtenue même si l'élément est moins évalué

Similitude cosinus

Divisez le nombre de cooccurrences (nombre d'utilisateurs en double) par la somme des racines carrées des éléments

Ingéniosité pour chaque cas

Rester simple

Attribuer à chaque travailleur à l'aide de variables de diffusion. Cela élimine le besoin de jointures compliquées

Je souhaite limiter les résultats des recommandations à de nouveaux

Créez un ensemble d'éléments (filtre) à l'avance et filtrez les résultats

Réglage des performances et automatisation du moteur de recommandation à l'aide de Spark

M. Nagato Kasaki, laboratoire DMM.com

Histoire d'opération après avoir fait

Vue d'ensemble du système d'utilisation Spark

Utilisation de Spark à partir de février 2015.

13 à 168 cas avec 3 ingénieurs J'ai pu le gérer car il était automatisé

Les ressources sont environ 1,5 fois 230CPU / 580 Go à 360CPU / 900 Go

Temps de 3h à 4h

Automatisation de l'installation

Puisqu'il existe de nombreux services, il est facile de commencer à utiliser de nouveaux services.

Lorsque vous souhaitez ajouter un service

  1. Rédigez une recette
  2. Exécutez le test selon la recette jenkins
  1. Performance en mise en scène
  2. Mise en production

Étant donné que le rapport entre le nombre d'utilisateurs et le nombre d'éléments varie considérablement en fonction du service, un réglage est également nécessaire individuellement.

Le sens de l'échelle est de 1 million d'utilisateurs ou 4 millions de produits

Nous avons une matrice d'articles pour tous les services → Des recommandations entre services seront également possibles

Classement

Deux types d'algorithmes sont utilisés correctement

  1. Mise en forme des données avec Hive
  2. Calcul des recommandations uniquement dans Spark
  1. Sortie vers DB avec Sqoop

La recette définit les réglages des paramètres pour hive, spark et sqoop dans JSON.

Un réglage de précision est en fait mis en place et testé A / B (il existe des formules d'évaluation académiques, mais il y a certaines choses qui ne peuvent être comprises sans essayer). Les performances sont faciles à comprendre et les problèmes, alors réglez à l'avance

  1. À la recherche d'un goulot d'étranglement
  2. Éliminer le biais des données

La division des données échoue parfois en raison de la loi de 20:80 (dans de nombreux cas, même si elle est divisée, elle est biaisée) Si vous pouvez bien le diviser, il sera raccourci de 3 heures à 3 minutes


(Montage ci-dessous)

Cadre LT

les débutants d'étincelles étaient accros aux recommandations

Épuisement du disque lors de la soumission toutes les 15 minutes le pot est copié Soumettre en recréant le cluster

Petit nombre de partitions lors du chargement à partir de BigQuery l'exécuteur ne peut pas être utilisé Le repartitionnement est important

Non recommandé Il y a trop d'utilisateurs pour obtenir des produits directs Traités ensemble dans un ensemble d'utilisateurs

Réglage des performances du moteur de recommandation à l'aide de Spark

visualisation dag Voyons voir

Si non distribué, distribuez Ne pas mélanger avec une grande quantité de données

Rdd utilisé plusieurs fois est mis en cache

Option de ne pas sérialiser en cas de goulot d'étranglement du processeur

KryoSerializer est deux fois plus rapide

Recommended Posts

Je suis allé à "L'été bat son plein! Spark + Python + Data Science Festival".
Compagnon de science des données en python, comment spécifier des éléments dans les pandas
J'ai essayé d'implémenter PLSA en Python
[Bases de la science des données] J'ai essayé d'enregistrer de csv à mysql avec python
J'ai essayé d'implémenter la permutation en Python
J'ai essayé d'implémenter PLSA dans Python 2
J'ai essayé la "Practical Python Data Science" d'Udemy
J'ai essayé d'implémenter ADALINE en Python
Je voulais résoudre ABC159 avec Python
J'ai essayé d'implémenter PPO en Python
Comment utiliser is et == en Python
Livres sur la science des données à lire en 2020
Le programme Python est lent! Je veux accélérer! Dans ce cas ...
Je veux faire le test de Dunnett en Python
Python: j'ai pu récurer en lambda
Je veux créer une fenêtre avec Python
J'ai écrit "Introduction à la vérification des effets" en Python
J'ai essayé d'obtenir des données CloudWatch avec Python
Je veux fusionner des dictionnaires imbriqués en Python
J'ai essayé d'implémenter TOPIC MODEL en Python
J'ai essayé d'implémenter le tri sélectif en python
Je veux afficher la progression en Python!
Je souhaite utiliser une source de données python dans Re: Dash pour obtenir les résultats de la requête.
[Impression] [Analyse de données à partir de zéro] Introduction à la science des données Python apprise dans des analyses de rentabilisation
[First data science ⑥] J'ai essayé de visualiser le prix du marché des restaurants à Tokyo
Je veux écrire en Python! (1) Vérification du format de code
J'ai essayé de représenter graphiquement les packages installés en Python
Je souhaite intégrer une variable dans une chaîne Python
Je veux facilement implémenter le délai d'expiration en python
Résumé des outils nécessaires pour analyser les données en Python
[Petite histoire] En Python, i = i + 1 est légèrement plus rapide que i + = 1.
Je veux écrire en Python! (2) Écrivons un test
Même avec JavaScript, je veux voir Python `range ()`!
J'ai essayé d'implémenter un pseudo pachislot en Python
Je veux échantillonner au hasard un fichier avec Python
J'ai essayé d'implémenter le poker de Drakue en Python
J'étais accro au grattage avec Selenium (+ Python) en 2020
Je veux travailler avec un robot en python.
J'ai essayé d'implémenter GA (algorithme génétique) en Python
Je veux écrire en Python! (3) Utiliser des simulacres
J'ai essayé de résumer comment utiliser les pandas de python
Python: peut être répété en lambda
Je veux dire qu'il y a un prétraitement des données ~
Je veux utiliser le jeu de données R avec python
Je veux faire quelque chose avec Python à la fin
Je veux manipuler des chaînes dans Kotlin comme Python!
Je veux pouvoir analyser des données avec Python (partie 3)
Je veux initialiser si la valeur est vide (python)
Comment tester cette exception est déclenchée dans python unittest
J'ai essayé de créer une API list.csv avec Python à partir de swagger.yaml
J'ai essayé de créer diverses "données factices" avec Python faker
J'ai essayé d'implémenter un automate cellulaire unidimensionnel en Python
Je veux pouvoir analyser des données avec Python (partie 1)
Je veux faire quelque chose comme sort uniq en Python
Différentes façons de calculer la similitude entre les données avec python
Je veux pouvoir analyser des données avec Python (partie 4)
Je veux pouvoir analyser des données avec Python (partie 2)
J'ai essayé "Comment obtenir une méthode décorée en Python"
J'ai essayé d'implémenter la fonction d'envoi de courrier en Python