[Daily Look] Résumer et résumer les questions d'entretien d'analyse de données

Orientation des questions

Les écritures face à face que j'ai vues jusqu'à présent peuvent être résumées en cinq parties :

  1. Connaissance de la théorie statistique
  2. logique de la pensée commerciale
  3. apprentissage automatique, exploration de données, outils
  4. Programmation algorithmique, SQL
  5. autre

Vous pouvez vous référer au lien . Bien sûr, il y en a encore que j'ajoute ici à partir du compte rendu officiel et de mon propre résumé des questions. À partir de maintenant, je mettrai à jour certaines connaissances tous les jours, et commencerai à ajouter des connaissances liées à mon expérience de projet et à mes recherches, et développerai un bonne habitude d'enregistrer, tout comme le titre [Lecture quotidienne] dans le livre, vous pouvez vraiment le lire quotidiennement, hebdomadairement, mensuellement, avant l'interview, et oublier de le lire.
Autres liens de référence dans cet article : lien ;

Connaissance de la théorie statistique

Statistiques descriptives:

  1. Tendance centrale : moyenne, médiane et quantiles, mode
  2. Tendance décentrée : écart-type, variance
  3. Distribution des données : asymétrie et kurtosis, distribution normale et trois distributions majeures
  4. Théorie de l'échantillonnage : erreur d'échantillonnage, précision de l'échantillonnage

Statistiques inférentielles : théorème central limite, loi des grands nombres, intervalle de confiance, test d'hypothèse, test t, test f, test du chi carré, ABtest, etc.

  • La formule bayésienne reformule et explique les scénarios d'application

P(A|B) = P(B|A)*P(A) / P(B) Si vous recherchez une correction d'erreur de requête, laissez A être le mot correct et B le mot d'entrée, alors : P(A| B
) Indique la probabilité que le mot d'entrée B soit réellement A. P(B|A) indique la probabilité que le mot A soit mal tapé en tant que B. Il peut être calculé en fonction de la similarité de AB (telle que la distance d'édition). P (A) est la fréquence du
mot A, qui peut être obtenue statistiquement P(B) est le même pour tous les candidats A, il peut donc être omis

  • Estimation des paramètres :

Utilisez des exemples de statistiques pour estimer les paramètres de la population. Elle est divisée en deux parties : l'estimation ponctuelle et l'estimation par intervalle. lien .

  • essai hypothétique :

L'estimation des paramètres et le test d'hypothèses sont deux composants de l'inférence statistique. Ils utilisent tous deux des échantillons pour faire certaines inférences sur la population, mais les angles d'inférence sont différents.
L'estimation des paramètres traite de la méthode d'estimation d'un paramètre de population à l'aide d'un échantillon, et le paramètre de population μ est inconnu avant l'estimation.
Dans les tests d'hypothèses, une hypothèse est d'abord avancée pour la valeur de μ, puis les informations de l'échantillon sont utilisées pour tester si l'hypothèse est vraie.
lien .

  • Le taux de clics des garçons augmente, le taux de clics des filles augmente, pourquoi cette baisse globale ?

Parce que le taux de clics des hommes et des femmes peut être assez différent, et dans le même temps, la proportion de groupes à faible taux de clics augmente.
Par exemple, s'il y a 20 hommes, 1 clic ; 100 femmes, 99 clics, et que le taux de clics total est de 100/120.
Maintenant il y a 100 hommes, 6 personnes cliquent ; 20 femmes, 20 personnes cliquent, le taux de clic total est de 26/120.
C'est-à-dire la blague "La personne avec le QI le plus bas du département A va au département B et augmente en même temps le QI moyen du département A et du département B."

  • niveau de confiance, intervalle de confiance

L'intervalle de confiance est la plage de la variable que nous avons calculée et le niveau de confiance est le degré de confiance que la valeur existe dans la plage que nous avons calculée.
Par exemple, il existe une certitude à 95 % que la vraie valeur se situe dans la plage que nous avons calculée. Ici, 95 % est le niveau de confiance et la plage calculée est l'intervalle de confiance. Si le niveau de confiance est de 95 %,
100 échantillons sont tirés pour estimer la moyenne de la population.Parmi les 100 intervalles construits par 100 échantillons, environ 95 intervalles contiennent la moyenne de la population. lien

  • théorème central limite

La définition du théorème central limite :
(1) La valeur moyenne de tout échantillon sera approximativement égale à la valeur moyenne de sa population.
(2) Indépendamment de la distribution de la population, la moyenne de l'échantillon de toute population entourera la moyenne de la population et sera normalement distribuée.
Fonctions du théorème central limite :
(1) Lorsqu'il n'y a aucun moyen d'obtenir toutes les données de la population, nous pouvons utiliser des échantillons pour estimer la population.
(2) Selon la moyenne et l'écart type de la population, on juge si un échantillon appartient à la population.
lien

  • Définition du test A/B, principe, objectif, processus, connaissances statistiques.

