


Résumé du réglage des hyperparamètres d'apprentissage automatique (PySpark ML)
Une tâche importante en ML est la sélection de modèles ou l'utilisation de données pour trouver le meilleur modèle ou les meilleurs paramètres pour une tâche donnée. C'est ce qu'on appelle également le réglage. Vous pouvez régler un seul estimateur, tel que LogisticRegression, ou un pipeline entier comprenant plusieurs algorithmes, caractérisations et autres étapes. Les utilisateurs peuvent régler l'ensemble du pipeline en même temps, plutôt que de régler chaque élément du pipeline individuellement.
Une tâche importante en ML est la sélection de modèles ou l'utilisation de données pour trouver le meilleur modèle ou les meilleurs paramètres pour une tâche donnée. C'est ce qu'on appelle également le réglage. Vous pouvez régler un seul estimateur (tel que LogisticRegression) ou un pipeline entier comprenant plusieurs algorithmes, caractérisations et autres étapes. Les utilisateurs peuvent régler l'ensemble du pipeline en même temps, plutôt que de régler chaque élément du pipeline individuellement.
MLlib prend en charge la sélection de modèles à l'aide d'outils tels que CrossValidator et TrainValidationSplit. Ces outils nécessitent les éléments suivants :
- Estimateur : l'algorithme ou le pipeline à régler
- Un ensemble de paramètres : un ensemble de paramètres sélectionnables, parfois appelé "grille de paramètres" de la recherche
- Évaluateur : ajustement métrique Performance du modèle sur données de test
Voici comment fonctionnent ces outils de sélection de modèles :
- Ils divisent les données d'entrée en ensembles de données d'entraînement et de test distincts.
- Pour chaque paire (formation, test), ils parcourent la collection ParamMap :
Pour chaque ParamMap, utilisez ces paramètres pour ajuster l'estimateur, obtenez le modèle ajusté et utilisez l'évaluateur pour évaluer les performances de le Modèle.
- Ils choisissent le modèle à générer par l'ensemble de paramètres le plus performant.
Pour aider à construire la grille paramétrique, les utilisateurs peuvent utiliser ParamGridBuilder. Par défaut, les jeux de paramètres de la grille de paramètres sont calculés en série. L'évaluation des paramètres peut être effectuée en parallèle en définissant le degré de parallélisme sur 2 ou plus (une valeur de 1 sera en série) avant d'exécuter la sélection de modèle avec CrossValidator ou TrainValidationSplit. La valeur du parallélisme doit être choisie avec soin pour maximiser le parallélisme sans dépasser les ressources du cluster ; des valeurs plus élevées n'améliorent pas nécessairement les performances. De manière générale, une valeur supérieure à 10 devrait suffire pour la plupart des clusters.
Cross Validation
CrossValidator Cross Validator divise d'abord l'ensemble de données en un ensemble d'ensembles de données pliés qui sont utilisés comme ensembles de données de formation et de test distincts. Par exemple, lorsque k = 3 fois, CrossValidator générera 3 paires d'ensembles de données (formation, test), chaque paire d'ensembles de données utilisant 2/3 des données pour la formation et 1/3 des données pour les tests. Pour évaluer un ParamMap spécifique, CrossValidator calcule la métrique d'évaluation moyenne en ajustant 3 modèles produits par Estimator sur 3 paires d'ensembles de données différentes (entraînement, test).
Après avoir déterminé le meilleur ParamMap, CrossValidator réassocie enfin l'estimateur en utilisant le meilleur ParamMap et l'ensemble des données.
from pyspark.ml import Pipeline from pyspark.ml.classification import LogisticRegression from pyspark.ml.evaluation import BinaryClassificationEvaluator from pyspark.ml.feature import HashingTF, Tokenizer from pyspark.ml.tuning import CrossValidator, ParamGridBuilder # 准备训练文件,并做好标签。 training = spark.createDataFrame([ (0, "a b c d e spark", 1.0), (1, "b d", 0.0), (2, "spark f g h", 1.0), (3, "hadoop mapreduce", 0.0), (4, "b spark who", 1.0), (5, "g d a y", 0.0), (6, "spark fly", 1.0), (7, "was mapreduce", 0.0), (8, "e spark program", 1.0), (9, "a e c l", 0.0), (10, "spark compile", 1.0), (11, "hadoop software", 0.0) ], ["id", "text", "label"]) # 配置一个ML管道,它由树stages组成:tokenizer、hashingTF和lr。 tokenizer = Tokenizer(inputCol="text", outputCol="words") hashingTF = HashingTF(inputCol=tokenizer.getOutputCol(), outputCol="features") lr = LogisticRegression(maxIter=10) pipeline = Pipeline(stages=[tokenizer, hashingTF, lr]) # 我们现在将Pipeline作为一个Estimator,将其包装在CrossValidator实例中。 # 这将允许我们共同选择所有管道阶段的参数。 # 交叉验证器需要一个Estimator、一组Estimator ParamMaps和一个Evaluator。 # 我们使用ParamGridBuilder来构造一个用于搜索的参数网格。 # hashingTF.numFeatures 的3个值, lr.regParam的2个值, # 这个网格将有3 x 2 = 6的参数设置供CrossValidator选择。 paramGrid = ParamGridBuilder() .addGrid(hashingTF.numFeatures, [10, 100, 1000]) .addGrid(lr.regParam, [0.1, 0.01]) .build() crossval = CrossValidator(estimator=pipeline, estimatorParamMaps=paramGrid, evaluator=BinaryClassificationEvaluator(), numFolds=2)# 使用3+ folds # 运行交叉验证,并选择最佳参数集。 cvModel = crossval.fit(training) # 准备测试未标注的文件 test = spark.createDataFrame([ (4, "spark i j k"), (5, "l m n"), (6, "mapreduce spark"), (7, "apache hadoop") ], ["id", "text"]) # 对测试文档进行预测, cvModel使用发现的最佳模型(lrModel)。 prediction = cvModel.transform(test) selected = prediction.select("id", "text", "probability", "prediction") for row in selected.collect(): print(row)
Train Validation Split
En plus de CrossValidator, Spark fournit également TrainValidationSplit pour le réglage des hyperparamètres. TrainValidationSplit ne calcule chaque combinaison de paramètres qu'une seule fois, contre k fois dans le cas de CrossValidator . Par conséquent, elle est moins coûteuse, mais elle ne produit pas de résultats fiables lorsque l’ensemble de données d’entraînement n’est pas suffisamment volumineux.
Contrairement à CrossValidator, TrainValidationSplit crée une seule paire d'ensembles de données (entraînement, test). Il utilise le paramètre trainRatio pour diviser l'ensemble de données en ces deux parties. Par exemple, lorsque trainRatio = 0,75, TrainValidationSplit générera une paire d'ensembles de données d'entraînement et de test avec 75 % des données utilisées pour la formation et 25 % pour la validation.
Comme CrossValidator, TrainValidationSplit utilise en fin de compte le meilleur ParamMap et l'estimateur correspondant pour l'ensemble de données.
from pyspark.ml.evaluation import RegressionEvaluator from pyspark.ml.regression import LinearRegression from pyspark.ml.tuning import ParamGridBuilder, TrainValidationSplit # Prepare training and test data. data = spark.read.format("libsvm") .load("data/mllib/sample_linear_regression_data.txt") train, test = data.randomSplit([0.9, 0.1], seed=12345) lr = LinearRegression(maxIter=10) # 我们使用ParamGridBuilder来构造一个用于搜索的参数网格。 # TrainValidationSplit将尝试所有值的组合,并使用评估器确定最佳模型。 paramGrid = ParamGridBuilder() .addGrid(lr.regParam, [0.1, 0.01]) .addGrid(lr.fitIntercept, [False, True]) .addGrid(lr.elasticNetParam, [0.0, 0.5, 1.0]) .build() # 在这种情况下,估计器是简单的线性回归。 # TrainValidationSplit需要一个Estimator、一组Estimator ParamMaps 和一个 Evaluator。 tvs = TrainValidationSplit(estimator=lr, estimatorParamMaps=paramGrid, evaluator=RegressionEvaluator(), # 80%的数据将用于培训,20%用于验证。 trainRatio=0.8) # 运行TrainValidationSplit,并选择最佳参数集。 model = tvs.fit(train) # 对测试数据进行预测。模型是参数组合后性能最好的模型。 model.transform(test) .select("features", "label", "prediction") .show()
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)

