J'ai réussi le test d'analyse de données Python, j'ai donc résumé les points

À propos de cet article

J'ai réussi le Test d'analyse des données Python, j'ai donc résumé les points.

1. Rôle de l'ingénieur en analyse de données

Apprentissage supervisé et apprentissage non supervisé

L'apprentissage supervisé est une méthode d'apprentissage qui a une étiquette qui donne la bonne réponse. Les données cibles qui correspondent à l'étiquette correcte sont appelées «variable objective». Les données autres que la variable objectif sont appelées «variable explicative». L'apprentissage supervisé est une méthode d'apprentissage qui prédit la variable objective à l'aide de ** variables explicatives **.

D'autre part, l'apprentissage non supervisé est une méthode d'apprentissage qui n'utilise pas les étiquettes de réponse correctes. Puisqu'il n'y a pas d'étiquette de réponse correcte, cela signifie ** une méthode d'apprentissage sans variable objective **.

Classification et regroupement

La classification de l'apprentissage supervisé ** est clairement définie à l'avance par le nombre de groupes à diviser. Par exemple, si vous souhaitez classer les chiens et les chats, vous les divisez en deux groupes.

D'autre part, le clustering est classé comme apprentissage non supervisé, et le nombre de groupes n'est pas clair ** Peut-être que c'est 3 groupes, peut-être 5 groupes.

Procédure de traitement de l'apprentissage automatique

L'apprentissage automatique est traité de cette manière.

Obtenez des données->Traitement de l'information->Visualisation de données->Sélection d'algorithme->Processus d'apprentissage->Évaluation de la précision->Opération d'essai->Utilisation des résultats (opération de service)

L'apprentissage automatique n'a besoin que de ** données **.

Package d'analyse de données

Les principaux packages pour l'analyse des données sont:

Même si je fais une erreur, je n'utilise pas django. Bien que SciPy soit peu présent dans les livres de référence, il s'agit d'un package utilisé pour l'analyse des données.

2. Python et environnement

commande pip

La commande pip met à jour la bibliothèque installée avec la dernière version en ajoutant l'option -U. Pour installer explicitement la dernière version:

$ pip install -U numpy pandas

Supprimer la chaîne vide

Utilisez la méthode strip pour supprimer les ** caractères vierges gauche et droit **.

in


bird = '   Condor Penguin Duck    '
print("befor strip: {}".format(bird))
print("after strip: {}".format(bird.strip()))

out


befor strip:    Condor Penguin Duck    
after strip: Condor Penguin Duck

module de cornichon

Le ** module pickle ** sérialise les objets Python afin qu'ils puissent être lus et écrits dans des fichiers.

module pathlib

Si vous souhaitez utiliser des chemins en Python, utilisez le ** module pathlib **.

Commande magique

Le bloc-notes Jupyter a une commande appelée ** Magic Command **. Par exemple, «%% timeit» et «% timeit». Les deux sont des commandes qui exécutent le programme plusieurs fois et mesurent le temps d'exécution.

% timeit mesure le temps pour une seule ligne de programme. D'autre part, %% timeit mesure le temps de traitement de la cellule entière.

in


%%timeit
x = np.arange(10000)
fig, ax = plt.subplots()
ax.pie(x, shadow=True)
ax.axis('equal')
plt.show()

out


#La sortie des chiffres est omise
12 s ± 418 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

3. Connaissances de base pour la lecture de formules mathématiques

Écrire en Qiita prend du temps, je vais donc le présenter brièvement. Je pense que c'est une bonne idée de regarder de plus près les graphiques et autres informations pour voir quelles sont les tendances.

Fonction logarithmique

La fonction exprimée par la formule suivante est appelée ** fonction logarithmique **.

f\left( x\right) =\log _{2}x

Distance euclidienne

Il existe la ** distance euclidienne ** comme méthode pour trouver la grandeur scalaire du vecteur, c'est-à-dire pour trouver le nomul.

\left\| x\right\| _{1}=\left| x_{1}\right| +\left| x_{2}\right| +\ldots +\left| x_{n}\right| 

En termes simples, les valeurs absolues de chaque élément du vecteur sont additionnées.

Multiplication matricielle

En multipliant la matrice «m × s» par la matrice «s × n», on obtient la matrice «m × n».

Comme la matrice «m × s» et la matrice «x × n», elle ne peut être multipliée que si le nombre de matrices correspond. De plus, contrairement à la multiplication mathématique, le résultat de la multiplication matricielle change lorsque l'ordre change.

Différenciation du logarithme naturel

$ f \ left (x \ right) = e ^ {x} $ ne change pas même s'il est ** différencié **.

f'\left( x\right) =e^{x}

4.1 NumPy

attribut dtype

Vous pouvez vérifier le ** type de données d'élément ** du tableau NumPy ndarray avec l'attribut dtype. À propos, la méthode de type Python peut vérifier le type (ndarray) du tableau lui-même.

in


a = np.array([1, 2, 3])
print("ndarray dtype: {}".format(a.dtype))
print("ndarray type: {}".format(type(a)))

out


ndarray dtype: int32
ndarray type: <class 'numpy.ndarray'>