Les deux schémas de conception A et B sont respectivement présentés à deux groupes d'utilisateurs (l'échantillon est suffisamment grand et suffisamment représentatif). Trouvez le meilleur à travers le résultat final. Essentiellement une expérience multivariée qui permet de tester simultanément plusieurs points de test.
Indépendance, points clés : objectifs de test clairs, deux solutions testées A/B, afficher une base d'utilisateurs aussi large que possible. Prenez des décisions de scénario rapides.
Objectif : peut être utilisé pour démontrer l'impact des nouvelles fonctionnalités sur les modifications de l'expérience utilisateur.
Processus : identifiez les objectifs, créez des variantes, générez des hypothèses, collectez des données, exécutez des expériences, analysez les résultats. (Parfois, il peut ne pas être possible d'utiliser l'analyse pour expliquer les résultats du test, et vous ne devez pas oublier d'explorer les raisons)
Connaissances statistiques : noyau : test d'hypothèse.

  • La différence et le lien entre la covariance et le coefficient de corrélation.

Covariance : La covariance représente l'erreur de la population de deux variables, qui est différente de la variance qui représente l'erreur d'une seule variable.
Si la tendance des deux variables est cohérente, c'est-à-dire si l'une d'entre elles est supérieure à sa valeur attendue et l'autre supérieure à sa propre valeur attendue, alors la covariance entre les deux variables est positive.
Si deux variables ont des tendances opposées, c'est-à-dire que l'une d'entre elles est supérieure à sa valeur attendue et l'autre est inférieure à sa propre valeur attendue, alors la covariance entre les deux variables est négative.
Coefficient de corrélation :
La quantité de corrélation linéaire entre les variables de recherche, la plage de valeurs est [-1,1]. Le coefficient de corrélation peut également être vu comme une covariance : une covariance spéciale qui supprime l'influence de deux variables et est standardisée.
Veuillez vous référer au lien

  • La signification de la valeur p.

Il n'y a que trois principes de base :
1. Une proposition ne peut être que falsifiée, mais on ne peut pas prouver qu'elle est vraie.
2. Dans une observation, un événement à faible probabilité ne peut pas se produire.
3. Dans une observation, si un événement à faible probabilité se produit, c'est une proposition hypothétique La logique de la fausse
preuve est : je veux prouver que la proposition est vraie -> prouver que la proposition négative de la proposition est fausse -> sous l'hypothèse de la proposition négative, observer qu'un événement de faible probabilité se produit - > la proposition négative est renversée -> la proposition originale est vraie -> Fait.
Combiné avec cet exemple : prouver que A est un lanceur qualifié - « prouver que la proposition « A n'est pas un lanceur qualifié » est fausse - « observer un événement (tel que A frapper 10 anneaux 10 fois de suite), et cet événement est dans "A n'est pas Sous l'hypothèse d'un "lanceur qualifié", la probabilité est p, inférieure à 0,05 -> un événement à faible probabilité se produit et la proposition non est annulée.
On peut voir que plus p est petit - "l'événement a moins de chances de se produire -" la proposition négative a plus de chances d'être renversée - "la proposition originale est plus crédiblelink

  • Comprendre Bayes naïf

Compréhension : Naïf Bayes est une méthode basée sur les résultats de la probabilité a priori connue
Autre : Naïf signifie que les événements sont supposés indépendants les uns des autres

logique de la pensée commerciale

En apprenant du contenu de la communauté 'Tout le monde est chef de produit', du growth hacking, etc., vous devez au moins connaître divers indicateurs tels que Pv, Uv et DAU, comment désassembler des indicateurs, comment faire une analyse de trafic, une analyse de rétention , et analyse du comportement des utilisateurs. Qu'est-ce que c'est ? Modèle pirate, modèle RFM, comment analyser la baisse/hausse d'un certain indicateur, etc.

  • Analyse de l'attrition des utilisateurs, quelle est la différence entre l'attrition des nouveaux utilisateurs et l'attrition des anciens utilisateurs ?

(1) Analyse de l'attrition des utilisateurs :
modèle à deux niveaux : subdivisez les utilisateurs, les produits et les canaux pour voir où les utilisateurs sont perdus. Notez qu'étant donné qu'il s'agit d'un problème de désabonnement des utilisateurs, lorsque vous subdivisez les utilisateurs ici, vous pouvez subdiviser à quelle étape du cycle de vie de l'utilisateur ils se trouvent.
Démontage de l'indicateur : Nombre d'utilisateurs perdus = Nombre d'utilisateurs dans ce groupe * Taux de résiliation. Démantèlement, pour voir si c'est parce que le nombre d'utilisateurs à ce stade a augmenté (par exemple, la plupart des utilisateurs ont atteint la période de récession), ou si le taux de désabonnement de ce groupe d'utilisateurs est relativement élevé. , problèmes majeurs dans les services de produits,
faible qualité des activités, manque de méthodes de fidélisation, faible participation des utilisateurs,
etc. b. Externes : marché, concurrents, environnement social, vacances, etc. (2) Quelle est la différence entre la perte de nouveaux utilisateurs et la perte d'anciens utilisateurs :
nouveaux utilisateurs Churn : les raisons peuvent être des utilisateurs non ciblés (churn rigide), des produits qui ne répondent pas aux besoins (churn naturel), des difficultés à démarrer avec le produit (churn frustré) et l'impact des produits concurrents (attrition du marché ).
Les nouveaux utilisateurs doivent déterminer comment identifier les utilisateurs perdus avec moins de support de données, prévenir la perte d'utilisateurs à l'avance et comment récupérer de nouveaux utilisateurs effectifs.
Perte d'anciens utilisateurs : les raisons peuvent inclure l'atteinte de la période de déclin du cycle de vie de l'utilisateur (perte naturelle), une augmentation excessive de l'ARPU conduit à l'expulsion des utilisateurs bas de gamme (perte rigide), l'évaporation sociale est difficile à répondre aux besoins des premiers utilisateurs. utilisateurs (perte frustrée) et l'impact des produits concurrents (perte de marché) ).
Les anciens utilisateurs ont plus de données et il est plus facile d'identifier les utilisateurs perdus. Il est plus important d'éviter la perte d'utilisateurs. Lorsque l'utilisateur est perdu, il est nécessaire de considérer la valeur résiduelle du cycle de vie de l'utilisateur et s'il est nécessaire de le restaurer.
lien .

  • Question scénario métier, comment analyser le problème de la baisse du taux de rétention le lendemain
  1. Le modèle à deux niveaux
    est subdivisé du point de vue des portraits d'utilisateurs, des canaux, des produits et des liens comportementaux, et il est clair où le taux de rétention du lendemain a chuté
  2. Indicateur taux de rétention du démantèlement le lendemain = Σ Nombre de rétentions le lendemain / Nombre de clients acquis aujourd'hui
  3. Analyse des causes
    Interne : activités opérationnelles, modifications de produits, défaillances techniques, lacunes de conception (telles que la création de conceptions pouvant être utilisées pour gifler la laine) Externe
     : préférences concurrentes des utilisateurs de produits, événements sociaux pendant les vacances (telles que la génération de l'opinion publique)
  • Quelle est l'idée générale lorsqu'il s'agit d'exigences, avec des exemples

Clarifier les exigences,
quel est le but du côté de la demande,
démonter la tâche
, formuler un plan exécutable
, favoriser
l'acceptation

  • Mesures du trafic du site Web

Taux d'exposition
Pages vues (PV)
visiteurs uniques (UV)
visiteurs récurrents (RV)
utilisateurs actifs quotidiens (DAU)
PV, UV taux de clics
saut, achèvement, taux de rachat

apprentissage automatique, exploration de données, outils

Comprendre le contexte de l'application, les avantages et les inconvénients (le plus important) de chaque algorithme. Dérivation de formule commune familière. Généralement, ce que vous devez maîtriser est la régression logistique, le SVM, l'arbre de décision, la forêt aléatoire, Adboost, XGboost et d'autres réseaux d'apprentissage et de neurones intégrés.

  • Quelles sont les bibliothèques Python couramment utilisées ?

numpy : opération matricielle
sklearn : bibliothèque d'outils d'apprentissage automatique et d'exploration de données couramment utilisée
scipy : calculs mathématiques efficaces basés sur numpy, tels que l'intégration, l'algèbre linéaire, la matrice creuse, etc.
pandas : exploiter les données sous forme de tableaux
matplotlib : outil de visualisation de données
seaborn : outil de visualisation de données
keras/tensorflow/theano : boîte à outils d'apprentissage en profondeur
NLTK : boîte à outils de traitement du langage naturel
beautifulsoap : outil d'analyse de documents Web

  • Principe de l'algorithme K-Means :

Dans le cas d'une valeur K donnée et de K points centraux de cluster initiaux, chaque point (c'est-à-dire un enregistrement de données) est divisé dans le cluster représenté par le point central de cluster le plus proche. Une fois tous les points attribués, recalculez le point central du regrouper en fonction de tous les points d'un cluster (en prenant la valeur moyenne), puis effectuer de manière itérative les étapes d'attribution des points et de mise à jour du point central du cluster jusqu'à ce que le changement du point central du cluster soit petit ou atteigne le nombre spécifié d'itérations.

  • Quels sont les processus de prétraitement des données ?

Traitement des valeurs manquantes : suppression, interpolation
Traitement des valeurs aberrantes Conversion des caractéristiques : représentation du sinus des caractéristiques temporelles Normalisation
 : normalisation maximale et minimale, normalisation z, etc.
20 mots dans le texte, 30 000 mots dans le texte b, et la fréquence de chaque dimension dans le texte b est susceptible d'être beaucoup plus élevée que celle dans le texte a. Discrétisation : onehot,
binning, etc.

  • ACP (Analyse en Composantes Principales) :

L'analyse en composantes principales est une méthode de réduction de la dimensionnalité.
L'idée est de transformer l'échantillon de l'espace des caractéristiques d'origine vers le nouvel espace des caractéristiques, et la variance de projection de l'échantillon sur l'axe des coordonnées du nouvel espace des caractéristiques est aussi grande que possible, afin qu'il puisse couvrir les caractéristiques les plus importantes de l'échantillon. Méthode d'information : a.
Normalisation des caractéristiques b. Trouver la matrice de covariance A des caractéristiques de l'échantillon c. Trouver la valeur propre et le vecteur propre de A, c'est-à-dire AX=λX d.
Arranger les valeurs propres de grand à petit, sélectionnez topK, le correspondant Le vecteur propre est le nouvel axe de coordonnées (expliqué par la théorie de la variance maximale, reportez-vous à : lien ) PCA
peut également être considéré comme un auto-encodeur dont la fonction d'activation est une fonction linéaire ( reportez-vous à la leçon 13 de la "Fondation de l'apprentissage automatique" de Lin Xuantian, apprentissage en profondeur)

  • ruche?étincelle?sql? pnl?

Hive vous permet d'utiliser des instructions de type SQL pour effectuer des opérations telles que la lecture, l'écriture et la gestion sur des clusters Hadoop.
Spark est un environnement informatique de cluster open source similaire à Hadoop. Il met en cache des ensembles de données dans des plates-formes informatiques à mémoire distribuée, et chaque itération ne ne nécessite pas de lecture L'opération d'E/S consistant à récupérer le disque, réduisant ainsi le temps d'itération en un seul tour.

  • Commandes de base Linux :

Opérations sur les répertoires : ls, cd, mkdir, find, locate, whereis, etc.
Opérations sur les fichiers : mv, cp, rm, touch, cat, more, less
Opérations sur les autorisations : chmod+rwx421
Opérations sur les comptes : su, whoami, last, who, w, id, groupes, etc.
Vérifier le système : historique, top
Shutdown restart : shutdown, reboot
Vim operation : i, w, w!, q, q!, wq, etc.

  • La différence entre null et ' ' en sql :

Null signifie vide, utilisez null pour juger
' ' signifie une chaîne vide, utilisez ='' pour juger

  • Différence entre base de données et entrepôt de données.

Une compréhension simple de l'entrepôt de données est que plusieurs bases de données sont organisées d'une manière. La base de données met l'accent sur les paradigmes pour réduire autant que possible la redondance. L'entrepôt de données met l'accent sur la vitesse d'
analyse des requêtes et optimise les opérations de lecture. L'objectif principal est d'interroger rapidement une grande quantité de données. L'entrepôt de données écrit régulièrement Entrez de nouvelles données, mais n'écrasez pas les données d'origine, mais ajoutez des étiquettes d'horodatage aux données.
La base de données adopte le stockage en ligne et l'entrepôt de données adopte généralement
le stockage en colonne. La base de données est orientée transaction et stocke les données de transaction en ligne. Les
deux éléments de base de l'entrepôt de données sont les tables de dimensions et les tables de faits.

  • Type de données SQL.

Chaîne : char, varchar, texte
Chaîne binaire : binaire, varbinary
Type booléen : booléen Type
numérique : entier, petit entier, grand entier, décimal, numérique, flottant, réel, double
Type d'heure : date, heure, horodatage, intervalle

  • Qu'est-ce que l'analyse de cluster ? Quels sont les algorithmes de clustering ? Veuillez en choisir un et décrire en détail son principe de calcul et ses étapes.

L'analyse de cluster est une méthode d'apprentissage non supervisée qui classe des échantillons relativement homogènes dans un cluster selon certaines conditions.
Les méthodes de regroupement comprennent principalement :
a. Regroupement hiérarchique
b. Regroupement par division : kmeans
c. Regroupement de densité
d. Regroupement de grille
e. Regroupement de modèles : le modèle de mélange gaussien
k-means est mieux introduit, sélectionnez k points pour commencer Comme le centre du cluster, puis le les points restants sont divisés en classes en fonction de la distance ; trouver le nouveau centre de classe ; réaffecter les points ; itérer jusqu'à ce que la condition de convergence ou le nombre d'itérations soit atteint.
L'avantage est qu'il est rapide ; l'inconvénient est que k doit être spécifié en premier, et il est très sensible aux valeurs aberrantes.

  • Regroupement spectral :

Le clustering spectral est une méthode de clustering basée sur la théorie des graphes. L'idée principale est de considérer toutes les données comme des points dans l'espace, et ces points peuvent être reliés par des arêtes. La valeur de poids de bord entre deux points éloignés (ou de faible similarité) est faible, et la valeur de poids de bord entre deux points proches (ou de forte similarité) est élevée, par tous Le graphique composé de points de données est coupé, donc que la somme des poids de bord entre différents sous-graphes est aussi faible que possible après que le graphe est coupé, et que la somme des poids de bord dans le sous-graphe est aussi élevée que possible, de manière à atteindre l'objectif de regroupement. lien .

  • Comment éviter le sur-ajustement ?

Le surajustement montre que l'erreur sur les données d'apprentissage est très faible, mais l'erreur sur les données de test augmente à la place. La raison en est généralement que le modèle est trop complexe pour s'adapter trop au bruit et aux valeurs aberrantes des données. Une solution courante est la régularisation : augmentation du jeu de données, régularisation, validation croisée.

  • Expliquez ce qu'est la régularisation et pourquoi est-elle utile ?

La régularisation est le processus d'ajout de paramètres d'ajustement au modèle afin d'éviter le surajustement et d'augmenter la fluidité.
Habituellement, cela se fait en ajoutant un multiple constant au vecteur de poids existant . Cette constante est généralement L1 (Lasso) ou L2 (crête), mais elle peut prendre n'importe quelle forme.
Dans le modèle modifié, la fonction de perte dérivée de l'ensemble d'apprentissage régularisé devrait être minimisée en moyenne.

  • Expliquez ce qu'est le filtrage collaboratif ?

Le filtrage collaboratif est un algorithme simple permettant de créer des systèmes de recommandation basés sur les données de comportement des utilisateurs. Le composant le plus important du filtrage collaboratif est l'intérêt des utilisateurs pour les éléments.
Un bon exemple de filtrage collaboratif est un module similaire à "recommandé pour vous" qui apparaît sur un site Web d'achat. Ce module obtient généralement les informations de l'historique de navigation de l'utilisateur pour faire apparaître les produits que l'utilisateur peut aimer ou dont il a besoin.

  • Qu'est-ce qu'un moteur de recommandation ? Comment ça marche?

Nous connaissons tous les systèmes de recommandation de Netflix, ces systèmes sont appelés moteurs de recommandation ou plus largement systèmes de recommandation. Ils génèrent généralement des recommandations de deux manières : le filtrage collaboratif ou le filtrage basé sur le contenu. Les algorithmes de filtrage collaboratif sont basés sur le comportement passé des utilisateurs (auparavant articles achetés
, visionnage de films, notes, etc.) pour créer un modèle permettant de prendre des décisions concernant les utilisateurs actuels ou d'autres utilisateurs. Le modèle est utilisé pour prédire les éléments susceptibles d'intéresser les utilisateurs (notes d'éléments). Les méthodes de filtrage basées sur le contenu utilisent une fonctionnalité d'élément pour
recommander des éléments supplémentaires avec des attributs similaires. Ces méthodes sont souvent combinées dans des systèmes de recommandation hybrides.

  • Comment éviter le surajustement de l'arbre de décision

Limiter la profondeur de l'arbre
Élagage
Limiter le nombre de nœuds feuilles
Éléments de régularisation
Augmenter
l'ensachage des données (sous-échantillon, sous-entité, projection spatiale à faible dimension)
amélioration des données (ajouter des données avec des impuretés)
arrêt précoce

  • Avantages et inconvénients du SVM

Avantages : Peut être appliqué à des situations non linéairement séparables.
La classification finale est déterminée par les vecteurs de support. La complexité dépend du nombre de vecteurs de support plutôt que de la dimension de l'espace d'échantillonnage, évitant le désastre de la dimensionnalité. Robustesse : parce que
seulement un petit nombre de vecteurs de support sont utilisés, Saisir les échantillons clés et éliminer les échantillons redondants
Bonnes performances dans des conditions de grande dimension et d'échantillon faible, telles que la classification de texte
Inconvénients : complexité élevée de la formation du modèle
Difficile à adapter aux problèmes
de sélection de la fonction du noyau

  • Que faire si des données sont manquantes

Supprimer des échantillons ou supprimer des champs
Remplir avec la médiane, la moyenne, le mode, etc.
Imputation : imputation moyenne similaire, imputation multiple, estimation du maximum de vraisemblance
Construire un modèle avec d'autres champs, prédire la valeur de ce champ et remplir les valeurs manquantes (Remarque : Si ce champ est également utilisé comme une caractéristique dans le modèle de prédiction, alors la façon de remplir les valeurs manquantes avec d'autres champs de modélisation n'introduit pas de nouvelles informations dans le modèle de prédiction final) onehot, la valeur manquante est également considérée comme une compression de
valeur
Perception et complétion de matrice

  • Comment gérer les valeurs manquantes dans le nettoyage des données ?
    En raison d'erreurs d'enquête, de codage et de saisie, il peut y avoir des valeurs invalides et manquantes dans les données, qui doivent être traitées de manière appropriée. Les méthodes de traitement couramment utilisées sont : l'estimation, la suppression de cas entiers, la suppression de variables et la suppression par paires.

Estimation.
Pour ce faire, le moyen le plus simple consiste à remplacer les valeurs non valides et manquantes par la moyenne, la médiane ou le mode de l'échantillon d'une variable. Cette méthode est simple, mais elle ne tient pas entièrement compte des informations existantes dans les données, et l'erreur peut être importante. Une autre méthode consiste à estimer par le biais d'une analyse de corrélation ou d'une inférence logique entre les variables en fonction des réponses des répondants à d'autres questions. Par exemple, la propriété d'un certain produit peut être liée au revenu du ménage, et la possibilité de posséder ce produit peut être estimée sur la base du revenu du ménage des répondants à l'enquête.
La suppression par cas consiste à éliminer les échantillons avec des valeurs manquantes.
Étant donné que de nombreux questionnaires peuvent avoir des valeurs manquantes, le résultat de cette approche peut conduire à une réduction significative de la taille effective de l'échantillon et à l'incapacité d'utiliser pleinement les données collectées. Par conséquent, il ne convient que dans les cas où des variables clés sont manquantes ou dans lesquelles la proportion d'échantillons contenant des valeurs non valides ou manquantes est faible.
Suppression variable.
Si une variable a de nombreuses valeurs invalides et manquantes, et que la variable n'est pas particulièrement importante pour la question à l'étude, il peut être envisagé de supprimer la variable. Cette approche réduit le nombre de variables utilisées dans l'analyse sans modifier la taille de l'échantillon.
La suppression par paire consiste à utiliser un code spécial (généralement 9, 99, 999, etc.) pour représenter les valeurs non valides et manquantes, tout en conservant toutes les variables et tous les échantillons de l'ensemble de données. Cependant, seuls les échantillons avec des réponses complètes sont utilisés dans des calculs spécifiques, de sorte que différentes analyses ont des tailles d'échantillon effectives différentes en raison des différentes variables impliquées. Il s'agit d'une approche conservatrice qui préserve autant d'informations que possible dans l'ensemble de données.

Programmation algorithmique, SQL

  • Compter le nombre d'enseignants qui enseignent plusieurs cours et produire les statistiques du nombre de cours enseignés par chaque enseignant

Laissez les champs de la classe de table être id, enseignant, cours

  1. Compter le nombre d'enseignants qui enseignent plusieurs cours
select count(*) from class
group by teacher having count(*) > 1
  1. Sortir les statistiques du nombre de cours enseignés par chaque enseignant
select teacher, count(course) as count_course
from class
group by teacher
  • Quatre personnes élisent un chevalier, comptent les votes et sortent le vrai nom du chevalier
select knight from table
group by vote_knight
order by count(vote_knight) limit 1
  • Il existe une table de base de données, Tourists, qui enregistre le nombre de visiteurs quotidiens d'un site pittoresque en juillet comme suit : id date visites 1 2017-07-01 100... Par coïncidence, le champ id est juste égal au nombre dans le date. Veuillez maintenant filtrer les dates de plus de 100 jours pendant trois jours consécutifs. La sortie de l'exemple ci-dessus est : date 2017-07-01 ...
select t1.date
from Tourists as t1, Tourists as t2, Tourists as t3
on t1.id = (t2.id+1) and t2.id = (t3.id+1)
where t1.visits >100 and t2.visits>100 and t3.visits>100
  • Table des employés, table des dortoirs, table des départements et compter le nombre de personnes dans chaque département du dortoir. Supposons
     :
    la table des employés est l'employé, le champ est l'identifiant, le nom de l'employé, l'identifiant_du_dortoir_appartenir, l'identifiant_du_département ; la
    table du dortoir est le dortoir, le champ est l'identifiant, le numéro_du_dortoir ;
    la table du département est le département, les champs sont id, nom_du_département
select dormitory_number, department_name, count(employee_name) as count_employee
from employee as e
left join dormitory as dor on e.belong_dormitory_id = dor.id
left join department as dep on e.belong_department_id = dep.id
  • La différence entre count(*), count(1) et count(column_name)
  1. count(*) compte toutes les lignes, y compris les lignes dont la valeur est nulle.
  2. count(column) compte le nombre de lignes dans la colonne spécifiée et supprime les lignes dont la valeur est NULL.
  3. count(1) a le même effet que count(*).
  • Trouvez l'augmentation de salaire de tous les employés depuis leur arrivée, donnez le numéro d'employé emp_no et sa croissance d'augmentation de salaire correspondante, et triez-les par ordre croissant en fonction de la croissance (Remarque : il peut y avoir des employés avec des enregistrements dans la table des employés et la table des salaires, avec
    les les numéros d'employés et les enregistrements d'augmentation de salaire, mais ont démissionné, le dernier to_date de la table des salaires des employés démissionnaires !='9999-01-01', ces données ne seront pas affichées dans les résultats de la recherche) CREATE TABLE ( int(11
    ) employeesNOT
    emp_noNULL ,
    birth_datedate NOT NULL,
    first_namevarchar(14) NOT NULL,
    last_namevarchar(16) NOT NULL,
    genderchar(1) NOT NULL,
    hire_datedate NOT NULL comment 'Heure d'entrée',
    PRIMARY KEY ( emp_no));
    CREATE TABLE salaries(
    emp_noint(11) NOT NULL ,
    salaryint (11) NOT NULL,
    from_datedate NOT NULL commentaire 'heure de début d'un enregistrement de salaire',
    to_datedate NOT NULL commentaire 'heure de fin d'un enregistrement de salaire',
    PRIMARY KEY ( emp_no, from_date));

1. Découvrez le salaire actuel de chaque employé
2. Découvrez le salaire de chaque employé au moment de l'entrée
3. Combinez pour connaître la croissance

select e.emp_no, s_cur.salary - s_str.salary as growth
from employees as e 
inner join salaries as s_cur on e.emp_no = s_cur.emp_no
and s_cur.to_date='9999-01-01'
inner join salaries as s_str on e.emp_no = s_str.emp_no
and e.hire_date = s_str.from_date
order by growth asc
  • Le salaire actuel (to_date='9999-01-01') de tous les employés est classé en fonction du salaire selon 1-N, le même salaire est mis en parallèle et classé par ordre croissant de emp_no CREATE TABLE ( int(11)
    NOT salariesNULL
    emp_no,
    salaryint(11) NOT NULL,
    from_datedate NOT NULL,
    to_datedate NOT NULL,
    PRIMARY KEY ( emp_no, from_date));
    insérez la description de l'image ici

1. Effectuez une analyse comparative à partir de deux tables de salaires identiques (respectivement s1 et s2), définissez d'abord les conditions limites des deux tables comme to_date = '9999-01-01', et sélectionnez les salaires de tous les employés actuels.
2. L'essence de cette question est que s1.salary <= s2.salary, ce qui signifie que dans le cas de la sortie de s1.salary, combien de s2.salaries sont supérieurs ou égaux à s1.salary, par exemple, lorsque s1 .salary=94409, il y a 3 s2.salary (respectivement 94692, 94409, 94409) qui lui est supérieur ou égal, mais comme 94409 est répété, utilisez COUNT (DISTINCT s2.salary) pour dédupliquer, et le rang du salaire 94409 est égal à 2. Et ainsi de suite pour le reste du classement.
3. N'oubliez pas GROUP BY s1.emp_no, sinon il n'y aura qu'un seul enregistrement de sortie (il peut s'agir du premier ou du dernier enregistrement, selon les différentes bases de données), car la fonction d'agrégation COUNT() est utilisée 4. Enfin, démarrez
avec s1.salary est organisé dans l'ordre inverse, puis les résultats de sortie sont organisés dans l'ordre de s1.emp_no

