De Hier, j'ai organisé la procédure de base de l'analyse des données, mais c'est une continuation.
Lors de PyCon JP 2014 qui a eu lieu le week-end, l'histoire qu'il y a de nombreux utilisateurs de Python 2 / entry / pycon-jp-2014) était là, et Kenneth Reitz de Heroku a dit No Benefit 81% AE1% E6% 97% A5% E7% 9B% AE_keynote_% E3% 81% AB% E3% 81% A4% E3% 81% 84% E3% 81% A6) Si vous utilisez, vous pouvez choisir la série 3.x. En passant, je pense que la plupart des gens ont recommandé Python 3 dans l'annonce japonaise ultérieure.
Voici mon idée pourquoi j'utilise Python 3 pour l'analyse des données.
Ces deux ne suffisent plus.
Les lecteurs de cet article sont probablement majoritairement japonais, et bien sûr l'auteur est également japonais. Pour les anglophones, les avantages d'Unicode sont difficiles à obtenir, mais aujourd'hui, il ne peut y avoir de langue où UTF-8 n'est pas la valeur par défaut. Une fois que vous avez touché à Python 3, aucun Japonais ne voudra jamais revenir à Python 2. À une époque où il n'y a presque pas de distance entre les pays sur Internet, les langues difficiles à utiliser dans une région spécifique ne devraient pas être utilisées telles quelles et devraient être conformes aux normes mondiales.
De plus, la série Python 2 n'ajoutera plus de nouvelles fonctionnalités. En revanche, de puissantes bibliothèques telles que pandas, qui sont apparues vers 2008, se sont développées rapidement ces dernières années, et combiné avec le boom du big data, Python est analysé pour les données. Élever à un statut linguistique majeur fort pour. Depuis Python 3 a été introduit en 2008, les actifs avant cela seront petits ou obsolètes dans ce domaine, nous devrions donc passer immédiatement à la série Python 3. Il est peu probable que le coût de la migration soit aussi élevé.
Maintenant MATLAB et R Language, Lorsque vous essayez d'effectuer une analyse numérique, l'accent est mis sur le calcul des vecteurs et des matrices. Les outils nécessaires à ce moment sont les suivants, si je les énumère comme trois sortes de trésors sacrés à ma discrétion.
Encore une fois, d'après j'ai traité de beaucoup de choses dans les articles jusqu'à présent, aucune explication supplémentaire n'est nécessaire.
Quand on parle de big data dans une entreprise privée, on pense que le nom Hadoop sort immédiatement après la saisie du mot-clé ou du nom du produit. Mais étant donné le contenu de l'analyse, est-ce vraiment nécessaire? Veuillez bien réfléchir à la taille des données ainsi qu'à la nature du calcul à chaque fois.
MapReduce et Spark sont des outils très puissants s'ils sont utilisés correctement, par exemple, Utilisez-le pour échantillonner la population ou [faites-le dans un langage simple comme Pig ou Hive](http: // qiita. com / ynakayama / items / d2a8c125360e053d5a2f), mais la partie applicable n'est qu'une petite partie de la phase d'analyse des données. Dans les temps modernes, l'ordinateur disponible est suffisant pour analyser et visualiser les données de l'échantillon, et dans ce cas, il est possible d'utiliser non seulement Python mais aussi un logiciel de calcul de table tel que R ou Excel.
Assurez-vous que l'utilisation de certains logiciels ou outils n'est pas une fin en soi.
La meilleure façon de voir l'utilité d'un outil d'analyse de données est de bouger les mains et d'écrire du code de toute façon.
Tout d'abord, l'analyse consiste à lire les données préparées à partir du fichier. Également dans NumPy / SciPy, genfromtxt et [loadtxt](http://docs.scipy.org/doc/ Il existe des fonctions de haut niveau telles que numpy / reference / generated / numpy.loadtxt.html # numpy.loadtxt), mais si vous pouvez utiliser des pandas, essentiellement read_csv C'est une bonne idée d'utiliser des fonctions pandas comme /stable/generated/pandas.io.parsers.read_csv.html).
La génération aléatoire est souvent utilisée lors de l'écriture et de l'essai d'exemples de code. NumPy / SciPy est utile car il a divers générateurs de nombres aléatoires implémentés. En particulier, des nombres aléatoires peuvent être générés avec une moyenne et une variance arbitraires selon la distribution normale standard (distribution gaussienne) [numpy.randam.normal](http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.normal] .html) est pratique.
À titre de test, générons une bivariée à partir de nombres aléatoires qui suivent une distribution normale standard avec une moyenne et une variance arbitraires, trouvons les statistiques de base, calculons la covariance et le coefficient de corrélation, et visualisons-les dans un diagramme de dispersion.
#Générez 50 nombres aléatoires qui suivent une distribution normale standard avec une moyenne de 10 et un écart type de 5.
a = np.random.normal(10, 5, size=50)
#Générez 50 nombres aléatoires qui suivent une distribution normale standard avec une moyenne de 20 écarts types de 8.
b = np.random.normal(20, 8, size=50)
#Visualiser
plt.figure()
plt.scatter(a, b)
plt.savefig("image.png ")
J'ai pu tracer un diagramme de dispersion qui visualise la relation entre les deux variables.
Si vous faites la même chose avec les pandas, ce sera comme ça.
#Créer un bloc de données
df = pd.DataFrame({
"a": np.random.normal(10, 5, size=50),
"b": np.random.normal(20, 8, size=50)
})
#Visualiser
plt.scatter(df['a'], df['b'])
Les images générées sont les mêmes, je vais donc les omettre.
L'utilisation de trames de données avec des pandas de cette manière a l'avantage de faciliter le calcul et la manipulation des statistiques matricielles.
#Jetez un œil au contenu des nombres aléatoires générés
df
#=>
# a b
# 0 14.104370 13.301508
# 1 9.053707 32.101631
# 2 7.731780 14.075792
# 3 8.629411 38.876371
# 4 15.604993 24.380662
# 5 13.678605 16.517300
# ... (Omis en chemin)
# 46 12.229324 24.926788
# 47 16.650234 23.308550
# 48 8.101379 20.404972
# 49 0.807786 34.109284
#Calculer les statistiques de base clés
df.describe()
#=>
# a b
# count 50.000000 50.000000
# mean 10.517972 20.291032
# std 4.229104 8.104303
# min -0.618973 4.451698
# 25% 8.006941 14.085385
# 50% 11.442714 20.018789
# 75% 13.828762 24.770515
# max 17.617583 39.991811
#Trouver la covariance entre les matrices
df.cov()
#=>
# a b
# a 17.885320 -5.215284
# b -5.215284 65.679722
#Trouvez le coefficient de corrélation
df.corr()
#=>
# a b
# a 1.000000 -0.152165
# b -0.152165 1.000000
#Trouvez la matrice de translocation
df.T
#=>
# 0 1 2 3 4 5 \
# a 14.104370 9.053707 7.731780 8.629411 15.604993 13.678605
# b 13.301508 32.101631 14.075792 38.876371 24.380662 16.517300
# 6 7 8 9 ... 40 \
# a 12.321283 3.325300 5.439189 15.693431 ... 15.220284
# b 30.198993 24.853103 10.381890 32.567924 ... 15.801350
# 41 42 43 44 45 46 \
# a 13.493986 6.756807 9.030604 11.044724 11.443239 12.229324
# b 14.278252 20.388216 20.582722 25.731553 18.479491 24.926788
# 47 48 49
# a 16.650234 8.101379 0.807786
# b 23.308550 20.404972 34.109284
C'est facile.
Soit dit en passant, il existe de nombreux cas où, par exemple, le développement en Java est l'activité principale des entreprises dont l'activité principale est le développement de contrats de type contrat. Cependant, quelle que soit votre activité, il est préférable d'utiliser un langage adapté à l'analyse des données.
À titre d'essai, j'ai mentionné dans l'exemple de code ci-dessus: "Générez une bivariée à partir de nombres aléatoires qui suivent une distribution normale standard avec une moyenne et une variance arbitraires, trouvez les statistiques de base, calculez la covariance et le coefficient de corrélation et visualisez-les dans un diagramme de dispersion." Il est facile de voir qu'essayer de résoudre un problème simple dans un langage commun autre que les langages statistiques tels que R peut rapidement devenir difficile.
Maintenant que la préparation est un peu longue, il y a trois points majeurs dans les statistiques sociales de la série d'analyses sur les données issues de l'enquête.
La façon dont les variables des nombres sont distribuées est une prémisse très importante. La distribution est la dispersion des variables, mais certaines ** statistiques ** sont utilisées pour représenter l'état. Par exemple, «valeur moyenne» et «dispersion».
Pour capturer l'état de la distribution, utilisez un tableau de distribution de fréquence qui présente la distribution des valeurs de variable dans un format tabulaire, ou un diagramme de moustaches pour visualiser les statistiques résumées.
Le point suivant est de déduire l'état de la population entière, appelée la ** population **, à partir des statistiques des données. La plupart des enquêtes sociales seront basées sur des ** échantillons ** extraits d'une partie d'une population.
Puisque l'échantillon a été prélevé dans le cadre de la population, les données ne reflètent pas nécessairement avec exactitude les valeurs de la population et contiendront certaines erreurs. Il est nécessaire d'acquérir l'idée et la technique des «statistiques de supposition» pour interpréter le résultat de l'analyse obtenu à partir de l'échantillon comme l'état de la population extraite. Dans les statistiques de spéculation, après avoir supposé la probabilité résultant de l'erreur, une «estimation» qui spécifie la valeur de la population et un «test» qui pose une hypothèse et juge si elle correspond ou non sont effectuées.
Enfin, découvrez dans quelle mesure ou dans quelle mesure il existe une relation entre plusieurs variables. De cette manière, nous clarifierons la relation entre quels facteurs affectent quoi. Il est également courant de déduire s'il existe une relation entre les variables de la population à partir de laquelle les données ont été obtenues.
Chacun de ces trois points est destiné à être présenté comme un simple indicateur (= statistiques) ou une conclusion (= estimation) en se concentrant sur un point de vue. L'analyse statistique joue le rôle d'extraire et de présenter des informations en fonction de l'objectif sous une forme résumée à partir d'une énorme quantité de données.
Dans la plupart des cas, les méthodes d'analyse statistique et les statistiques ne peuvent être comprises qu'en accumulant des éléments à apprendre à l'avance. Par conséquent, même si vous jetez des données dans les nuages sombres et voyez les résultats, vous ne pouvez pas passer à l'étape suivante sans connaissances suffisantes.
À partir de la prochaine fois, nous prendrons des mesures pour clarifier le contenu des trois points ci-dessus.
Recommended Posts