Sklearn make_scorer tutoriel : Créer vos propres métriques.
HTML-код
- Опубликовано: 13 окт 2024
- Dans ce tutoriel python français, je vous montre comment utiliser la fonction make_scrorer de sklearn. Cette fonction est utile pour créer vos propres métriques dans sklearn et développer des modeles de Machine Learning / Data Science sur la base de ces métriques (via la Cross Validation et GridSeachCV)
► MON SITE INTERNET EN COMPLÉMENT DE CETTE VIDÉO:
machinelearnia...
► REJOINS NOTRE COMMUNAUTÉ DISCORD
/ discord
► D'autres BONUS sur Tipeee:
fr.tipeee.com/...
► Recevez gratuitement mon Livre:
APPRENDRE LE MACHINE LEARNING EN UNE SEMAINE
CLIQUEZ ICI:
machinelearnia...
► Télécharger gratuitement mes codes sur github:
github.com/Mac...
► Abonnez-vous : / @machinelearnia
► Pour En Savoir plus : Visitez Machine Learnia : machinelearnia...
► Qui suis-je ?
Je m’appelle Guillaume Saint-Cirgue et je suis Data Scientist au Royaume Uni. Après avoir suivi un parcours classique maths sup maths spé et avoir intégré une bonne école d’ingénieur, je me suis tourné vers l’intelligence artificielle de ma propre initiative et j’ai commencé à apprendre tout seul le machine learning et le deep learning en suivant des formations payantes, en lisant des articles scientifiques, en suivant les cours du MIT et de Stanford et en passant des week end entier à développer mes propres codes.
Aujourd’hui, je veux vous offrir ce que j’ai appris gratuitement car le monde a urgemment besoin de se former en Intelligence Artificielle.
Que vous souhaitiez changer de vie, de carrière, ou bien développer vos compétences à résoudre des problèmes, ma chaîne vous y aidera.
C’est votre tour de passer à l’action !
► Une question ? Contactez-moi: contact@machinelearnia.com
"Avec vous, les sujets complexes semblent tellement simples. Merci pour cette vidéo !"
Bonjour, je me nomme Ibrahim Diarra etudiant en Master 2 Systeme d'information et tres passionne par la data science, je suis vos tutoriel et j'aimerais vraiment travailler dans ce domaine. vous etes le meilleur sur youtube que j'ai vu dans ce domaine. vous me donner gout de continuer.
Merci beaucoup Ibrahim ! Je suis content de pouvoir vous aider a atteindre vos objectifs. Foncez, vous êtes le meilleur !
Encore une excellente vidéo. Au passage, les videos sur Tipeee sont énormes.
Merci beaucoup, et c'est cool d'avoir un témoignage a propos des vidéos Tipeees ;)
merci pour la vidéo, et j'ai beaucoup aimer l'intro qui donne bien le contexte entreprise, ça m'aide beaucoup, car pour comprendre j'aime beaucoup conceptualiser pour me mettre en situation d'entreprise ou cas concret, sinon je ne comprendrais rien.
C'est normal de devoir se raccrocher a un cas concret pour bien comprendre, ne t'en fais pas ! :)
TRES EXCELENT ! MERCIII MR.
Vidéo super utile merci ! Les infographies publiées sur tipeee sont top ! 👍
Merci beaucoup !
Toujours au top.
Merci beaucoup :)
Chapeau à toi
super info !
Merci pour cette vidéo ainsi que pour toutes les autres, elles sont géniales.
J'aurai une question concernant la normalisation des données dans un dataset.
Je ne comprend pas en quoi cela est utile dans le développement d'un modèle de ML et tu ne l'utilise jamais dans tes modèles, par exemple dans le dataset des prix de l'immobilier de Boston. Pourtant les features n'ont pas la même unités.
Si tu as une brève explication, je serai ravi de l'entendre et si la raison est plus complexe cela pourrai faire un sujet de vidéo assez cool.
Bonne continuation
Merci d'avoir poser cette question si importante. A l'exception des modeles basés sur les arbres de décisions, il faut Toujours normaliser nos données. Si je ne l'ai pas fait dans mes vidéos jusqu’à présent, c'est pour ne pas brusquer les choses en transmettant trop d'informations d'un coup.
Cependant, le hasard des choses fait que la prochaine vidéo porte totalement sur ce sujet !
En attendant, pour répondre a ta question : la normalisation aide principalement les descentes de gradient a converger plus facilement (je l'expliquerai en dessin dans une vidéo prochaine). La normalisation aide également les algorithmes de voisins les plus proches car les distances calculée sont toutes sur une même échelle (je montrerai également cela en dessin) et pour finir la normalisation impacte aussi les calculs de variances, donc les algorithmes tels que SVM, PCA obtiennent de meilleurs performances (il faut se plonger dans les détails mathématiques pour mieux comprendre pourquoi)
Merci beaucoup pour ces enseignements bien conçus et avec une belle translation mais svp Mr Saint-Cirgue, pouvez-vous faire une vidéo sur l'implémentation de l'algorithme du gradient à pas constant sous un programme de votre
choix (Scilab ou Python) ?
Bonjour, Je l'ai déja fait dans les vidéos sur la regression lineaire, avec l'explication mathematique qui va avec.
Très intéressant, merci
de rien :)
Super !
Je m'étais toujours demandé comment s'adapter à des cas spécifiques.
Du genre, une tolérance de 10 % est acceptable, mais il ne faut surtout pas de faux positifs.
Merci !
De rien ! Ça fait plaisir de te revoir sur la chaîne :)
Merci infiniment pour cette super vidéo😌
est ce que on peut tracer la courbe d'erreur pour le dernier model ? Vraiment merci pour ta présence et pour cette chaine RUclips.
Merci beaucoup ! :)
Oui on peut tracer les scores de la Cross_validation en écrivant grid.cv_results. Cela donne un tableau numpy qui contient les différents scores a travers la cross validation.
Ensuite il ne reste plus qu'a visualiser ce tableau avec Matplotlib.
Merci Beaucoup je vais essayer de le faire💪.
@@espoireespoire4227 Je suis sur que tu vas réussir ! n'hésite pas a me dire si tu as besoin d'aide ! :D
Hello World 👋🏾! Super vidéo Machinelearnia je crois que je vais énormément m’en servir 😅
Merci Ulrich ! Je suis content si ca peut t'aider oui :)
Very good learning for make_scorer
thank you !
Merci bcp; c'est super, bn continuation
Merci :)
J’aimerais bien recevoir tes conseils, je suis en Master2 de Data Science
Très belle vidéo merci pour le partage.
J'ai une petite question comment peut on calculer le "confidence interval" et "Prediction interval" dans le cas de forecasting d'une "time series" avec le régresseur SVR?
Merci d'avance
le SVR n'est pas un modele de time series, je suis un peu confu par votre question du coup.
au top !
Merci Flo !
👍
Bonjour !
Avant tout j'espère que tu as passé un bon réveillon.
Et merci pour le contenu de ta chaîne :)
Intéressé par l'application de la ML avec le business, je serai intéressé d'échanger avec toi sur nos parcours respectifs et notamment ce que tu entends par "ML engineer" : Les definitions que j'ai trouvé ne recouvrent pas tous le même champs et il est assez difficile de trouvé un profil et compétences types (par exemple).
Ce serait avec grand plaisir d'échanger avec toi si tu l'accepte :)
Salut et merci beaucoup !
Je serai heureux de répondre à tes questions sur discord, tu peux trouver le lien vers la communauté dans la description de la vidéo.
Bonnes fêtes de fin d'année à toi également ;)
👍👍
Thanks
Super vidéo !!
J'ai une question:
Dans le cadre d'une classification à 3 classes , comment construire sa métrique avec la probabilité pour chaque classes donnée par notre modèle ( c-à-d que j'aimerais utiliser y_pred_proba=mon_model.predict_proba(X) dans la fonction qui calcule mon indice de performance ) ?
L’idée est intéressante, mais est-il judicieux de la mettre en place ? Vouloi maximiser les bonnes probabilités revient a vouloir maximiser les pourcentages de bonnes réponses, mais cela peut rendre le travail de la machine plus long. Je ne voudrais pas vous conseiller une solution qui va vous prendre beaucoup de temps a mettre en place pour ne pas vous donner de résultats
Super. Où se trouve la dataset svp?
J'ai simulé ces données moi-même avec Numpy. Vous pouvez recopier le code qui se situe au début de la vidéo pour obtenir le même résultat.
Merci infiniment pour cette vidéo,
j'ai juste une petite question, là on a utilisé la régression et ça a donné un mauvais score, et même avec le SVR ça ne donne pas vraiment de très bon résultats; alors je me demandais quel serait le(les) meilleurs modèles pour ce genre de dataset ?
Merci beaucoup.
Cordialement.
Pour cette vidéo en particulier, un KNN pourrait bien fonctionner, mais pas dans la vraie vie (si on a trop de données). Dans la vraie vie il faudrait faire beaucoup de pre-processing et du feature engineering (création de variables utiles) pour entrainer ensuite un modele de ML
Thinks
Quand tu utilises cross validation et grid cv pourquoi tu passes en argument X et y et pas X_train et y_train ?
La fonction mean_absolute_error(y, y_pred) doit correspondre à la fonction vue dans un précédent tuto soit :
def coeff_determination(y, pred):
u = ((y - pred)**2).sum()
v = ((y - y.mean())**2).sum()
return 1 - u/v
coeff_determination(y, predictions)
Est-ce bien cela ?
Merci.
Merci à toi. fais péter l'url du site de tip participatif...
Merci beaucoup. Le lien est dans la description de la vidéo
salut !! je me demandait si c'est possible que tu fasses un cas pratique sur le machine learning un jour... !!
Salut ! :) Je vais bientôt en faire TOUT PLEINS ! (spoiler : ça va commencer avec la vidéo 28/30 qui arrivent bientôt car le rythme de vidéos s’accélère)
Alors là je ne comprends pas : Le cahier des charges est d'un taux d'erreur de plus ou moins 20%. Après le calcul du meilleur modèle on obtient avec la commande custom_metric(y, y_pred) une probabilité de 64%.
Donc on a tout faux sur cet exercice ? Quelle est l'astuce ? Ai-je dis une grooosssseeee betise ?
Merci.
Bonjour,
Serait-il possible d'avoir une réponse à ma précédente question car sur cette vidéo ce point est bloquant pour moi.
Et oui, cela arrive... ;)
Merci.
quand une prédiction est différente de plus de 20% de la réalité, alors c'est une erreur !
Ensuite on compte le nombre d'erreurs -> par exemple si 90 prédictions sur 100 sont correctes (en dessous du seuil des 20%) alors on a un score général de 90%
@@MachineLearnia Merci pour ta réponse : cela je l'avais compris.
Ce que je ne comprends pas, c'est pourquoi avec la commande custom_metric(y, y_pred) une probabilité de 64%. Cela semble mauvais comme résultat.
A+ ;)
Si les y sont tres faibles (proche de 0) alors la tolérance de 20% devient elle aussi tres petite, ce qui peut expliquer le taux d'erreur élevés.
Bonjour Guillaume, Pouvez vous m'aidez sur ce probleme: je bloc sur
#model = SVR(kernel='rbf', degree=3)
#param = {'gamma': np.arrange(0.1, 1, 0.05)}
#grid = GridSearchCV(model, param_grid=param, cv=3, scoring=custom_score)
il plante a cette endroit et me donne comme erreur
File "C:\Users\pierre\anaconda3\lib\site-packages
umpy\__init__.py", line 214, in __getattr__
raise AttributeError("module {!r} has no attribute "
pourtant j'ai tout comme la video!!
même en mettant params
j'ai trouvé un peu de repos et on s'epercoit de nos erreur {'gamma': np.arrange(0.1, 1, 0.05)}
{'gamma': np.arange(0.1, 1, 0.05)}
et sa change tout et sa fonctionne surtout(mdr)
Bravo pour avoir su trouver toi-meme la solution a ton erreur ! Tu iras loin :)
def custom_error(y,y_pred):
return 1-(1/len(y))*np.sum(y-y_pred)**2