Pratique d'apprentissage automatique 10 applications combinées basées sur la technologie Spark Big Data et l'apprentissage automatique

Bonjour à tous, je suis Weixue AI. Aujourd'hui, je vais vous présenter la pratique d'apprentissage automatique 10 basée sur la combinaison de la technologie Spark Big Data et de l'apprentissage automatique. Spark est un cadre de traitement rapide et général des données volumineuses. Il a été développé par AMPLab à UC Berkeley. Spark fournit une plate-forme informatique distribuée qui peut traiter des ensembles de données à grande échelle en parallèle dans un cluster.
insérez la description de l'image ici

Table des matières
1. Introduction à la technologie Big Data
2. Caractéristiques de Spark
3. Pourquoi utiliser Spark
4. La différence entre Spark et Pandas
5. Utiliser Python et Spark pour développer des applications Big Data
6. Code de formation d'apprentissage automatique basé sur Spark

1. Introduction à la technologie des mégadonnées

La technologie des mégadonnées fait référence à une série de technologies et d'outils développés pour traiter et analyser des données à grande échelle. Avec le développement d'Internet, de l'Internet des objets et de diverses technologies de capteurs, nous pouvons collecter de plus en plus de données. Ces données sont généralement à grande échelle, complexes et diverses, et caractérisées par des taux de croissance élevés. La technologie Big Data est dédiée à la résolution du problème du stockage, du traitement et de l'analyse efficaces de ces données massives.

Voici quelques technologies Big Data courantes :

1. Système de stockage distribué : Le stockage de données à grande échelle nécessite l'utilisation d'un système de stockage distribué pour fournir une capacité, une fiabilité et une évolutivité élevées. Par exemple, les systèmes de bases de données distribuées tels que Hadoop Distributed File System (HDFS) et Apache Cassandra.

2. Cadre informatique distribué : L'informatique distribuée est nécessaire dans le processus de traitement des mégadonnées pour obtenir un traitement et une analyse efficaces des données. Hadoop MapReduce est le premier framework informatique distribué, tandis qu'Apache Spark est actuellement un framework de traitement de données volumineuses rapide et général.

3. Outils de gestion et de gouvernance des données : la gestion et la gouvernance des données à grande échelle est une tâche complexe. Les outils de gestion des données aident à organiser et à gérer les données, y compris la collecte, le nettoyage, la transformation et l'intégration des données. Les outils de gouvernance des données se concentrent sur des aspects tels que la qualité, la sécurité et la conformité des données.

4. Entrepôt de données et lac de données : l'entrepôt de données est un système de stockage et de gestion de données structurées, qui fournit des fonctions de requête et d'analyse flexibles. Un lac de données est une collection de différents types de données stockées de manière centralisée, qui peuvent être traitées et analysées en cas de besoin.

5. Exploration de données et apprentissage automatique : la technologie des mégadonnées peut être utilisée dans l'exploration de données et l'apprentissage automatique pour aider à découvrir des informations et des modèles précieux à partir de données à grande échelle. Les outils et algorithmes courants incluent Apache Hadoop, la bibliothèque d'apprentissage automatique d'Apache Spark (MLlib), TensorFlow, etc.

6. Outils de visualisation des données et de création de rapports : les outils de visualisation des données aident à transformer les données en graphiques et tableaux de bord visuels, ce qui facilite la compréhension et l'analyse des données. L'outil de création de rapports peut générer des rapports et afficher les résultats d'analyse de données.

L'application de la technologie des mégadonnées est très étendue et couvre divers secteurs et domaines. Par exemple, dans le domaine financier, la technologie des mégadonnées peut être utilisée pour la gestion des risques et la détection des fraudes ; dans le domaine médical, elle peut être utilisée pour l'analyse d'images médicales et la prédiction des maladies ; dans le domaine des médias sociaux, elle peut être utilisée pour l'utilisateur analyse comportementale et recommandations personnalisées.

2. Caractéristiques de Spark

