Python >> Tutoriel Python >  >> Python Tag >> TensorFlow

Quelle est la différence entre scikit-learn et tensorflow ? Est-il possible de les utiliser ensemble ?

Votre compréhension est à peu près parfaite, bien que très, très basique. TensorFlow est plus une bibliothèque de bas niveau. Fondamentalement, nous pouvons considérer TensorFlow comme les briques Lego (similaires à NumPy et SciPy) que nous pouvons utiliser pour implémenter des algorithmes d'apprentissage automatique, tandis que Scikit-Learn est livré avec des algorithmes prêts à l'emploi, par exemple des algorithmes de classification tels que SVM, Random Forêts, régression logistique et bien d'autres encore. TensorFlow brille vraiment si nous voulons implémenter des algorithmes d'apprentissage en profondeur, car il nous permet de tirer parti des GPU pour une formation plus efficace. TensorFlow est une bibliothèque de bas niveau qui vous permet de créer des modèles d'apprentissage automatique (et d'autres calculs) à l'aide d'un ensemble d'opérateurs simples, tels que "add", "matmul", "concat", etc.

Cela a du sens jusqu'à présent ?

Scikit-Learn est une bibliothèque de niveau supérieur qui comprend des implémentations de plusieurs algorithmes d'apprentissage automatique, vous pouvez donc définir un objet modèle en une seule ligne ou quelques lignes de code, puis l'utiliser pour ajuster un ensemble de points ou prédire une valeur.

Tensorflow est principalement utilisé pour l'apprentissage en profondeur tandis que Scikit-Learn est utilisé pour l'apprentissage automatique.

Voici un lien qui vous montre comment effectuer une régression et une classification à l'aide de TensorFlow. Je suggère fortement de télécharger les ensembles de données et d'exécuter le code vous-même.

https://stackabuse.com/tensorflow-2-0-resolution-classification-and-regression-problems/

Bien sûr, vous pouvez effectuer de nombreux types de régression et de classification à l'aide de Scikit-Learn, sans TensorFlow. Je suggérerais de lire la documentation de Scikit-Learn lorsque vous en aurez l'occasion.

https://scikit-learn.org/stable/user_guide.html

Cela va prendre un certain temps pour tout parcourir, mais si vous y parvenez, vous en aurez appris une tonne !!! Enfin, vous pouvez obtenir le guide de l'utilisateur de plus de 2 600 pages pour Scikit-Learn à partir du lien ci-dessous.

https://scikit-learn.org/stable/_downloads/scikit-learn-docs.pdf


Le Tensorflow est une bibliothèque pour construire des réseaux de neurones. Le scikit-learn contient des algorithmes prêts à l'emploi. Le TF peut fonctionner avec une variété de types de données :tabulaire, texte, images, audio. Le scikit-learn est destiné à fonctionner avec des données tabulaires.

Oui, vous pouvez utiliser les deux forfaits. Mais si vous n'avez besoin que d'une implémentation multicouche classique, le MLPClassifier et MLPRegressor disponible dans scikit-learn est un très bon choix. J'ai effectué une comparaison de MLP implémenté dans TF vs Scikit-learn et il n'y avait pas de différences significatives et scikit-learn MLP fonctionne environ 2 fois plus vite que TF sur CPU. Vous pouvez lire les détails de la comparaison dans mon article de blog.

Ci-dessous les diagrammes de dispersion de la comparaison des performances :