[Information du département d'information du lycée I] Matériel pédagogique pour la formation des enseignants: Format des données et visualisation (python)

introduction

Cette fois, "Format des données et visualisation" dans "Chapitre 4 Réseau d'information et de communication et utilisation des données / Fin du livre" des matériels de formation des enseignants Information I publiés sur la page du Ministère de l'éducation, de la culture, des sports, des sciences et de la technologie seront mis en œuvre en python. Et je voudrais faire quelques considérations supplémentaires.

Matériel pédagogique

[Matériel pédagogique pour la formation des enseignants du Département de l’information du lycée "Information I" (partie principale): Ministère de l’éducation, de la culture, des sports, des sciences et de la technologie](https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1416756.htm "Département d’information du lycée Matériel pédagogique "Information I" pour la formation des enseignants (partie principale): Ministère de l'éducation, de la culture, des sports, des sciences et de la technologie ") [Chapitre 4 Utilisation du réseau et des données d'information et de communication / Fin de livre (PDF: 10284 Ko)](https://www.mext.go.jp/component/a_menu/education/micro_detail/__icsFiles/afieldfile/2019/09/24/ 1416758_006_1.pdf "Chapitre 4 Utilisation du réseau d'information et de communication et données - Fin de livre (PDF: 10284KB)")

environnement

Que faire cette fois

Je voudrais réécrire l'exemple d'implémentation montré par R dans Learning 24 "Format de données et visualisation" (p202-) en python.

supposition

Pour le matériel pédagogique

Un diagramme de moustaches en boîte et une parcelle de violon ont été créés à partir des données d'échantillon de la mesure corporelle du Bureau des statistiques du ministère de l'Intérieur et des Communications.

Bien que cela soit dit, le fichier de données lu par R semble être le résultat d'hommes et de femmes courant 50 m, j'ai donc utilisé les données suivantes préparées de manière appropriée ici. high_male_data.csv

De plus, le "diamonds.csv" utilisé dans la version d'implémentation de python dans la seconde moitié était celui du site kaggle. Diamonds - Kaggle

Données qualitatives et leurs types

Moustaches et parcelles de violon

Code source pour l'implémentation de python

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

gen_50 = pd.read_csv('/content/gen_50.csv')

plt.subplots_adjust(wspace=0.5)

sns.boxplot(x = 'gender', y = 'run50m', data = gen_50)
plt.show()
sns.violinplot(x = "gender", y = "run50m", data = gen_50)
plt.show()

Depuis que j'ai utilisé le module seaborn pour dessiner l'intrigue du violon, j'ai également utilisé le module seaborn pour dessiner les moustaches de la boîte.

Résultat de sortie de la version d'implémentation python

ダウンロード (3).png

ダウンロード (4).png

[Référence] Code source de la version d'implémentation R (à partir du matériel pédagogique)

library( ggplot2 )
#Lire les données
gen_50 <- read.csv("gen_50.csv")
boxplot(run50m~gender, data=gen_50)
ggplot(data=gen_50, aes(x=gender, y=run50m, color=gender)) + geom_violin()

À propos, le code source écrit dans le matériel didactique proprement dit est le suivant.

SnapCrab_NoName_2020-7-27_20-45-53_No-00.png

Veuillez noter qu'il y a un bug ici. Erreur: boxplot (run50m ~ gender.data = gen_50) Correct: boxplot (run50m ~ gender, data = gen_50)

[Référence] Résultat de sortie de la version d'implémentation R

ダウンロード (1).png ダウンロード (1).png

Histogramme, diagramme de dispersion et diagramme de moustaches

À quoi sert la visualisation des données? En visualisant, les problèmes peuvent être découverts et une analyse détaillée, une interprétation et des solutions peuvent être envisagées. Ici, expliquons en utilisant les données d'échantillons de diamants incluses dans le package appelé ggplot2 du logiciel d'analyse statistique R. Ces données sont des dizaines de milliers de données volumineuses comprenant le carat, la taille, la transparence, la taille, le prix, etc. des diamants effectivement distribués aux États-Unis.

Code source pour l'implémentation de python

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.read_csv('/content/diamonds.csv')

df_carat_lt3 = df[df['carat'] < 3]

#carat sur l'axe des x, compter sur l'axe des y
plt.xlabel('carat')
plt.ylabel('count')

#Dessinez un histogramme
df_carat_lt3['carat'].hist(bins=250)
plt.show()

#Dessinez un diagramme de dispersion
df_carat_lt3.plot.scatter(x = 'carat', y = 'price')
plt.show()

sns.boxplot(x = 'cut', y = 'price', data = df_carat_lt3)
plt.show()

Résultat de sortie de la version d'implémentation python

ダウンロード (8).png ダウンロード (9).png

On peut voir que plus le nombre de carats est élevé, plus le prix est élevé.

ダウンロード (10).png

L'ordre de l'axe des x dans la dernière figure n'est pas très bon, mais l'ordre de la qualité de coupe est Idéal> Premium> Très bon> Bon> Passable.

commentaire

Le matériel pédagogique est rédigé comme suit.

Cela ressemblera à un phénomène mystérieux. Plus la qualité de la coupe est élevée, plus le prix est bas. Le même phénomène d'inversion se produit avec une couleur et une transparence élevées. L'indice est le "facteur d'intrication". Un facteur d'intrication est une variable cachée (facteur) qui est fortement corrélée aux deux variables cibles.

Les résultats obtenus jusqu'à présent montrent que plus le nombre de carats est élevé, plus le prix est élevé. De cela, on peut en déduire que de nombreux diamants avec un grand nombre de carats ont une qualité de coupe médiocre. (Autrement dit, plus la qualité de la coupe est élevée, plus le prix est bas, ce qui peut être dû au nombre de carats, qui est un facteur interdépendant.)

Code source pour l'implémentation de python (cut vs carat)


sns.boxplot(x = 'cut', y = 'carat', data = df_carat_lt3)
plt.show()

Résultat de sortie de la version d'implémentation python (coupe vs carat)

ダウンロード (11).png

C'était comme prévu, et surtout en regardant la médiane, on a constaté que le nombre de carats idéal avec la qualité de coupe la plus élevée était le plus bas et le nombre de carats équitable avec la qualité de coupe la plus basse était le plus bas.

Si vous souhaitez voir une analyse plus détaillée de cette analyse des données sur les diamants, vous devriez consulter les sites suivants. https://www.kaggle.com/fuzzywizard/diamonds-in-depth-analysis

À propos de la qualité de la taille du diamant (supplément)

—— Plus la qualité de la coupe est élevée, plus le coût par carat est élevé.

[Référence] Code source de la version d'implémentation R (à partir du matériel pédagogique)

library(ggplot2)
diamonds

smaller <- diamonds %>% filter(carat < 3)
ggplot(data = smaller, mapping = aes(x = carat)) + geom_histogram(binwidth = 0.01)

ggplot(data = diamonds) + geom_point(mapping = aes(x = carat, y = price))

ggplot(diamonds, aes(cut, price)) + geom_boxplot()

À propos, le code source écrit dans le matériel didactique proprement dit est le suivant.

SnapCrab_NoName_2020-7-27_21-16-22_No-00.png

Veuillez noter qu'il y a un bug ici. Mauvais: plus petit <-diamonds%>% + filtre (carat <3) Correct: filtre <-diamonds%>% plus petit (carat <3)

[Référence] Résultat de sortie de la version d'implémentation R

A tibble: 53940 × 10
carat	cut	color	clarity	depth	table	price	x	y	z
<dbl>	<ord>	<ord>	<ord>	<dbl>	<dbl>	<int>	<dbl>	<dbl>	<dbl>
0.23	Ideal	E	SI2	61.5	55	326	3.95	3.98	2.43
0.21	Premium	E	SI1	59.8	61	326	3.89	3.84	2.31
⋮	⋮	⋮	⋮	⋮	⋮	⋮	⋮	⋮	⋮
(réduction)
⋮	⋮	⋮	⋮	⋮	⋮	⋮	⋮	⋮	⋮
0.86	Premium	H	SI2	61.0	58	2757	6.15	6.12	3.74
0.75	Ideal	D	SI2	62.2	55	2757	5.83	5.87	3.64
ダウンロード (5).png ダウンロード (6).png ダウンロード (7).png

Code source

version python https://gist.github.com/ereyester/68b781bd6668005c157b300c5bf22905

Version R https://gist.github.com/ereyester/737207c4c99556850950c5b5a49dbfcc

Recommended Posts

[Information du département d'information du lycée I] Matériel pédagogique pour la formation des enseignants: Format des données et visualisation (python)
[Information I / Information II du Département d'Information du Lycée] Résumé du matériel pédagogique pour la formation des enseignants par python
Analyse des données par regroupement à l'aide de la méthode k-means (python) ([High school information department information II] pédagogique pour la formation des enseignants)
Exploration de texte par word2vec etc. par python ([High School Information Department Information II] matériel pédagogique pour la formation des enseignants)
Classification binar par arbre de décision par python ([High school information department information II] pédagogique pour la formation des enseignants)
[Informations sur les lignes directrices d'apprentissage du lycée I] Matériel pédagogique pour la formation des enseignants: mise en œuvre de la méthode Huffman par python
Analyse des composants principaux avec python (version Scikit-learn, version pandas et numpy) ([High school information department information II] didacticiel pour la formation des enseignants)
Détection d'objets à l'aide de YOLO (python) (matériel didactique [Information du département d'information du lycée II] pour la formation des enseignants)
Matériel pédagogique Web pour apprendre Python
Acquisition et visualisation des données de capteurs pour la croissance des plantes avec Intel Edison et Python
Outil de visualisation Python pour le travail d'analyse de données
J'ai suivi une formation à l'analyse de données Python à distance
Classification binar par arbre de décision par python ([High school information department information II] pédagogique pour la formation des enseignants)
[Information I / Information II du Département d'Information du Lycée] Résumé du matériel pédagogique pour la formation des enseignants par python
Analyse des données par regroupement à l'aide de la méthode k-means (python) ([High school information department information II] pédagogique pour la formation des enseignants)
Exploration de texte par word2vec etc. par python ([High School Information Department Information II] matériel pédagogique pour la formation des enseignants)
[Information du département d'information du lycée I] Matériel pédagogique pour la formation des enseignants: Format des données et visualisation (python)
Analyse des composants principaux avec python (version Scikit-learn, version pandas et numpy) ([High school information department information II] didacticiel pour la formation des enseignants)
Détection d'objets à l'aide de YOLO (python) (matériel didactique [Information du département d'information du lycée II] pour la formation des enseignants)
[Informations sur les lignes directrices d'apprentissage du lycée I] Matériel pédagogique pour la formation des enseignants: mise en œuvre de la méthode Huffman par python
Une implémentation Python simple de la méthode k-voisinage (k-NN)
Méthode de voisinage K (classification multi-classes)
Matériel pédagogique Web pour apprendre Python