Performances rapides : Spark utilise la technologie informatique en mémoire pour stocker les données dans la mémoire du cluster, accélérant ainsi le processus de traitement des données. En outre, Spark utilise également le concept abstrait de RDD (Resilient Distributed Dataset) pour réaliser un calcul parallèle efficace grâce au partage de données en mémoire et au partage de données.

1. Prise en charge de plusieurs traitements de données : Spark prend en charge plusieurs modèles de traitement de données, notamment le traitement par lots, les requêtes interactives, le traitement de flux et l'apprentissage automatique. Vous pouvez utiliser l'API de Spark (telle que DataFrame et SQL) pour le traitement et l'analyse des données, et vous pouvez également combiner d'autres bibliothèques (telles que MLlib, GraphX) pour l'apprentissage automatique et le traitement des graphes.

2. Facilité d'utilisation : Spark fournit une API facile à utiliser, y compris des interfaces pour des langages de programmation tels que Java, Scala, Python et R. Cela permet aux développeurs d'écrire des applications et des scripts Spark dans leur propre langage familier.

3. Évolutivité : Spark peut fonctionner sur des clusters de différentes tailles, des petits ordinateurs portables aux clusters à grande échelle. Il peut être intégré de manière transparente à d'autres outils et frameworks de Big Data (tels que Hadoop, Hive, HBase, etc.), offrant une solution de traitement de Big Data flexible et évolutive.
insérez la description de l'image ici

3. Pourquoi utiliser Spark

Le traitement du Big Data implique généralement le stockage, le traitement et l'analyse de quantités massives de données. En tant que cadre de traitement rapide et général du Big Data, Spark est un choix populaire pour plusieurs raisons importantes :

1. Haute performance : Spark utilise la technologie de calcul de mémoire pour mettre en cache les données dans la mémoire du cluster, accélérant ainsi le processus de traitement des données. Par rapport aux méthodes traditionnelles de lecture et d'écriture sur disque, l'informatique en mémoire peut améliorer considérablement la vitesse de traitement des données. En outre, Spark utilise également le concept abstrait de RDD pour réaliser le partage de données et le calcul parallèle, améliorant encore les performances.

2. Prise en charge de plusieurs modèles de traitement de données : Spark prend en charge plusieurs modèles de traitement de données tels que le traitement par lots, les requêtes interactives, le traitement de flux et l'apprentissage automatique. Cela signifie que différents types de tâches de traitement de données volumineuses peuvent être effectués dans le même cadre, éliminant ainsi le besoin d'utiliser différents outils et systèmes, simplifiant ainsi la complexité du développement et du déploiement.

3. Facilité d'utilisation et flexibilité : Spark fournit une API facile à utiliser, y compris des interfaces pour des langages de programmation tels que Java, Scala, Python et R. Cela permet aux développeurs d'écrire des applications et des scripts Spark dans leur propre langage familier. Dans le même temps, Spark s'intègre de manière transparente à d'autres outils et frameworks de Big Data (tels que Hadoop et Hive) et peut créer de manière flexible un processus de traitement de Big Data.

4. La différence entre Spark et Pandas

Quelle est la différence entre utiliser Spark pour lire des fichiers CSV et utiliser pd.read_csv de pandas pour lire des fichiers CSV :

1. Informatique distribuée : Spark est une infrastructure informatique distribuée qui peut gérer des ensembles de données à grande échelle. Il est capable de traiter des données en parallèle, en utilisant plusieurs nœuds du cluster pour le calcul, augmentant ainsi la vitesse de traitement. En revanche, les pandas s'exécutent sur une seule machine et peuvent être liés à la mémoire pour les grands ensembles de données.

2. Capacités de traitement des données : Spark fournit une multitude de fonctions de traitement des données, y compris le nettoyage des données, la conversion et l'ingénierie des fonctionnalités. Grâce à l'API DataFrame de Spark, vous pouvez utiliser une syntaxe de type SQL pour effectuer diverses opérations, telles que le filtrage, l'agrégation, le tri, etc. Relativement parlant, pandas fournit également des fonctions similaires, mais les capacités de traitement de données de Spark sont plus puissantes et flexibles.