Dans les domaines de l’apprentissage automatique et de la science des données, l’interprétabilité des modèles a toujours été au centre des préoccupations des chercheurs et des praticiens. Avec l'application généralisée de modèles complexes tels que l'apprentissage profond et les méthodes d'ensemble, la compréhension du processus décisionnel du modèle est devenue particulièrement importante. Explainable AI|XAI contribue à renforcer la confiance dans les modèles d'apprentissage automatique en augmentant la transparence du modèle. L'amélioration de la transparence des modèles peut être obtenue grâce à des méthodes telles que l'utilisation généralisée de plusieurs modèles complexes, ainsi que les processus décisionnels utilisés pour expliquer les modèles. Ces méthodes incluent l'analyse de l'importance des caractéristiques, l'estimation de l'intervalle de prédiction du modèle, les algorithmes d'interprétabilité locale, etc. L'analyse de l'importance des fonctionnalités peut expliquer le processus de prise de décision du modèle en évaluant le degré d'influence du modèle sur les fonctionnalités d'entrée. Estimation de l’intervalle de prédiction du modèle

Cet article présentera comment identifier efficacement le surajustement et le sous-apprentissage dans les modèles d'apprentissage automatique grâce à des courbes d'apprentissage. Sous-ajustement et surajustement 1. Surajustement Si un modèle est surentraîné sur les données de sorte qu'il en tire du bruit, alors on dit que le modèle est en surajustement. Un modèle surajusté apprend chaque exemple si parfaitement qu'il classera mal un exemple inédit/inédit. Pour un modèle surajusté, nous obtiendrons un score d'ensemble d'entraînement parfait/presque parfait et un score d'ensemble/test de validation épouvantable. Légèrement modifié : "Cause du surajustement : utilisez un modèle complexe pour résoudre un problème simple et extraire le bruit des données. Parce qu'un petit ensemble de données en tant qu'ensemble d'entraînement peut ne pas représenter la représentation correcte de toutes les données."

