(Peut-être) Test d'analyse des données de certification d'ingénieur Python 3 que vous pouvez passer par lui-même

Modifier l'historique

2020.8.11 Je partagerai le lien de la feuille de calcul car le tableau est difficile à voir.

introduction

Cet article résume vos connaissances sur l'examen d'analyse des données de certification d'ingénieur Python 3, qui a débuté le 8 juin 2020. Nous organisons les informations issues des examens simulés de Prime Strategy et de diverses pages Web. Le terme «manuel» dans l'article fait référence aux livres suivants, qui sont les principaux matériels pédagogiques.

Matériel pédagogique principal: Sorti le 19 septembre 2018 (2678 yens TTC) "Un nouveau manuel pour l'analyse des données en utilisant Python" (Shoshusha) Auteurs: Manabu Terada, Shingo Tsuji, Takanori Suzuki, Shintaro Fukushima (titres omis)

Plage de questions et distribution des questions

Plage de questions Nombre de questions Distribution des questions
1 Rôle de l'ingénieur de données 2 5.00%
2 Python et environnement
1 Construction de l'environnement d'exécution 1 2.50%
2 Les bases de Python 3 7.50%
3 Jupyter Notebook 1 2.50%
3 Bases des mathématiques
1 Connaissances de base pour lire des formules mathématiques 1 2.50%
2 algèbre linéaire 2 5.00%
3 Analyse de base 1 2.50%
4 Probabilité et statistiques 2 5.00%
4 Pratique d'analyse par bibliothèque
1 NumPy 6 15.00%
2 pandas 7 17.50%
3 Matplotlib 6 15.00%
4 scikit-learn 8 20%

Méthode d'apprentissage

  1. Lisez le matériel pédagogique principal et copiez
  2. Résolvez le test simulé de Prime Strategy et triez les points que vous ne comprenez pas.
  3. Résolvez le "[Python 3 Engineer Certification Data Analysis Test PyQ Quest Support] de PyQ](https://docs.pyq.jp/column/python_exam_pydata.html)"

Organiser les connaissances selon l'éventail des questions

Principaux éléments Sous-élément Aperçu Détails référence
2 Python et environnement pip La commande pip est un utilitaire qui installe les packages Python publiés dans l'index des packages Python. Utilisez la commande pip install pour installer le package.
À propos de l'option U de pip

Ex.)
pip install -U numpy pandas
La commande pip est-En ajoutant l'option U, la bibliothèque installée sera mise à jour avec la dernière version.

Pour installer explicitement la dernière version:
PEP8 PEP8 est une norme de codage standard. Plusieurs importations sont autorisées pour le même module, mais si les modules sont différents, un saut de ligne se produit. [Convention de codage Python]Lire PEP8- Qiita https://qiita.com/simonritchie/items/bb06a7521ae6560738a7
Niveau de journal Il existe cinq niveaux de journalisation en python.



1. CRITICAL

2. ERROR

3. WARNING

4. INFO

5. DEBUG
Module pratique Le module pickle peut sérialiser des objets Python afin qu'ils puissent être lus et écrits dans des fichiers. Il existe des valeurs booléennes, des nombres, des chaînes de caractères, etc. qui peuvent être picklés.

Le module pathlib est utile pour travailler avec les chemins de fichiers. Nom de fichier générique dans la méthode glob(*)Il peut également être spécifié avec.
ravel et flatten sont des fonctions qui rendent un tableau unidimensionnel. effilochage()Renvoie les vues autant que possible, mais aplatit()Renvoie toujours une copie. remodeler()Reval également()Renvoie les vues autant que possible. Si vous affectez un tableau à une autre variable, la variable affectée fait référence au tableau d'origine. Si vous souhaitez le créer en tant qu'objet séparé, copiez()Ou copie profonde()utilisation.

* Ravel et aplatir de numpy sont des fonctions qui rendent un tableau unidimensionnel. effilochage()Renvoie les vues autant que possible, mais aplatit()Renvoie toujours une copie. remodeler()Reval également()Renvoie les vues autant que possible.
Lire et écrire des données La lecture de données à partir d'un fichier binaire renvoie un descripteur de fichier avec l'option b de la méthode open et lit()Lire et écrire avec()Écrire avec
méthode de bande

Ex.)
bird = ' Condor Penguin Duck '

print("befor strip: {}".format(bird))

print("after strip: {}".format(bird.strip()))
Les caractères vides aux deux extrémités sont supprimés.
Expressions régulières