select s1.emp_no, s1.salary, count(distinct s2.salary) as rank 
from salaries as s1, salaries as s2
where s1.to_date='9999-01-01'
and s2.to_date='9999-01-01'
and s1.salary <= s2.salary
group by s1.emp_no
order by s1.salary desc, s1.emp_no asc

  • Obtenir le salaire actuel de tous les employés non-cadres, donner dept_no, emp_no et salaire, signifie actuellement to_date='9999-01-01'
    CREATE TABLE dept_emp(
    emp_noint(11) NOT NULL,
    dept_nochar(4) NOT NULL,
    from_datedate NOT NULL,
    to_datedate NON NULL,
    CLÉ PRIMAIRE ( emp_no, dept_no) );
    CRÉER TABLE dept_manager(
    dept_nochar(4) NON NULL,
    emp_noint (11) NON NULL,
    from_datedate NON NULL,
    to_datedate NON NULL,
    CLÉ PRIMAIRE ( emp_no, dept_no) );
    CRÉER TABLE employees(
    emp_noint (11) NOT NULL,
    birth_datedate NOT NULL,
    first_namevarchar(14) NOT NULL,
    last_namevarchar(16) NOT NULL,
    genderchar(1) NOT NULL,
    hire_datedate NOT NULL,
    PRIMARY KEY ( emp_no));
    CREATE TABLE salaries(
    emp_noint(11) NOT NULL,
    salaryint(11) NOT NULL,
    from_datedate NOT NULL,
    to_datedate NOT NULL,
    PRIMARY KEY ( emp_no, from_date));

