


Explication détaillée du traitement du Big Data en Python
Partager

Points de connaissances :
lubrifier le temps de démontage du paquet | POSIXlt
Utiliser la classification des arbres de décision et la prédiction aléatoire des forêts
Utiliser des logarithmes pour l'ajustement et la fonction exp pour restaurer
L'ensemble d'entraînement provient des données de location de vélos dans le programme de partage de vélos Kaggle Washington, et la relation entre les vélos partagés, la météo, l'heure, etc. est analysée. L'ensemble de données comprend un total de 11 variables et plus de 10 000 lignes de données.
Tout d'abord, jetons un coup d'œil aux données officielles. Il existe deux tableaux, tous deux pour 2011-2012. La différence est que le fichier Test contient toutes les dates de chaque mois, mais il. n'est pas des utilisateurs enregistrés et des utilisateurs aléatoires. Le fichier Train ne compte que 1 à 20 jours par mois, mais il existe deux types d'utilisateurs.
Solution : Complétez le nombre d'utilisateurs de 21 à 30 dans la fiche Train. Le critère d'évaluation est la comparaison des prévisions avec les quantités réelles.

Chargez d'abord les fichiers et les packages
library(lubridate)library(randomForest)library(readr)setwd("E:") data<-read_csv("train.csv")head(data)
Ici, j'ai rencontré un piège, en utilisant The read.csv par défaut du langage R ne peut pas lire le format de fichier correct. C'est encore pire lorsqu'il est remplacé par xlsx. Cela devient tout le temps un nombre étrange comme 43045. J'ai déjà essayé as.Date et il peut être converti correctement, mais cette fois, comme il y a des minutes et des secondes, je ne peux utiliser que l'horodatage, mais le résultat n'est pas bon.
Enfin, j'ai téléchargé le package "readr" et utilisé l'instruction read_csv pour l'interpréter en douceur.
Parce que la date du test est plus complète que celle du train, mais que le nombre d'utilisateurs est manquant, train et test doivent être fusionnés.
test$registered=0test$casual=0test$count=0 data<-rbind(train,test)
Extraire l'heure : vous pouvez utiliser l'horodatage. L'heure ici est relativement simple, c'est le nombre d'heures, vous pouvez donc également intercepter la chaîne directement.
data$hour1<-substr(data$datetime,12,13) table(data$hour1)
Comptez l'utilisation totale par heure, c'est comme ça (pourquoi est-ce si soigné) :

L'étape suivante consiste à utiliser des diagrammes en boîte pour voir la relation entre les utilisateurs, l'heure et les jours de la semaine. Pourquoi utiliser le diagramme en boîte au lieu de l'histogramme ? Parce que le diagramme en boîte a une expression ponctuelle discrète, donc le logarithme est utilisé pour trouver l'ajustement
Comme le montre la figure, en termes de temps, l'utilisation des utilisateurs enregistrés et des utilisateurs non enregistrés Le temps fait une grande différence.



Ensuite, utilisez le coefficient de corrélation cor pour tester la relation entre l'utilisateur, la température, la température perçue, l'humidité et la vitesse du vent.
Coefficient de corrélation : une mesure d'association linéaire entre des variables, testant le degré de corrélation entre différentes données.
La plage de valeurs est [-1, 1]. Plus elle est proche de 0, moins elle est pertinente.
Il ressort des résultats du calcul que le nombre d'utilisateurs est négativement corrélé à la vitesse du vent, qui a un impact plus important que la température.

L'étape suivante consiste à classer des facteurs tels que le temps à l'aide d'arbres de décision, puis à utiliser des forêts aléatoires pour prédire. Algorithmes pour forêts aléatoires et arbres de décision. Cela semble très avancé, mais c’est en fait très couramment utilisé maintenant, vous devez donc l’apprendre.
Le modèle d'arbre de décision est un classificateur non paramétrique simple et facile à utiliser. Il ne nécessite aucune hypothèse a priori sur les données, est rapide dans les calculs, facile à interpréter les résultats, robuste et ne craint pas les données bruyantes et les données manquantes.
Les étapes de calcul de base du modèle d'arbre de décision sont les suivantes : sélectionnez d'abord l'une des n variables indépendantes, trouvez le meilleur point de division et divisez les données en deux groupes. Pour les données groupées, répétez les étapes ci-dessus jusqu'à ce qu'une certaine condition soit remplie.
Il y a trois problèmes importants qui doivent être résolus dans la modélisation d'arbre de décision :
Comment choisir les variables indépendantes
Comment choisir le point de partage
Déterminer les conditions d'arrêt de la division
Prendre l'arbre de décision des utilisateurs et des heures enregistrés,
train$hour1<-as.integer(train$hour1)d<-rpart(registered~hour1,data=train)rpart.plot(d)