3. Prise en charge multilingue : Spark prend en charge plusieurs langages de programmation, notamment Scala, Java, Python et R. Cela signifie que vous pouvez utiliser le langage de programmation que vous connaissez le mieux pour le traitement des données et l'apprentissage automatique. Pandas est principalement écrit en Python et ne prend en charge que le langage Python.

4. Évolutivité : Spark peut être intégré de manière transparente à d'autres outils et frameworks de Big Data (tels que Hadoop, Hive, HBase, etc.), ce qui facilite la construction de pipelines de traitement de Big Data et d'apprentissage automatique de bout en bout. En outre, Spark fournit également de riches bibliothèques d'apprentissage automatique (telles que MLlib) et des bibliothèques de traitement de graphes (telles que GraphX) pour faciliter les tâches complexes d'apprentissage automatique.

5. Stockage de fragments de données : Spark divise les données en plusieurs fragments et les stocke sur différents nœuds du cluster. Cette méthode de stockage par fragmentation des données permet d'améliorer les performances de lecture et de traitement parallèles des données. Tandis que les pandas chargent l'intégralité de l'ensemble de données en mémoire, ce qui peut entraîner un manque de mémoire ou une dégradation des performances pour les grands ensembles de données.

5. Utiliser Python et Spark pour développer des applications Big Data

Dans cet article, nous allons explorer comment développer une application Big Data à l'aide de Python et Spark. Nous allons charger un fichier CSV, exécuter un algorithme d'apprentissage automatique, puis faire des prédictions sur les données. Pour les débutants, c'est un excellent exemple pour commencer, et pour les développeurs expérimentés, de nouvelles idées et perspectives peuvent également être découvertes.

Préparation environnementale

Avant de commencer, nous devons installer et configurer les outils et bibliothèques suivants :

Python3
Apache Spark
PySpark
Jupyter Notebook
Dans ce didacticiel, nous utiliserons Jupyter Notebook comme environnement de développement car il est pratique pour nous de montrer et d'expliquer le code.

charger le fichier CSV

Tout d'abord, nous devons charger un fichier CSV. Dans cet exemple, nous utiliserons un jeu de données simple avec des données utilisateur simulées.

6. Code de formation d'apprentissage automatique basé sur Spark

from pyspark.sql import SparkSession

spark = SparkSession.builder.appName("Python Spark CSV").getOrCreate()

# 利用inferSchema参数进行类型推断
df = spark.read.format('csv').option('header', 'true').option('inferSchema', 'true').load('GDM.csv')

df.show()

from pyspark.sql.functions import col

# 删除含有空值的行
df = df.dropna()

# 转换数据类型
df = df.withColumn("AGE", col("AGE").cast("integer"))

df.show()

from pyspark.ml.feature import VectorAssembler
from pyspark.ml.classification import LogisticRegression

# 选择用于预测的特征列
assembler = VectorAssembler(
    inputCols=["GW", "APB", "APA1", "CRE", "CHOL", "UA","ALP", "TG", "GLU"],
    outputCol="features")

# 将数据集转换为适合机器学习的格式
output_data = assembler.transform(df)

# 构建逻辑回归模型
lr = LogisticRegression(featuresCol='features', labelCol='GDM')

# 划分数据集为训练集和测试集
train_data, test_data = output_data.randomSplit([0.7, 0.3])


# 训练模型
lr_model = lr.fit(train_data)

# 测试模型
predictions = lr_model.transform(test_data)

# 展示预测结果
#predictions.show()

from pyspark.ml.evaluation import BinaryClassificationEvaluator

# 构建评估器
evaluator = BinaryClassificationEvaluator()

predictions = predictions.withColumnRenamed("GDM", "label")
# 计算AUC
auc = evaluator.evaluate(predictions)

print(f"AUC: {
      
      auc}")

Cet article utilise Python et Spark pour créer les étapes de base d'une application Big Data. Cet article couvre les étapes de base de la création d'applications Big Data : chargement des données, prétraitement des données, formation des modèles, test des modèles et évaluation des modèles. J'espère que vous pourrez apprendre quelque chose d'utile à partir de cet exemple.

Je suppose que tu aimes

Origine blog.csdn.net/weixin_42878111/article/details/131805216
conseillé
Classement