Il n'est pas égal à une référence spécifique, mais pas dans correspond à plusieurs valeurs
1. Utilisez d'abord INNER JOIN pour connecter les employés et les salaires pour connaître le salaire actuel de tous les employés
2. Utilisez ensuite INNER JOIN pour connecter la table dept_emp pour trouver tous les employés du service 3. Enfin, utilisez la condition de restriction de.emp_no NOT IN (SELECT emp_no FROM dept_manager WHERE to_date = '9999-01-01') pour sélectionner tous les employés actuels non managers, puis affichez dept_no, emp_no, salaire en séquence

select d.dept_no, s.emp_no, s.salary
from (employees as e inner join salaries as s
      on e.emp_no = s.emp_no
      and s.to_date='9999-01-01')
inner join dept_emp as d
on e.emp_no = d.emp_no
where d.emp_no not in 
    (select dm.emp_no 
     from dept_manager as dm 
     where dm.to_date='9999-01-01')
  • Obtenez les informations pertinentes indiquant que le salaire actuel de l'employé est supérieur au salaire actuel du responsable. Actuellement, to_date='9999-01-01', la première colonne du
    résultat donne le numéro d'emploi de l'employé et
    la deuxième colonne donne le manager_no du manager
    . Les trois colonnes donnent le salaire actuel de l'employé emp_salary, et
    la quatrième colonne donne le salaire actuel du manager correspondant manager_salary
    CREATE TABLE dept_emp(
    emp_noint(11) NOT NULL,
    dept_nochar(4) NOT NULL,
    from_datedate NOT NULL,
    to_datedate NON NULL,
    CLÉ PRIMAIRE ( emp_no, dept_no) );
    CRÉER TABLE dept_manager(
    dept_nochar(4) NON NULL,
    emp_noint (11) NON NULL,
    from_datedate NON NULL,
    to_datedate NON NULL,
    CLÉ PRIMAIRE ( emp_no, dept_no) );
    CRÉER TABLE salaries(
    emp_noint (11) NOT NULL,
    salaryint( 11) NOT NULL,
    from_datedate NOT NULL,
    to_datedate NOT NULL,
    PRIMARY KEY (emp_no, from_date));