Puis en fonction de l'arbre de décision Les résultats sont classés manuellement, donc le code est toujours plein...
train$hour1<-as.integer(train$hour1)data$dp_reg=0data$dp_reg[data$hour1<7.5]=1data$dp_reg[data$hour1>=22]=2data$dp_reg[data$hour1>=9.5 & data$hour1<18]=3data$dp_reg[data$hour1>=7.5 & data$hour1<18]=4data$dp_reg[data$hour1>=8.5 & data$hour1<18]=5data$dp_reg[data$hour1>=20 & data$hour1<20]=6data$dp_reg[data$hour1>=18 & data$hour1<20]=7
De même, créez des arbres de décision tels que (heure | température) .

年份月份,周末假日等手动分类
data$year_part=0data$month<-month(data$datatime)data$year_part[data$year=='2011']=1data$year_part[data$year=='2011' & data$month>3]=2data$year_part[data$year=='2011' & data$month>6]=3data$year_part[data$year=='2011' & data$month>9]=4
data$day_type=""data$day_type[data$holiday==0 & data$workingday==0]="weekend"data$day_type[data$holiday==1]="holiday"data$day_type[data$holiday==0 & data$workingday==1]="working day"data$weekend=0data$weekend[data$day=="Sunday"|data$day=="Saturday"]=1
接下来用随机森林语句预测
在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。
随机森林中的子树的每一个分裂过程并未用到所有的待选特征,而是从所有的待选特征中随机选取一定的特征,再在其中选取最优的特征。这样决策树都能够彼此不同,提升系统的多样性,从而提升分类性能。
ntree指定随机森林所包含的决策树数目,默认为500,通常在性能允许的情况下越大越好;
mtry指定节点中用于二叉树的变量个数,默认情况下数据集变量个数的二次方根(分类模型)或三分之一(预测模型)。一般是需要进行人为的逐次挑选,确定最佳的m值—摘自datacruiser笔记。这里我主要学习,所以虽然有10000多数据集,但也只定了500。就这500我的小电脑也跑了半天。
train<-dataset.seed(1234) train$logreg<-log(train$registered+1)test$logcas<-log(train$casual+1) fit1<-randomForest(logreg~hour1+workingday+day+holiday+day_type+temp_reg+humidity+atemp+windspeed+season+weather+dp_reg+weekend+year+year_part,train,importance=TRUE,ntree=250) pred1<-predict(fit1,train) train$logreg<-pred1
这里不知道怎么回事,我的day和day_part加进去就报错,只有删掉这两个变量计算,还要研究修补。
然后用exp函数还原
train$registered<-exp(train$logreg)-1 train$casual<-exp(train$logcas)-1 train$count<-test$casual+train$registered
最后把20日后的日期截出来,写入新的csv文件上传。
train2<-train[as.integer(day(data$datetime))>=20,]submit_final<-data.frame(datetime=test$datetime,count=test$count)write.csv(submit_final,"submit_final.csv",row.names=F)
大功告成!
github代码加群
原来的示例是炼数成金网站的kaggle课程第二节,基本按照视频的思路。因为课程没有源代码,所以要自己修补运行完整。历时两三天总算把这个功课做完了。下面要修正的有:
好好理解三个知识点(lubridate包/POSIXlt,log线性,决策树和随机森林);
用WOE和IV代替cor函数分析相关关系;
用其他图形展现的手段分析
随机树变量重新测试学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入学习交流群
626062078,我们一起学Python!
完成了一个“浩大完整”的数据分析,还是很有成就感的!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

Python et JavaScript ont leurs propres avantages et inconvénients en termes de communauté, de bibliothèques et de ressources. 1) La communauté Python est amicale et adaptée aux débutants, mais les ressources de développement frontal ne sont pas aussi riches que JavaScript. 2) Python est puissant dans les bibliothèques de science des données et d'apprentissage automatique, tandis que JavaScript est meilleur dans les bibliothèques et les cadres de développement frontaux. 3) Les deux ont des ressources d'apprentissage riches, mais Python convient pour commencer par des documents officiels, tandis que JavaScript est meilleur avec MDNWEBDOCS. Le choix doit être basé sur les besoins du projet et les intérêts personnels.