.Toute seule lettre a.c abc, acc, aac

^Le début de la ligne^abc abcdef

Fin de ligne abc defabc

Répéter 0 fois ou plus ab a, ab, abb, abbb

+Répétez une ou plusieurs fois ab+ ab, abb, abbb

?0 fois ou 1 fois ab? a, ab

{m}Répéter m fois une{3} aaa

{m,n}Répétez m ~ n fois{2, 4} aa, aaa, aaaa

[★]★ N'importe quel personnage[a-c] a, b, c

★★ Tout a b a, b
Séquence spéciale d'expression régulière

\d nombre arbitraire[0-9]

\D Autre que n'importe quel nombre[^0-9]

\est n'importe quel caractère blanc[\t\n\r\f\v]

\S Tout caractère non vide[^\t\n\r\f\v]

\w Tout alphanumérique[a-xA-Z0-9_]

\W Tout non alphanumérique[\a-xA-Z0-9_]

\Un début de chaîne^

\Fin de la chaîne Z$
Expressions régulières

find() / findall()→ Renvoie une liste d'une ou de toutes les sous-chaînes correspondantes
match()→ Vérifiez si le début de la chaîne de caractères correspond
fullmatch()→ Vérifiez si toute la chaîne de caractères correspond
search()→ Vérifiez si cela correspond, pas seulement au début. Utilisé lorsque vous souhaitez extraire une partie d'une chaîne de caractères
replace()→ Remplacer la chaîne de caractères
sub()→ Remplacer la chaîne de caractères。置換された文字列が返される。
subn()→ Chaîne de caractères remplacée (sous)()(Identique à la valeur de retour de) et le nombre de pièces remplacées (le nombre correspondant au modèle) sont renvoyés.


match/la recherche renvoie un objet de correspondance. Les méthodes suivantes peuvent être utilisées pour les objets de correspondance.

Obtenez la position correspondante: start(), end(), span()
Obtenez la chaîne correspondante: group()
Obtenez la chaîne pour chaque groupe: groups()

* Met entre parenthèses la partie du modèle d'expression régulière dans la chaîne de caractères()Si vous l'entourez, cette partie est traitée comme un groupe. En ce moment, les groupes()Vous pouvez obtenir la chaîne de caractères de la partie qui correspond à chaque groupe sous forme de taple.

sub est des parenthèses()Lors du regroupement avec, la chaîne de caractères correspondante peut être utilisée dans la chaîne de caractères remplacée.
Par défaut\1, \2, \3...Mais chacun est le premier(), La deuxième(), Troisième()...Correspond à la partie qui correspond. S'il s'agit d'une chaîne normale qui n'est pas une chaîne brute'\1'comme\Notez que vous devez vous échapper. Du modèle d'expression régulière()Au début de?PEt donnez un nom au groupe,\Pas un nombre comme 1\gcomme名前を使って指定できる。
re.search("category/(.+?)/", "https://foo.com/category/books/murakami").group(1)
#Chaîne de caractères obtenue:'books'

>>> text = "123456abcedf789ghi"
>>> matchobj = re.search(r'[a-z]+', text)
>>> if matchobj:
... print(matchobj.group())
... print(matchobj.start())
... print(matchobj.end())
... print(matchobj.span())
※re.Notez que la recherche ne peut récupérer les informations que pour la première chaîne correspondante.

replace est la chaîne de caractères cible.replace(Chaîne de caractères à remplacer,Chaîne de caractères à remplacer[,Nombre de remplacements])Grammaire.
>>> raw_abc = r"aaaaabbbbbccccc"
>>> rep_raw_abc = raw_abc.replace("c", "C")
>>> print("Changer avant:",raw_abc, "Après le changement:",rep_raw_abc)
Changer avant: aaaaabbbbbccccc Après le changement: aaaaabbbbbCCCCC

re.sub(Expressions régulières,Chaîne de caractères à remplacer, Chaîne de caractères à remplacer [,Nombre de remplacements])Notez la différence entre et replace.
【Python】とっても便利なExpressions régulières! - Qiita https://qiita.com/hiroyuki_mrp/items/29e87bf5fe46de62983c
Indicateur d'expression régulière

Limité aux caractères ASCII: re.ASCII
Insensible à la casse: re.IGNORECASE
Faites correspondre le début et la fin de chaque ligne: re.MULTILINE
Spécifiez plusieurs indicateurs
Compilation de modèles