Dans ce cas de figure, le plus important est d'apprendre à scinder, diviser les requêtes complexes en requêtes simples, et enfin les combiner ensemble, c'est l'idée de séparation et de combinaison.
Découvrez d'abord le numéro de poste et le salaire de l'employé :
puis recherchez le numéro de poste et le salaire du responsable :
c'est ensuite la combinaison, regardez les conditions et faites un bon travail de connexion des conditions :

select de.emp_no, dm.emp_no as manager_no, s_emp.salary as emp_salary, s_manager.salary as manager_salary
from dept_emp as de ,salaries as s_emp, dept_manager as dm, salaries as s_manager
where de.emp_no = s_emp.emp_no
and de.to_date='9999-01-01'
and s_emp.to_date='9999-01-01'
and dm.emp_no = s_manager.emp_no
and dm.to_date='9999-01-01'
and s_manager.to_date='9999-01-01'
and de.dept_no = dm.dept_no
and s_emp.salary > s_manager.salary
  • Donnez le numéro d'employé emp_no, la date de début du changement de salaire from_date et la valeur de la croissance du salaire de chaque employé dont l'augmentation annuelle du salaire dépasse 5000, et organisez-les dans l'ordre inverse en fonction de la croissance du salaire.
    Astuce : La fonction année correspondant à datetime time dans sqlite est strftime('%Y', to_date)
    CREATE TABLE salaries(
    emp_noint(11) NOT NULL,
    salaryint(11) NOT NULL,
    from_datedate NOT NULL,
    to_datedate NOT NULL,
    PRIMARY KEY ( emp_no, from_date));
select s1.emp_no, s2.from_date, (s2.salary - s1.salary) as salary_growth
from salaries as s1, salaries as s2
where s1.emp_no = s2.emp_no
and s2.salary - s1.salary >5000
and strftime('%Y', s2.to_date) - strftime('%Y', s1.to_date)=1
order by salary_growth desc

autre

  • principe hadoop et principe mapreduce
  1. Le principe de Hadoop
    utilise HDFS pour stocker les fichiers de manière distribuée, MapReduce pour décomposer et calculer, et d'autres sont omis en premier
  2. Principe de MapReduce
    : lisez les fichiers dans HDFS, analysez-les sous la forme <k, v>, et partitionnez <k, v> (une zone par défaut), mettez la valeur du même k dans une étape de réduction définie : Copiez
    le sortie de la carte vers différents nœuds de réduction, et les nœuds fusionnent et trient la sortie de la carte

おすすめ

転載: blog.csdn.net/weixin_43835470/article/details/106343512