Dans les années 1950, l’intelligence artificielle (IA) est née. C’est à ce moment-là que les chercheurs ont découvert que les machines pouvaient effectuer des tâches similaires à celles des humains, comme penser. Plus tard, dans les années 1960, le Département américain de la Défense a financé l’intelligence artificielle et créé des laboratoires pour poursuivre son développement. Les chercheurs trouvent des applications à l’intelligence artificielle dans de nombreux domaines, comme l’exploration spatiale et la survie dans des environnements extrêmes. L'exploration spatiale est l'étude de l'univers, qui couvre l'ensemble de l'univers au-delà de la terre. L’espace est classé comme environnement extrême car ses conditions sont différentes de celles de la Terre. Pour survivre dans l’espace, de nombreux facteurs doivent être pris en compte et des précautions doivent être prises. Les scientifiques et les chercheurs pensent qu'explorer l'espace et comprendre l'état actuel de tout peut aider à comprendre le fonctionnement de l'univers et à se préparer à d'éventuelles crises environnementales.

Les défis courants rencontrés par les algorithmes d'apprentissage automatique en C++ incluent la gestion de la mémoire, le multithread, l'optimisation des performances et la maintenabilité. Les solutions incluent l'utilisation de pointeurs intelligents, de bibliothèques de threads modernes, d'instructions SIMD et de bibliothèques tierces, ainsi que le respect des directives de style de codage et l'utilisation d'outils d'automatisation. Des cas pratiques montrent comment utiliser la bibliothèque Eigen pour implémenter des algorithmes de régression linéaire, gérer efficacement la mémoire et utiliser des opérations matricielles hautes performances.