p = re.compile(r'([a-z]+)@([a-z]+).com')
m = p.match(s)
result = p.sub('new-address', s)
Environnement virtuel venv peut isoler les modules à installer pour chaque environnement virtuel. Utilisez pyenv ou Anaconda pour basculer l'interpréteur Python. https://tinyurl.com/y4ypsz9r
%, %%Est une commande magique.
!Exécutez la commande OS shell avec.
Shit +Afficher docstring avec Tab.
Comment utiliser la commande magique (fonction magique) de Jupyter Notebook https://miyukimedaka.com/2019/07/28/blog-0083-jupyter-notebook-magic-command-explanation/
Commandes magiques fréquemment utilisées

%time: Mesure le temps d'exécution du code qui suit et affiche le résultat.
%timeit: mesure le temps d'exécution du code suivant plusieurs fois et affiche le résultat et la moyenne les plus rapides.
%env: vous pouvez obtenir et définir des variables d'environnement.
%who: affiche les variables actuellement déclarées.
%whos: affiche les variables actuellement déclarées, leurs types et leur contenu.
%pwd: affiche le répertoire actuel.
%historique: affiche une liste des historiques d'exécution des cellules de code.
%ls: affiche une liste de fichiers dans le répertoire actuel.
%matplotlib inline: Si vous dessinez un graphe avec pyplot etc., une autre fenêtre s'ouvrira et le résultat y sera affiché, mais si vous utilisez cette commande magique, le graphe sera affiché dans le notebook.

%%timeit:%Appliquez la fonctionnalité timeit à tout le code de la cellule.

%%html, %%HTML: vous permet d'écrire et d'exécuter du code html.
Format de stockage des notebooks Jupyter format de cahier(.ipynb)Est un fichier JSON
3 Bases des mathématiques queue "Loi de change: ×", "Loi de couplage: ○", "Loi de distribution: ○"

La loi des changes ne tient pas toujours (notez que certains le font).

1 ligne / 1 colonne est un vecteur.

Si le nombre de colonnes dans la matrice et la taille du vecteur sont les mêmes, alors ces multiplications peuvent être définies et le résultat est un vecteur de la même taille que le nombre de lignes dans la matrice d'origine.
Journal régulier et journal naturel Un journal commun est un journal avec une base de 10. Le logarithme naturel est basé sur e.
Distance euclidienne distance directe
Distance de Manhattan Distance en zigzag (dérivée de la grille de Manhattan)
Fonction F(x)Différencier f(x)Quand, F est appelée la fonction primitive de f et f est appelée la dérivée de F.
L'intégration Une intégrale dont la plage d'intégration n'est pas définie est appelée intégrale indéfinie. L'intégration indéfinie inclut généralement la constante d'intégration «C» car elle devient 0 lorsqu'une constante arbitraire est différenciée.
Différenciation et intégration La différenciation peut être considérée comme une pente et l'intégration peut être considérée comme une aire. Dans l'analyse des données et l'apprentissage automatique, le point où la pente de la fonction est 0 est utilisé comme information utile.
Différenciation partielle La différenciation d'une fonction multivariée avec deux ou plusieurs variables est appelée différenciation partielle. En différenciation partielle, il est nécessaire d'indiquer quelle variable a été utilisée pour la différenciation.
Établi La valeur attendue des dés à 12 faces est de 6.Cinq. Pour les variables stochastiques, fonction de masse discrète → stochastique, fonction de densité continue → stochastique
0ème étage! 0!=Notez que c'est 1. Rappelez-vous également que le logarithmique de 1 est 0.
péché et cos sin/cos sont appelés respectivement sinus et cosinus. le bronzage est une connexion directe.
4 Pratique d'analyse par bibliothèque Numpy attribut dtype Vous pouvez vérifier le type de données de l'élément de ndarray.
Moyen pratique de générer ndarray

# -0 de 5 à 5.Définir un tableau de nombres à 1 étape
x = np.arange(-5, 5, 0.1)

#Génère une chaîne de différences égales de 1 à 10 pour le nombre d'éléments spécifié par num
np.linspace(1, 10)
np.linspace(start, stop, num=50, endpoint=True)Généré avec la grammaire de. num spécifie le nombre d'éléments. num est 50 par défaut.
np.module aléatoire Notez que np n'inclut pas la valeur spécifiée pour stop par rapport au module standard.


