J'ai réussi le Test d'analyse des données Python, j'ai donc résumé les points.
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 **.
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.
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 **.
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.
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
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
Le ** module pickle ** sérialise les objets Python afin qu'ils puissent être lus et écrits dans des fichiers.
Si vous souhaitez utiliser des chemins en Python, utilisez le ** module pathlib **.
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)
É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.
La fonction exprimée par la formule suivante est appelée ** fonction logarithmique **.
f\left( x\right) =\log _{2}x
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.
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.
$ 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
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'>
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.]
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]]
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
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
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]])
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")
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)
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.
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
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())
in
fig, axes = plt.subplots(ncols=2)
display(plt.show())
Le diagramme de dispersion peut être dessiné avec la «méthode de dispersion».
L'histogramme peut être dessiné avec la «méthode hist». Vous pouvez spécifier le nombre de bins ** avec l'argument ** bins.
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.
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
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.
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)
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.
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.