En informatique, un algorithme de Las Vegas est un type d'algorithme probabiliste qui donne toujours un rsultat correct ; son caractre alatoire lui donne de meilleures performances temporelles en moyenne[2]. Comme le suggre David Harel dans son livre d'algorithmique[3], ainsi que Motvani et Raghavan[2], le tri rapide randomis[4] est un exemple paradigmatique d'algorithme de Las Vegas.
Quand le problme que l'algorithme rsout possde plusieurs solutions, sur une mme donne, comme c'est le cas pour le tri d'un tableau qui contient des cls quivalentes, l'algorithme de Las Vegas peut retourner l'une ou l'autre de ces solutions, et il le fait de faon non prvisible.
L'alatoire se situe au niveau du choix des pivots. Le rsultat est un tableau tri, quels que soient les choix de pivots, i.e. le rsultat est toujours correct. En revanche, le temps d'excution dpend de ces choix. C'est, en fait, un tri souvent utilis sur des tableaux de grandes tailles parce que, de manire empirique, il donne de bons rsultats en complexit temporelle[5]. Dans les figures droite, l'algorithme est excut deux fois sur le mme chantillon ; on voit que l'on obtient un tableau tri dans les deux cas, alors que les pivots sont choisis alatoirement.
tant donn un algorithme de Las Vegas A, Luby, Sinclair et Zuckerman ont tudi comment minimiser l'esprance du temps requis pour obtenir la rponse de A. Pour cela ils adoptent une stratgie[7] qui indique, quand relancer l'algorithme[8]. On note TA(x) le temps d'une excution de A sur l'entre x ; ce temps n'est pas toujours le mme, c'est une variable alatoire.
Un algorithme de Las Vegas est un algorithme probabiliste (utilisant le hasard) qui fournit toujours un rsultat juste. Ainsi, l'algorithme renverra toujours une solution au problme pos mais sa complexit temporelle n'est pas prvisible. Par des bons choix lors des points cls de l'excution de l'algorithme, on doit pouvoir montrer que cette complexit est faible.
Ces algorithmes ont t ainsi nomms par Laszlo Babai en 1979 par mtonymie avec les algorithmes de Monte-Carlo. On nommera par la suite une troisime famille d'algorithmes probabilistes les algorithmes d'Atlantic City, en rfrence aux nombreux jeux d'argent se droulant dans ces trois villes.
Les algorithmes de Monte-Carlo sont des algorithmes probabilistes qui utilisent le hasard pour renvoyer la meilleure rponse possible en un temps fix. La complexit temporelle est donc fix pour ces algorithmes. Cependant, la justesse du rsultat est soumise une incertitude.
Les algorithmes d'Atlantic City essayent de tirer le meilleur des deux mthodes prcdentes. Ce type d'algorithme renverra presque toujours un rsultat juste en un temps presque toujours fix. L'incertitude se situe donc sur la complexit temporelle et sur la justesse du rsultat.
Un algorithme est correct s'il fait ce qu'on attend de lui. Plus prcisment, rappelons qu'un algorithme est dcrit par une spcification des donnes sur lesquelles l'algorithme va dmarrer son calcul et une spcification du rsultat produit par l'algorithme. Dmontrer la correction de l'algorithme consiste dmontrer que l'algorithme retourne, quand il calcule en partant des donnes, un objet qui est un des rsultats escompts et qui satisfait la spcification du rsultat comme nonc dans la description de l'algorithme.
Pour s'assurer qu'un algorithme est correct, il faut dmontrer deux choses: il faut dmontrer que l'algorithme se termine (terminaison), autrement dit qu'il ne boucle pas ou ne diverge pas, produisant au moins un rsultat et que le rsultat de l'algorithme est effectivement de la forme nonce par la spcification (correction partielle)[1]. La conjonction de la correction partielle et de la terminaison s'appelle la correction totale.
Comme la construction essentielle d'un algorithme itratif est la boucle (construction tant que ou while), l'argument principal de la dmonstration de la correction partielle d'un algorithme itratif est la recherche d'un invariant pour chaque boucle (un invariant de boucle). Un invariant est un prdicat portant sur les variables du programme et sur des variables auxiliaires (ajoutes pour exprimer ce prdicat). La recherche des invariants est une opration difficile qui peut faire sortir de la logique utilise pour dcrire l'algorithme (incompltude). Une fois ces invariants exhibs, le cœur de la dmonstration consiste dmontrer que chaque invariant est effectivement stable lors de l'excution de la boucle ; cela signifie que si l'invariant est satisfait avant l'excution du corps de la boucle, il est satisfait aprs.
Pour dmontrer la correction d'un algorithme rcursif, il faut connatre une prcondition (un prdicat satisfait avant l'appel de l'algorithme) et une postcondition (un prdicat satisfait aprs l'appel de l'algorithme). Il faut ensuite dmontrer que l'algorithme satisfait ce couple (prcondition, postcondition) en admettant qu'au cœur de l'algorithme les appels (rcursifs) internes l'algorithme satisfont ces couples (prcondition, postcondition).
XGBoost (eXtreme Gradient Boosting) est une implmentation open source rpute et efficace de l'algorithme d'arbres de boosting de gradient. L'amplification du gradient est un algorithme d'apprentissage supervis qui tente de prdire avec prcision une variable cible en combinant plusieurs estimations issues d'un ensemble de modles plus simples. L'algorithme XGBoost fonctionne bien dans les comptitions d'apprentissage automatique pour les raisons suivantes :
Cette implmentation prsente une empreinte mmoire rduite, une meilleure journalisation, une meilleure validation des hyperparamtres et un ensemble de mtriques plus important que les versions d'origine. Il fournit un XGBoost estimator qui excute un script d'entranement dans un environnement XGBoost gr. La version actuelle de SageMaker XGBoost est base sur les versions originales 1.0, 1.2, 1.3, 1.5 et 1.7 de XGBoost.
Lorsque vous rcuprez l'URI de l'image SageMaker XGBoost, n'utilisez pas :latest ou :1 pour la balise URI de l'image. Vous devez spcifier l'un des Versions prises en charge pour choisir le conteneur XGBoost SageMaker gr avec la version native du package XGBoost que vous souhaitez utiliser. Pour trouver la version du package migre dans les conteneurs SageMaker XGBoost, voir Chemins de registre Docker et exemple de code. Choisissez ensuite votre Rgion AWS et accdez la section XGBoost (algorithme).
Les versions XGBoost 0.90 sont obsoltes. La prise en charge des mises jour de scurit et des corrections de bogues pour XGBoost 0.90 a t interrompue. Nous vous recommandons vivement de mettre niveau la version XGBoost vers l'une des versions les plus rcentes.
XGBoost v1.1 n'est pas pris en charge sur. SageMaker XGBoost 1.1 n'a pas la capacit d'excuter des prdictions lorsque l'entre de test comporte moins de fonctionnalits que les donnes d'entranement contenues dans les entres LIBSVM. Cette capacit a t restaure dans XGBoost 1.2. Envisagez d'utiliser SageMaker XGBoost 1.2-2 ou version ultrieure.
Avec SageMaker, vous pouvez utiliser XGBoost comme algorithme ou framework intgr. Avec XGBoost en tant que framework, vous bnficiez d'une plus grande flexibilit et d'un accs des scnarios plus avancs, car vous pouvez personnaliser vos propres scripts d'entranement. Les sections suivantes dcrivent comment utiliser XGBoost avec le SDK SageMaker Python. Pour plus d'informations sur l'utilisation de XGBoost depuis l'interface utilisateur Amazon SageMaker Studio Classic, consultez. Formez, dployez et valuez des modles prentrans avec SageMaker JumpStart
Utilisez XGBoost en tant que framework pour excuter des scripts d'entranement qui peuvent intgrer un traitement de donnes supplmentaire dans vos tches d'entranement. Dans l'exemple de code suivant, le SDK SageMaker Python fournit l'API XGBoost en tant que framework. Cela fonctionne de la mme manire SageMaker que les autres API de framework TensorFlow, telles que MXnet et. PyTorch
Utilisez l'algorithme intgr XGBoost pour crer un conteneur d'entranement XGBoost comme indiqu dans l'exemple de code suivant. Vous pouvez dtecter automatiquement l'URI de l'image de l'algorithme intgr XGBoost l'aide de l' SageMaker image_uris.retrieveAPI. Si vous utilisez le SDK Amazon SageMaker Python version 1, utilisez l'get_image_uriAPI. Pour vous assurer que l'image_uris.retrieveAPI trouve l'URI correct, consultez la section Paramtres communs pour les algorithmes intgrs. Recherchez ensuite dans la xgboost liste complte des URI d'images d'algorithmes intgrs et des rgions disponibles.
Aprs avoir spcifi l'URI de l'image XGBoost, utilisez le conteneur XGBoost pour crer un estimateur l'aide de l'API Estimator et lancer une tche de SageMaker formation. Ce mode d'algorithme intgr XGBoost n'intgre pas votre propre script d'entranement XGBoost et s'excute directement sur les jeux de donnes en entre.
Le boosting de gradient fonctionne sur les donnes tabulaires, avec les lignes reprsentant les observations, une colonne reprsentant la variable ou l'tiquette cible, et les autres colonnes reprsentant les fonctions.
Pour l'entranement avec une entre sous forme de colonnes, l'algorithme suppose que la variable cible (tiquette) correspond la premire colonne. Pour l'infrence, l'algorithme suppose que l'entre n'a pas de colonne d'tiquettes.
Pour l'entranement LIBSVM, l'algorithme suppose que les colonnes suivantes, aprs la colonne d'tiquettes, contiennent les paires de valeurs d'index bas sur zro pour les fonctionnalits. Par consquent, chaque ligne a le format suivant : : :.
c80f0f1006