random.random() / np.random.rand(size)Génère un nombre aléatoire de 0 à 1.

import numpy as np
import random

print(random.random())
# 0.9733563537374995

print(np.random.rand(3))
# [ 0.69962497 0.61950126 0.7944733 ]

print(np.random.rand(2, 3))
# [[ 0.29315148 0.06560949 0.56110618]
# [ 0.62784039 0.19218867 0.07087768]]

np.random.randn(size)Est un générateur de nombres aléatoires qui suit une distribution normale standard.
print(np.random.randn(3, 3)) #Baie 3x3 avec distribution normale standard
# [[-0.52434526 0.16597271 -2.22295048]
# [ 0.46995083 -0.64576356 -2.73155503]
# [ 1.04575168 0.05712791 -0.46522963]]

Si vous souhaitez générer des nombres aléatoires qui suivent une distribution normale, procédez comme suit.
np.random.normal(mu, sd, 10000)

Lors de la génération d'un nombre aléatoire entier
random.randint(low, high, size)

np.random.randint(1, 10, 2) #Génère deux ndarrays avec des entiers compris entre 1 et moins de 10.
np.random.randint(1, 10, (2, 3)  #Générez un ndarray 2 par 3.
np.random.randint(2, size=8) #Si high est omis, la valeur de low est considérée comme élevée.
# array([1, 0, 0, 0, 1, 1, 1, 0])
np.random.randint(1, size=8) #Seuls les entiers inférieurs à 1, c'est-à-dire 0.
# array([0, 0, 0, 0, 0, 0, 0, 0])

choich présente les différences suivantes par rapport au module standard.
random.choice(seq)Sélectionnez-en un parmi la suite
np.random.choice(a)Sélectionnez plusieurs parmi

seq1=[0、1、2、3]

random.choice(seq1) #1 choix d'heure

random.choice("hello") #1 choix de personnage parmi 5 personnages

np.random.choice(seq1, 4) #Arrangement choisi 4 fois avec duplication

np.random.choice([2, 4, 6],2)  #Arrangement choisi deux fois avec duplication

np.random.choice([0, 1], (3, 3)) #0 en taille3 × 3 tableau,Remplissez 1

np.random.choice(5, 2) #np.randint(0, 5, 2)Synonyme de
Comment utiliser NumPy (12) Aléatoire, aléatoire-Journal de stratégie python de Remrin http://python-remrin.hatenadiary.jp/entry/2017/04/26/233717
Conversion en un tableau unidimensionnel Vous pouvez utiliser les méthodes d'augmentation ou d'aplatissement pour convertir un tableau NumPy bidimensionnel en tableau unidimensionnel. La méthode ravel renvoie une référence et la méthode flatten renvoie une copie.
Copie et référence

a = np.array([1, 2, 3])
b = a ①
b = a.copy() ②
① est une référence et ② est une copie. Notez que le découpage de la liste standard Python passe une copie, mais les tranches Numpy passent une référence.
Partitionner la matrice

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)
La fonction vpslit décompose la matrice dans le sens de la ligne et la fonction hsplit décompose la matrice dans le sens de la colonne.
À propos de l'affichage de la déclaration d'impression

import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([7,8,9])
print(a[-1:, [1,2]], b.shape)
[5 6]