Copie et référence

Dans ndarray, l'opération «b = a» est une référence. (Si vous modifiez la valeur de b, la valeur de ** change également **) Si vous opérez b = a.copy (), il sera traité comme une copie. (Changer la valeur de b ne change pas la valeur de ** a)

Si vous découpez une liste standard Python, vous recevrez une ** copie **, mais si vous découpez le résultat dans Numpy, vous recevrez une ** référence **.

Si vous essayez diverses combinaisons, vous obtiendrez une meilleure compréhension.

nan Utilisez np.nan pour déclarer une valeur non numérique dans NumPy.

in


a = np.array([1, np.nan, 3])
print(a)

out


[ 1. nan  3.]

Partitionner la matrice

La fonction vpslit décompose la matrice dans la ** direction de la ligne ** et la fonction hsplit décompose la matrice dans la ** direction de la colonne **.

in


a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
first1, second1 = np.vsplit(a, [2])
first2, second2 = np.hsplit(second1, [2])
print(second2)

out


[[9]]

Valeur moyenne

Utilisez la méthode moyenne pour trouver la valeur moyenne de la matrice.

in


a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
a.mean()

out


5.0

Valeur logique

ndarray est affiché comme Vrai / Faux lorsqu'il est comparé par l'opérateur.

in


a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
a > 4

out


array([[False, False, False],
       [False,  True,  True],
       [ True,  True,  True]])

4.2 Pandas

Spécification du nom d'index / colonne

Utilisez la ** méthode loc / méthode iloc ** pour extraire des données en spécifiant des index et des colonnes à partir du DataFrame.

La méthode loc spécifie l'index et le nom de la colonne ** le nom de l'index et le nom de la colonne **. La méthode iloc spécifie les index et les colonnes par ** position ou plage **.

in


df = pd.DataFrame([[1, 2, 3], [5, 7, 11], [13, 17, 19]])
df.index = ["01", "02", "03"]
df.columns = ["A", "B", "C"]

display(df.loc[["01", "03"], ["A", "C"]])
display(df.iloc[[0, 2], [0, 2]])

image.png

Écriture / lecture de données

Les données sont écrites avec to_xxx et lues avec to_xxx. excel, csv, pickle, etc. sont pris en charge.

in


df.to_excel("FileName.xlsx")
df = pd.read_excel("FineName.xlsx")

Tri des données