Activer l'accélération du GPU Pytorch sur le système CentOS nécessite l'installation de versions CUDA, CUDNN et GPU de Pytorch. Les étapes suivantes vous guideront tout au long du processus: CUDA et CUDNN Installation détermineront la compatibilité de la version CUDA: utilisez la commande NVIDIA-SMI pour afficher la version CUDA prise en charge par votre carte graphique NVIDIA. Par exemple, votre carte graphique MX450 peut prendre en charge CUDA11.1 ou plus. Téléchargez et installez Cudatoolkit: visitez le site officiel de Nvidiacudatoolkit et téléchargez et installez la version correspondante selon la version CUDA la plus élevée prise en charge par votre carte graphique. Installez la bibliothèque CUDNN:

Docker utilise les fonctionnalités du noyau Linux pour fournir un environnement de fonctionnement d'application efficace et isolé. Son principe de travail est le suivant: 1. Le miroir est utilisé comme modèle en lecture seule, qui contient tout ce dont vous avez besoin pour exécuter l'application; 2. Le Système de fichiers Union (UnionFS) empile plusieurs systèmes de fichiers, ne stockant que les différences, l'économie d'espace et l'accélération; 3. Le démon gère les miroirs et les conteneurs, et le client les utilise pour l'interaction; 4. Les espaces de noms et les CGROUP implémentent l'isolement des conteneurs et les limitations de ressources; 5. Modes de réseau multiples prennent en charge l'interconnexion du conteneur. Ce n'est qu'en comprenant ces concepts principaux que vous pouvez mieux utiliser Docker.

La formation distribuée par Pytorch sur le système CentOS nécessite les étapes suivantes: Installation de Pytorch: La prémisse est que Python et PIP sont installés dans le système CentOS. Selon votre version CUDA, obtenez la commande d'installation appropriée sur le site officiel de Pytorch. Pour la formation du processeur uniquement, vous pouvez utiliser la commande suivante: pipinstalltorchtorchVisionTorChaudio Si vous avez besoin d'une prise en charge du GPU, assurez-vous que la version correspondante de CUDA et CUDNN est installée et utilise la version Pytorch correspondante pour l'installation. Configuration de l'environnement distribué: la formation distribuée nécessite généralement plusieurs machines ou des GPU multiples uniques. Lieu

Minio Object Storage: Déploiement haute performance dans le système Centos System Minio est un système de stockage d'objets distribué haute performance développé sur la base du langage Go, compatible avec Amazons3. Il prend en charge une variété de langages clients, notamment Java, Python, JavaScript et GO. Cet article introduira brièvement l'installation et la compatibilité de Minio sur les systèmes CentOS. Compatibilité de la version CentOS Minio a été vérifiée sur plusieurs versions CentOS, y compris, mais sans s'y limiter: CentOS7.9: fournit un guide d'installation complet couvrant la configuration du cluster, la préparation de l'environnement, les paramètres de fichiers de configuration, le partitionnement du disque et la mini

Lors de l'installation de Pytorch sur le système CentOS, vous devez sélectionner soigneusement la version appropriée et considérer les facteurs clés suivants: 1. Compatibilité de l'environnement du système: Système d'exploitation: Il est recommandé d'utiliser CentOS7 ou plus. CUDA et CUDNN: La version Pytorch et la version CUDA sont étroitement liées. Par exemple, Pytorch1.9.0 nécessite CUDA11.1, tandis que Pytorch2.0.1 nécessite CUDA11.3. La version CUDNN doit également correspondre à la version CUDA. Avant de sélectionner la version Pytorch, assurez-vous de confirmer que des versions compatibles CUDA et CUDNN ont été installées. Version Python: branche officielle de Pytorch

Python excelle dans l'automatisation, les scripts et la gestion des tâches. 1) Automatisation: La sauvegarde du fichier est réalisée via des bibliothèques standard telles que le système d'exploitation et la fermeture. 2) Écriture de script: utilisez la bibliothèque PSUTIL pour surveiller les ressources système. 3) Gestion des tâches: utilisez la bibliothèque de planification pour planifier les tâches. La facilité d'utilisation de Python et la prise en charge de la bibliothèque riche en font l'outil préféré dans ces domaines.