a est un[-1:, [1,2]]Et la dernière ligne ([4,5,6)[1,2]Donc 5,Extrait 6 Notez que b est unidimensionnel car il a une parenthèse.
np.Nombre d'éléments générés par arange x = np.arange(0.0, 1.5, 0.1)Puis tableau([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. , 1.1, 1.2, 1.3, 1.4])15 pièces. Si le centre est 15, c'est 10 fois cela, donc 150. np.sin(x)Est traité par la méthode du degré d'arc radian.
pandas Tableau de dates

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

print(dates)
date_range()Générez un tableau de dates avec. Vous pouvez spécifier la date et l'heure de début et de fin avec le début et la fin.
Jointure DataFrame

Mise en relation:Connectez le contenu des données dans une certaine direction telle quelle. pd.concat, DataFrame.append

Joindre:Connectez le contenu des données en les associant à la valeur d'une clé. pd.merge, DataFrame.join
pd.concat([df1, df2])は縦方向のJoindre、横方向にJoindreしたい場合はaxis=1をつける。何も指定しないと完全外部Joindreになるため、内部Joindreにしたいならjoin=Fixez l'intérieur. joindre_axes=[df1.index]のようにJoindre行/列を指定することも可能。

Simple df1 dans le sens vertical.append(df2)としてMise en relationすることもできる。df2の箇所をSeriesにすると行追加。ignore_index=Notez que si vous ne spécifiez pas True, l'index sera lié tel quel.

Joindreはmergeによっておこなう。文法はpd.merge(left, right, on='key', how='inner').. comment est intérieur/left/right/outerを指定可能。複数のkeyでJoindreする際はonにリストを渡す。indexをキーとしてJoindreしたい場合はDataFrame.joinが便利。規定は左外部Joindreとなるがhowで変更可能(left.join(right, how='inner'))。
Python pandas 図でみる データMise en relation / Joindre処理 - StatsFragments http://sinhrks.hatenablog.com/entry/2015/01/28/073327
read_html() S'il y a plusieurs tables, obtenez-les sous forme de liste de DataFrames
Traitement de la valeur manquante fillna()Méthode des arguments= 'ffill', method = 'bfill'Vous pouvez stocker différentes valeurs dans la même colonne pour l'élément manquant. méthode= 'ffill'Si, la valeur stockée dans l'élément avec le plus petit indice, méthode= 'bfill'Si, la valeur manquante est remplie avec la valeur stockée dans l'élément avec un grand indice.

data['Age'].fillna(20) #Remplissez les valeurs manquantes dans la colonne Âge avec 20 ans

data['Age'].fillna(data['Age'].mean()) #Remplissez les valeurs manquantes dans la colonne Age avec la valeur moyenne de Age

data['Age'].fillna(data['Age'].median()) #Remplissez les valeurs manquantes dans la colonne Age avec la valeur médiane de Age

data['Age'].fillna(data['Age'].mode()) #Remplissez les valeurs manquantes dans la colonne Âge avec les valeurs les plus fréquentes dans Âge
Gestion des valeurs manquantes avec Pandas- Qiita https://qiita.com/0NE_shoT_/items/8db6d909e8b48adcb203
Conversion mutuelle entre Numpy et Pandas La conversion pandas → numpy est l'attribut values de DataFrame, et l'inverse est pd en ndarray..DataFrame()Il peut être converti en l'utilisant comme argument de.
Les noms d'index et les noms de colonne ne sont pas conservés lors de la conversion en numpy.
pd.describe() décrire est la moyenne, l'écart type, le maximum pour chaque colonne/Vous pouvez obtenir les valeurs minimales et les plus fréquentes. std est l'écart type. top est la valeur la plus fréquente. https://tinyurl.com/y3gn3dz4
Comment utiliser groupby et Grouper

import numpy as np
import pandas as pd
np.random.seed(123)
dates = pd.date_range(start="2017-04-01", periods=365)
df = pd.DataFrame(np.random.randint(1, 31, 365), index=dates, columns=["rand"])
df_year = pd.DataFrame(df.groupby(pd.Grouper(freq='W-SAT')).sum(), columns=["rand"])
Le groupeur peut être groupé de manière flexible en spécifiant la fréquence avec freq.

* La 5ème ligne crée un DataFrame qui utilise la date comme index. Chaque valeur de la colonne rand est un entier aléatoire de 1 à 30.
Matplotlib Style MATLAB et style POO (orienté objet) Le premier a un code plus court, mais vous ne pouvez pas le spécifier en détail. Fondamentalement, ce dernier devrait être utilisé.

Les utilisateurs n'ont pas besoin de préparer des figures ou des axes pour créer un seul graphique. Ces objets sont générés automatiquement.
Génération d'objets de dessin et d'objets de sous-tracé

fig, axes = plt.subplots(2)
Comme indiqué sur la gauche, les figures et les axes peuvent être générés à la fois. figure.add_subplot()Il est également possible de générer des sous-parcelles individuellement pour les figues avec.

■fig,Lors de la fabrication d'une hache individuellement
#Créer une zone pour placer les axes

fig = plt.figure(facecolor = "lightgray")

#Ajouter des axes à la figure

ax = fig.add_subplot(111)

subplots(2)Ensuite, le sous-graphique est de 2 lignes, ncol=Si vous aimez 2, vous aurez deux lignes.
Comment organiser plusieurs sous-parcelles

ax_1 = fig.add_subplot(221)
ax_2 = fig.add_subplot(222)
ax_3 = fig.add_subplot(223)

#Tracer les données dans les axes de la ligne 3 et de la colonne 2

ax[2, 1].plot(x, y)
pyplot.subplots()Vous pouvez utiliser pour créer plusieurs objets Axes à la fois. Passez respectivement les numéros de ligne et de colonne des axes au premier argument nrows et au deuxième argument ncols. [Matplotlib]Https de style POO et MATLAB://python.atelierkobato.com/matplotlib/
Réglage de l'axe

#Paramètres des axes

ax.grid() #Afficher la grille

ax.set_title("Axes sample", fontsize=14) #Montrer le titre

ax.set_xlim([-5, 5]) #plage de l'axe des x

ax.set_ylim([-5, 5]) #plage de l'axe y
Formatage de l'objet Figure

#Création et mise en forme d'objets Figure

fig = plt.figure(



#Taille

figsize = (5, 5),



#La couleur de remplissage

facecolor = "lightgray",



#Affichage de la bordure

frameon = True,



#Couleur de la bordure

edgecolor = "black",



#Épaisseur de la bordure

linewidth = 4)
#Haches sur la figure(Sous-parcelle)Ajouter

ax = fig.add_subplot(



#Nombre de lignes et de colonnes, nombre d'axes

111,



#La couleur de remplissage

facecolor = "lightgreen",



#Plage de l'axe X et de l'axe y

xlim = [-4,4], ylim = [0,40])
Afficher le graphique

plt.show()
Affichez le graphique avec la méthode show.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
x = [1, 2, 3]
y1 = [10, 2, 3]
y2 = [5, 3, 6]
labels = ['Setosa', 'Versicolor', 'Virginica']
ax.bar(x, y_total, tick_label=labels, label='y1')
ax.bar(x, y2, label='y2')
ax.legend()
plt.show()
Notez que y1 n'est pas utilisé comme variable
import numpy as np

import matplotlib.pyplot as plt

np.random.seed(123)

mu = 100

sigma = 15

x = np.random.normal(mu, sigma, 1000)

fig, ax = plt.subplots()

n, bins, patches = ax.hist(x, bins=25, orientation='horizontal')

for i, num in enumerate(n):

print('{:.2f} - {:.2f} {}'.format(bins[i], bins[i + 1], num))



plt.show()
La valeur par défaut des chutiers est 10. Voir le manuel P192. Bins en tant que valeur de retour est une valeur limite et le nombre de bins + 1.

La variable mu signifie la valeur moyenne et la variable sigma signifie l'écart type.
L'histogramme est dessiné horizontalement.
"N" qui stocke la valeur de retour de la méthode hist, bins,Parmi les «patches», «bins» contient les valeurs des limites de casier, et le nombre est 26.
Lorsque ce script est exécuté, la table de distribution de fréquence est sortie en plus de l'histogramme.

La partie de l'instruction d'impression sur la gauche est l'affichage de la table de distribution de fréquence.
51.53 - 55.62 2.0

55.62 - 59.70 3.0

59.70 - 63.78 6.0

63.78 - 67.86 7.0

67.86 - 71.94 16.0

71.94 - 76.02 29.0

76.02 - 80.11 37.0
Affichage du graphique circulaire Voir le manuel P198. Pour maintenir le ratio cul, hache.axis('equal')Et. autopct peut afficher chaque valeur en%. La surbrillance est explosée.

Exemple: plt.pie(x, labels=label, counterclock=False, startangle=90)Dessinez directement au-dessus dans le sens des aiguilles d'une montre
https://tinyurl.com/yyl8yml6
Scikit-learn DBSCAN La méthode DBSCAN, qui est l'un des apprentissages non supervisés, est un algorithme de clustering basé sur la densité, qui se concentre sur la distance entre les vecteurs de quantité d'entités.
Échelle d'évaluation de la classification

Precision(Taux de conformité)
Recall(Rappel)
F1 Score
Accuracy(Taux de réponse correct)
Précision et rappel sont dans une relation de compromis. Par conséquent, il est conseillé de consulter également l'indice F1 Score.

Un exemple de diagnostic de cancer courant est
Précision → Accentuation lorsque vous souhaitez réduire les erreurs de diagnostic
Rappel → Accentuation lorsque vous voulez éviter d'oublier le bon exemple
Précision → Index général de vérification de l'exactitude de la classification
Pratique de l'apprentissage automatique (apprentissage supervisé: classification)- KIKAGAKU https://www.kikagaku.ai/tutorial/basic_of_machine_learning/learn/machine_learning_classification
Échelle d'évaluation du modèle de régression MSE (erreur quadratique moyenne), RMSE (erreur quadratique moyenne), MAE (erreur absolue moyenne) sont célèbres. https://tinyurl.com/y2xc9c58
https://tinyurl.com/y5k8gc9a
Signification des différentes erreurs (RMSE, MAE, etc.)-Mathématiques apprises avec des exemples concrets https://mathwords.net/rmsemae#:~:text=MAE%EF%BC%88Mean%20Absolute%20Error%EF%BC%89,-%E3%83%BB%E5%AE%9A%E7%BE%A9%E5%BC%8F%E3%81%AF&text=%E3%83%BB%E5%B9%B3%E5%9D%87%E7%B5%B6%E5%AF%BE%E8%AA%A4%E5%B7%AE%E3%81%A8%E3%82%82%E8%A8%80%E3%81%84,%E3%81%A8%E3%81%97%E3%81%A6%E6%89%B1%E3%81%86%E5%82%BE%E5%90%91%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82
Scikit-Ensemble de données joint pour apprendre

load_iris
load_boston
iris enregistre la longueur et la largeur de 150 iris «gaku» et «pétales», ainsi que le type de fleur. Variable explicative 4, variable objective 1. boston est un ensemble de données qui enregistre 14 caractéristiques et prix des logements, y compris le nombre de crimes par habitant et le nombre moyen de chambres dans une résidence, par région à la périphérie de Boston, aux États-Unis.
Arbre de décision

Un algorithme de régression et de classification. Il a l'avantage d'être facile à interpréter et de nécessiter moins de prétraitement.
Manuel P235. Gain d'informations=Impureté du nœud parent-Elle est représentée par la somme des impuretés des nœuds enfants. Si elle est positive, elle doit être divisée en nœuds enfants, et si elle est négative, elle ne doit pas être divisée. Structure arborescente(Structure de données) - Wikipedia https://ja.wikipedia.org/wiki/%E6%9C%A8%E6%A7%8B%E9%80%A0_(%E3%83%87%E3%83%BC%E3%82%BF%E6%A7%8B%E9%80%A0)#%E7%94%A8%E8%AA%9E
SVM

Tracez une frontière de décision afin que la marge soit maximisée. Une méthode qui permet de séparer linéairement des données non linéairement séparables est appelée une astuce du noyau.
from sklearn.svm import SVC

svc = SVC()

C est un paramètre de coût et signifie une pénalité pour les fausses prédictions. S'il est trop grand, cela entraînera un surapprentissage. gamma détermine la complexité du modèle. Plus la valeur est élevée, plus elle devient compliquée et plus il y a de surapprentissage.
Fonction Sigmaid

y = 1 / 1 + exp(x)Prend la forme de.(0, 0.5), 0< y <Cela devient 1.
Sigmaid est un modèle qui effectue une classification binaire. S'il s'agit d'une classification à trois classes, elle peut être traitée en effectuant une classification binaire pour le nombre de classes.
Normalisation La normalisation est la normalisation avec une distribution moyenne de 0 1[StandardScaler]Normalisation au maximum 1 et au minimum 0[MinMaxScaler]Est célèbre.
Séparation des données d'entraînement et des données de test from sklearn.model_selection import train_test_split
Modèle linéaire Le modèle linéaire (LinearRegression) est divisé en une seule régression avec une variable explicative et plusieurs régressions multiples.
Analyse des composants principaux Il s'agit d'une méthode de compression des données à la même dimension ou à une dimension inférieure à la dimension d'origine en recherchant la direction dans laquelle la dispersion augmente.

L'analyse en composantes principales est scikit-Il peut être exécuté en utilisant la classe PCA du module de dépôt d'apprentissage.
Recherche de grille

from sklearn.datasets import load_iris

from sklearn.model_selection import GridSearchCV

from sklearn.tree import DecisionTreeClassifier

from sklearn.model_selection import train_test_split

iris = load_iris()

X, y = iris.data, iris.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=123)