Traducteur | Revu par Li Rui | Chonglou Les modèles d'intelligence artificielle (IA) et d'apprentissage automatique (ML) deviennent aujourd'hui de plus en plus complexes, et le résultat produit par ces modèles est une boîte noire – impossible à expliquer aux parties prenantes. L'IA explicable (XAI) vise à résoudre ce problème en permettant aux parties prenantes de comprendre comment fonctionnent ces modèles, en s'assurant qu'elles comprennent comment ces modèles prennent réellement des décisions et en garantissant la transparence des systèmes d'IA, la confiance et la responsabilité pour résoudre ce problème. Cet article explore diverses techniques d'intelligence artificielle explicable (XAI) pour illustrer leurs principes sous-jacents. Plusieurs raisons pour lesquelles l’IA explicable est cruciale Confiance et transparence : pour que les systèmes d’IA soient largement acceptés et fiables, les utilisateurs doivent comprendre comment les décisions sont prises

La vérification de sécurité des types de paramètres C++ garantit que les fonctions n'acceptent que les valeurs des types attendus via des vérifications au moment de la compilation, des vérifications au moment de l'exécution et des assertions statiques, évitant ainsi tout comportement inattendu et les plantages du programme : Vérification du type au moment de la compilation : le compilateur vérifie la compatibilité des types. Vérification du type d'exécution : utilisez Dynamic_cast pour vérifier la compatibilité des types et lancez une exception s'il n'y a pas de correspondance. Assertion statique : affirmer les conditions de type au moment de la compilation.

MetaFAIR s'est associé à Harvard pour fournir un nouveau cadre de recherche permettant d'optimiser le biais de données généré lors de l'apprentissage automatique à grande échelle. On sait que la formation de grands modèles de langage prend souvent des mois et utilise des centaines, voire des milliers de GPU. En prenant comme exemple le modèle LLaMA270B, sa formation nécessite un total de 1 720 320 heures GPU. La formation de grands modèles présente des défis systémiques uniques en raison de l’ampleur et de la complexité de ces charges de travail. Récemment, de nombreuses institutions ont signalé une instabilité dans le processus de formation lors de la formation des modèles d'IA générative SOTA. Elles apparaissent généralement sous la forme de pics de pertes. Par exemple, le modèle PaLM de Google a connu jusqu'à 20 pics de pertes au cours du processus de formation. Le biais numérique est à l'origine de cette imprécision de la formation,

L'apprentissage automatique est une branche importante de l'intelligence artificielle qui donne aux ordinateurs la possibilité d'apprendre à partir de données et d'améliorer leurs capacités sans être explicitement programmés. L'apprentissage automatique a un large éventail d'applications dans divers domaines, de la reconnaissance d'images et du traitement du langage naturel aux systèmes de recommandation et à la détection des fraudes, et il change notre façon de vivre. Il existe de nombreuses méthodes et théories différentes dans le domaine de l'apprentissage automatique, parmi lesquelles les cinq méthodes les plus influentes sont appelées les « Cinq écoles d'apprentissage automatique ». Les cinq grandes écoles sont l’école symbolique, l’école connexionniste, l’école évolutionniste, l’école bayésienne et l’école analogique. 1. Le symbolisme, également connu sous le nom de symbolisme, met l'accent sur l'utilisation de symboles pour le raisonnement logique et l'expression des connaissances. Cette école de pensée estime que l'apprentissage est un processus de déduction inversée, à travers les connaissances existantes.