Triez les données avec la méthode sort_values. ** Par défaut, le tri est effectué par ordre croissant. ** ** Définissez ʻascending = False` comme argument pour trier par ordre décroissant.

in


df = pd.DataFrame([[1, 2, 3], [5, 7, 11], [13, 17, 19]])
df.index = ["01", "02", "03"]
df.columns = ["A", "B", "C"]

df.sort_values(by="C", ascending=False)

image.png

Encodage à chaud

Vous pouvez convertir en encodage One-hot en utilisant la méthode get_dummies. Le codage à chaud ajoute des ** colonnes ** uniquement pour les types de variables catégorielles.

Tableau de dates

Utilisez la méthode data_range pour obtenir le tableau de dates. Vous pouvez définir des dates ** pour les arguments ** de début et de fin **.

in


dates = pd.date_range(start="2020-01-01", end="2020-12-31")
print(dates)

out


DatetimeIndex(['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04',
               '2020-01-05', '2020-01-06', '2020-01-07', '2020-01-08',
               '2020-01-09', '2020-01-10',
               ...
               '2020-12-22', '2020-12-23', '2020-12-24', '2020-12-25',
               '2020-12-26', '2020-12-27', '2020-12-28', '2020-12-29',
               '2020-12-30', '2020-12-31'],
              dtype='datetime64[ns]', length=366, freq='D')

4.3 Matplotlib

Sous-parcelle

Spécifiez le nombre de sous-tracés à placer dans l'argument de la méthode de sous-tracés. ** Si un seul nombre est utilisé, deux lignes de sous-graphiques sont placées et si ncols est spécifié, deux colonnes de sous-graphiques sont placées **.

in


fig, axes = plt.subplots(2)
display(plt.show())

image.png

in


fig, axes = plt.subplots(ncols=2)
display(plt.show())

image.png

Nuage de points

Le diagramme de dispersion peut être dessiné avec la «méthode de dispersion».

histogramme

L'histogramme peut être dessiné avec la «méthode hist». Vous pouvez spécifier le nombre de bins ** avec l'argument ** bins.

diagramme circulaire

Les graphiques circulaires peuvent être dessinés avec la «méthode pi». Par défaut, il est dessiné ** dans le sens antihoraire ** à partir de la droite.

style

Pour la couleur, vous pouvez spécifier ** le nom de la couleur défini en HTML, X11 ou CSS4 **. Les styles de police peuvent également être ** définis dans un dictionnaire et appliqués collectivement, ou appliqués individuellement **.

4.4 scikit-learn

Modèle de classification

L'ensemble de données du modèle de classification est divisé en ** données d'entraînement ** et ** données de test **. En effet, la ** capacité de généralisation ** du modèle doit être évaluée.

Arbre de décision

L'arbre de décision a une caractéristique que le modèle peut être visualisé et le contenu est facile à comprendre **. Les paramètres doivent être définis par l'utilisateur. Le but de l'arbre de décision est de ** maximiser le gain d'information ** ou de minimiser les ** impurs **. (Les deux ont la même signification)

Réduction de dimension

La réduction de dimension consiste à réduire les dimensions sans endommager autant que possible les données. Par exemple, vous pouvez supprimer les données Y sans importance des données bidimensionnelles X et Y pour en faire des données unidimensionnelles X uniquement.

Courbe ROC et AUC

La courbe ROC est de prédire que toutes les données au-dessus de la probabilité de chaque donnée sont un exemple positif lorsque les données sont disposées par ordre décroissant de probabilité. Lorsque la valeur AUC approche 1, l'échantillon avec une probabilité relativement élevée a tendance à être un exemple positif, et l'échantillon avec une probabilité relativement faible a tendance à être un exemple négatif. En d'autres termes, l'AUC peut comparer la qualité entre les modèles.

Référence / devis

Nouveau manuel d'analyse de données utilisant Python

Recommended Posts

J'ai réussi le test d'analyse de données Python, j'ai donc résumé les points
J'ai réussi l'examen de certification d'ingénieur python, j'ai donc publié la méthode d'étude
[Super basiques de Python] J'ai appris les bases des bases, donc je l'ai résumé brièvement.
J'ai suivi une formation à l'analyse de données Python à distance
Analyse de données python
Comment les données passées dans Curl --data-urlencode doivent-elles être représentées dans les requêtes Python?
Puisque l'extraction des synonymes à l'aide de Word2Vec s'est bien déroulée, j'ai essayé de résumer l'analyse
[Analyse des données] Dois-je acheter le drapeau Harumi?
J'ai réussi le premier test d'implémentation de l'IA [A grade], alors j'ai essayé différentes choses
Analyse de données avec python 2
Présentation de l'analyse de données python
Modèle d'analyse de données Python
Analyse de données avec Python
J'ai essayé de prédire le match de la J League (analyse des données)
[Test d'analyse des données de certification d'ingénieur Python3] Examen / expérience de réussite
Comment étudier le test d'analyse des données de certification d'ingénieur Python 3 par un débutant Python (passé en septembre 2020)
J'ai touché au dernier outil de test automatique "Playwright for Python"
J'ai essayé la même analyse de données avec kaggle notebook (python) et PowerBI en même temps ②
[Python] Notes sur l'analyse des données
[Comprendre au plus court] Principes de base de Python pour l'analyse des données
J'ai essayé la même analyse de données avec kaggle notebook (python) et PowerBI en même temps ①
Notes d'apprentissage sur l'analyse des données Python
J'ai essayé de programmer le test du chi carré en Python et Java.
Python pour l'analyse des données Chapitre 2
[Python] J'ai essayé de collecter des données en utilisant l'API de wikipedia
Analyse de données à l'aide de pandas python
J'ai téléchargé la source python
Python pour l'analyse des données Chapitre 3
J'ai étudié 4 bibliothèques de test d'analyse de données de certification d'ingénieur Python 3
Python: analyse des séries chronologiques: prétraitement des données des séries chronologiques
AtCoder: Python: Papa, l'exemple de test.
Dans la commande python, python pointe vers python3.8
J'ai aimé le tweet avec python. ..
Modèle de prétraitement pour l'analyse des données (Python)
J'ai réussi le premier test d'implémentation de l'IA [A grade], alors j'ai essayé différentes choses
Implémentation python de la classe de régression linéaire bayésienne
Expérience de réussite du test d'analyse des données de la version de novembre 2020
J'ai écrit la file d'attente en Python
Analyse de données à partir de python (visualisation de données 1)
Analyse de données à partir de python (visualisation de données 2)
J'ai écrit la pile en Python
J'étais fatigué de Python, alors j'ai analysé les données avec nehan (lié à Corona, est-ce que ce mot est maintenant?)
Découvrez la partie I «Monnaie multinationale» du livre «Test Driven Development» avec Python
Comme la manipulation du moule Cython était gênante, j'ai résumé les points auxquels je faisais attention
J'ai essayé l'analyse de données IRMf avec python (Introduction au décodage des informations cérébrales)
Outil de visualisation Python pour le travail d'analyse de données
Ecrire le test dans la docstring python
Générer des données de test japonais avec Python Faker
La structure des dossiers de Flask est résumée
J'ai essayé l'analyse factorielle avec des données Titanic!
J'ai essayé de sauvegarder les données récupérées au format CSV!
Le modèle de projet Python auquel je pense.
Analyse de données à partir de python (pré-traitement des données-apprentissage automatique)
[Python débutant] J'ai rassemblé les articles que j'ai écrits
J'ai touché à l'outil de préparation de données Paxata
Préparation à l'examen d'analyse de données certifié Python 3 Engineer
J'ai essayé le framework de test Python Tornado
python setup.py tester le code en utilisant le multiprocessus
Tester si les données observées suivent la distribution de Poisson (Test de l'adéquation de la distribution de Poisson par Python)