clf = DecisionTreeClassifier()

param_grid = {'max_depth': [3, 4, 5]}

cv = GridSearchCV(clf, param_grid=param_grid, cv=10)

cv.fit(X_train, y_train)

y_pred = cv.predict(X_test)
Dans le code de gauche, la valeur optimale de la profondeur de l'arbre de décision peut changer à chaque fois qu'il est exécuté. Si vous souhaitez obtenir une reproductibilité, procédez comme suit.

clf = DecisionTreeClassifier(random_state=0)
Explication des paramètres de l'analyse de l'arbre de décision - S-Analysis http://data-analysis-stats.jp/2019/01/14/%E6%B1%BA%E5%AE%9A%E6%9C%A8%E5%88%86%E6%9E%90%E3%81%AE%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E8%A7%A3%E8%AA%AC/
Clustering k-moyen est une méthode d'allocation aléatoire des centres de cluster, de correction des centres de cluster tout en calculant la distance à chaque donnée, et de recalcul et de regroupement jusqu'à ce que les centres de cluster finaux convergent.

Le clustering peut être globalement divisé en clustering optimal fractionné et clustering hiérarchique. Le clustering optimal divisé est une méthode de préparation d'une fonction qui mesure la qualité d'un cluster à l'avance et de recherche de clustering qui minimise la valeur de cette fonction. Le clustering hiérarchique, quant à lui, est une méthode de création de clusters hiérarchiquement en divisant et en fusionnant des clusters.

Le clustering hiérarchique est divisé en type d'agrégat et type de division. Le type d'agglomération est une méthode dans laquelle chaque point de données est considéré comme un cluster, et des clusters similaires sont agglomérés séquentiellement. Le type fractionné est une méthode qui commence à partir de l'état où le point de données entier est considéré comme un cluster et divise séquentiellement un groupe de points de données différents.

Le type fractionné a tendance à exiger plus de calculs que le type agrégé.
https://tinyurl.com/y6cgp24f
https://tinyurl.com/y2df2w4c

Recommended Posts

(Peut-être) Test d'analyse des données de certification d'ingénieur Python 3 que vous pouvez passer par lui-même
Avoir réussi l'examen d'analyse des données de certification d'ingénieur Python
Comment réussir et étudier l'examen de base de la certification d'ingénieur Python 3
Comment utiliser l'astérisque (*) en Python. C'est peut-être tout? ..
Test d'analyse des données de certification d'ingénieur Python3
Formation préalable à l'examen d'analyse des données de certification d'ingénieur Python 3
L'examen de base de la certification d'ingénieur Python 3 est-il vraiment facile?
Examen de base de la certification d'ingénieur Python3 - J'ai essayé de résoudre l'examen simulé
Passez l'examen de base de la certification d'ingénieur Python3
Préparation à l'examen d'analyse de données certifié Python 3 Engineer
Implémentez "Tout ce dont vous avez besoin, c'est tuer" en Python
[Pour les débutants] Comment étudier le test d'analyse de données Python3
Comment les amateurs ont réussi l'examen de base de la certification d'ingénieur Python 3
[Test d'analyse des données de certification d'ingénieur Python3] Examen / expérience de réussite
Impressions de passer l'examen de base de la certification d'ingénieur Python 3
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)
[Qualification] J'ai essayé d'étudier Python à partir des bases pour passer l'examen de base de la certification d'ingénieur python3 (dossier d'examen)
[Qualification] J'ai essayé d'étudier Python à partir des bases pour passer l'examen de base de certification d'ingénieur python3 (édition d'étude)
Transmettez les données OpenCV de la bibliothèque C ++ d'origine à Python
J'ai réussi l'examen de certification d'ingénieur python, j'ai donc publié la méthode d'étude
[pepper] Transmettez toutes les données JSON obtenues par requête python à la tablette.
Un mémorandum concernant l'acquisition de l'examen de base de certification d'ingénieur Python3
Analyse des données, que faites-vous après tout?
Je suis nouveau sur Python. Pourriez-vous s'il vous plaît me dire où se trouve l'erreur?
Comment étudier l'examen de base de la certification d'ingénieur Python 3 par un débutant Python (passé en août 2020)
Extension Python C / C ++: transmettre une partie des données à Python en tant que np.array (set stride)
Le calcul d'une question d'examen d'entrée était difficile à penser, alors j'ai laissé ça à python après tout
Ceci est le seul examen de base de Python ~ 1 ~
Ceci est le seul examen de base de Python ~ 2 ~
Enregistrement de l'examen de base de la certification d'ingénieur Python3 pour débutant en programmation
[Python] Flux du scraping Web à l'analyse des données
Ceci est le seul examen de base de Python ~ 3 ~
virtualenv Pour le moment, c'est tout!
Comment un "banquier amateur" a réussi l'examen de base de la certification d'ingénieur Python 3 en une semaine