Introduction à l'apprentissage automatique Python et réserve de connaissances de base

Partie 1 Introduction à l'apprentissage automatique


L'apprentissage automatique est l'extraction de connaissances à partir de données. C'est un domaine de recherche à l'intersection des statistiques, de l'intelligence artificielle et de l'informatique. Il est également connu sous le nom d'analyse prédictive ou d'apprentissage statistique.

1.1 Pourquoi l'apprentissage automatique

Au début des applications « intelligentes », de nombreux systèmes traitaient les données à l'aide de règles de décision « si » et « sinon » élaborées par l'homme, ou ajustées en fonction des entrées de l'utilisateur.

Par exemple, l'identification et le nettoyage des spams, c'est un exemple du système de règles conçu par des experts pour concevoir des "applications intelligentes". Des règles de décision humaines sont réalisables pour certaines applications, surtout si les gens connaissent très bien le processus de leur modèles.

Mais spécifier artificiellement des règles de décision a deux inconvénients :

  • La logique nécessaire pour prendre des décisions ne s'applique qu'à un seul domaine et à une seule tâche, et même un léger changement peut nécessiter la réécriture de l'ensemble du système

  • L'élaboration de règles nécessite une compréhension approfondie du processus de prise de décision des experts humains

Un exemple où cette approche artificielle de création de règles ne fonctionne pas est la détection de visage dans les images, où le principal problème est que la façon dont un ordinateur "perçoit" les pixels (les pixels qui composent une image dans l'ordinateur) est très différente de la façon dont les humains perçoivent les visages. Grande différence. C'est précisément à cause de cette différence de représentation qu'il est fondamentalement impossible pour les humains de formuler un bon ensemble de règles pour décrire la composition des visages dans les images numériques.

Mais avec l'apprentissage automatique, la saisie d'un grand nombre d'images de visage dans le programme suffit à l'algorithme pour déterminer quelles caractéristiques sont nécessaires pour reconnaître les visages.

1.1.1 Problèmes que l'apprentissage automatique peut résoudre

Les algorithmes d'apprentissage automatique les plus performants sont ceux qui automatisent le processus de prise de décision en généralisant à partir d'exemples connus , c'est l'apprentissage supervisé

Apprentissage supervisé : algorithmes d'apprentissage automatique qui apprennent à partir de paires d'entrées/sorties

L'utilisateur alimente l'algorithme avec une entrée couplée et une sortie attendue, et l'algorithme trouve un moyen de donner la sortie attendue compte tenu de l'entrée, en particulier des entrées jamais vues auparavant sans aide humaine. Donner la sortie correspondante (c'est l'automatisation du processus de décision )

Problèmes que l'apprentissage supervisé peut résoudre : Reconnaître les codes postaux manuscrits sur les enveloppes, juger si une tumeur est bénigne sur la base d'images médicales, détecter les comportements frauduleux dans les transactions par carte de crédit

Une observation intéressante à noter dans ces exemples est que si l'entrée et la sortie semblent être assez simples, le processus de collecte de données est assez différent dans les trois exemples.

Apprentissage non supervisé : seules les données d'entrée sont connues, aucune donnée de sortie n'est fournie à l'algorithme

Problèmes que l'apprentissage non supervisé peut résoudre : identifier le sujet d'une série d'articles de blog, segmenter les clients en groupes ayant des préférences similaires, détecter des modèles d'accès inhabituels à un site Web

Qu'il s'agisse d'une tâche d'apprentissage supervisée ou d'une tâche d'apprentissage non supervisée, il est très important de représenter les données d'entrée sous une forme que l'ordinateur peut comprendre. Il est souvent utile de considérer les données comme des tableaux

Chaque point de données que vous souhaitez traiter (chaque e-mail, chaque client, chaque transaction) correspond à une ligne dans le tableau, décrivant chaque attribut du point de données (tel que l'âge du client, le montant de la transaction ou l'emplacement de la transaction) correspond à une colonne dans la table

En machine learning, chaque entité ou chaque ligne est appelée ici un échantillon (sample) ou point de données , et chaque colonne (utilisée pour décrire les attributs de ces entités) est appelée une caractéristique

1.1.2 Familier avec les tâches et les données

La partie la plus importante du processus d'apprentissage automatique consiste probablement à comprendre les données avec lesquelles vous traitez et comment ces données sont liées à la tâche que vous souhaitez résoudre.

Avant de commencer à créer des modèles, vous devez comprendre le contenu de votre ensemble de données. Chaque algorithme diffère par le type de données d'entrée et le problème qu'il convient le mieux de résoudre.

D'un point de vue plus large, les algorithmes et les méthodes d'apprentissage automatique ne sont qu'une partie du processus de résolution d'un problème spécifique, et il est important de toujours garder à l'esprit la vue d'ensemble de l'ensemble du projet (se concentrer sur la résolution de problèmes)

1.2 Pourquoi choisir Python

L'apprentissage automatique utilise Python pour trois raisons principales :

1. Python est devenu un langage commun pour de nombreuses applications de science des données, combinant la puissance d'un langage de programmation à usage général avec la facilité d'utilisation d'un langage de script spécifique à un domaine tel que MATLAB ou R

2. Python possède des bibliothèques pour diverses fonctions telles que le chargement de données, la visualisation, les statistiques, le traitement du langage naturel, le traitement d'images, etc.

3. Utilisez le terminal ou d'autres outils comme Jupyter Notebook pour interagir directement avec le code

1.3 scikit-apprendre

scikit-learn est un projet open source qui est gratuit à utiliser et à distribuer, n'importe qui peut facilement obtenir son code source pour voir les principes sous-jacents, c'est un outil très populaire et la bibliothèque d'apprentissage automatique Python la plus célèbre

scikit-learn peut également être utilisé avec un grand nombre d'autres outils de calcul scientifique Python

Guide de l'utilisateur de scikit-learn (http://scikit-learn.org/stable/user_guide.html)

scikit-learn dépend de deux autres packages Python : NumPy et SciPy

Pour le traçage et le développement interactif, vous devez également installer matplotlib, IPython et Jupyter Notebook

Si Python est déjà installé, vous pouvez installer tous les packages ci-dessus avec pip :

pip install numpy scipy matplotlib ipython scikit-learn pandas

Remarque : Faites attention à la position d'entrée de la commande pip. Utilisez la commande pip sous le chemin des scripts Python et attendez que le téléchargement soit terminé.

insérez la description de l'image ici

1.4 Bibliothèques et outils nécessaires

Connaître scikit-learn et comment l'utiliser est important, mais il existe d'autres bibliothèques qui peuvent également améliorer votre expérience de programmation. scikit-learn est basé sur les bibliothèques de calcul scientifique NumPy et SciPy. En plus de NumPy et SciPy, nous utiliserons également pandas et matplotlib, et nous présenterons Jupyter Notebook, un environnement de programmation interactif basé sur un navigateur

1.4.1 Bloc-notes Jupyter

Jupyter Notebook est un environnement interactif qui peut exécuter du code dans un navigateur. Cet outil est très utile dans l'analyse exploratoire des données. Bien que Jupyter Notebook prenne en charge plusieurs langages de programmation, nous n'avons besoin que de Python. Utilisez-le pour intégrer du code, des fichiers et des graphiques sont très pratique

1.4.2 Numpy

NumPy est l'un des packages fondamentaux du calcul scientifique en Python : ses fonctionnalités incluent des tableaux multidimensionnels, des fonctions mathématiques avancées (telles que des opérations d'algèbre linéaire et des transformées de Fourier) et des générateurs de nombres pseudo-aléatoires.

Remarque : Dans scikit-learn, les tableaux NumPy sont la structure de données de base

scikit-learn accepte les données au format de tableau NumPy. Toutes les données que vous utilisez doivent être converties en un tableau NumPy. La fonction principale de NumPy est la classe ndarray, qui est un tableau multidimensionnel (n-dimensionnel). Tous les éléments du tableau doit être du même type

Pour les objets de la classe NumPy ndarray, nous les appelons simplement "NumPy arrays" ou "arrays"

#输入
import numpy as np 
x = np.array([[1, 2, 3], [4, 5, 6]])
print("x:\n{}".format(x))
---
#输出
x:
    [[1 2 3] 
     [4 5 6]]

1.4.3 SciPy

SciPy est un ensemble de fonctions pour le calcul scientifique en Python. Il comporte plusieurs fonctions telles que des programmes avancés d'algèbre linéaire, l'optimisation de fonctions mathématiques, le traitement du signal, des fonctions mathématiques spéciales et la distribution statistique. scikit-learn utilise l'ensemble de fonctions de SciPy pour implémenter algorithmes

Pour nous, la chose la plus importante dans SciPy est scipy.sparse : elle peut donner des matrices creuses (sparse matrix), les matrices creuses sont une autre façon de représenter les données dans scikit-learn

D'une manière générale, il est impossible de créer une représentation dense de données éparses (représentation dense) (parce que c'est trop gourmand en mémoire), nous devons donc créer directement sa représentation éparse (représentation éparse)

#输入
from scipy import sparse
# 创建一个二维NumPy数组,对角线为1,其余都为0 
eye = np.eye(4) 
print("NumPy array:\n{}".format(eye))
---
#输出
NumPy array: [[ 1. 0. 0. 0.] [ 0. 1. 0. 0.] [ 0. 0. 1. 0.] [ 0. 0. 0. 1.]]

1.4.4 matplotlib

matplotlib est la principale bibliothèque de dessin scientifique pour Python. Sa fonction est de générer du contenu visuel pouvant être publié, tel que des graphiques linéaires, des histogrammes, des nuages ​​de points, etc. les visualisations sont faites avec matplotlib. Dans Jupyter Notebook, vous pouvez utiliser les commandes en ligne %matplotlib notebook et %matplotlib pour afficher les images directement dans le navigateur.

Il est recommandé d'utiliser la commande %matplotlib notebook, qui peut fournir un environnement interactif

1.4.5 pandas

Pandas est une bibliothèque Python pour le traitement et l'analyse de données. Il est basé sur une structure de données appelée DataFrame. En termes simples, un pandas DataFrame est un tableau, similaire à un tableau Excel. Pandas contient un grand nombre de tableaux pour modifier et utiliser la méthode de formulaire

Contrairement à NumPy, qui nécessite que les éléments d'un tableau soient du même type, chaque colonne de pandas peut être d'un type différent, et l'un de ses points forts est qu'il peut extraire des données de nombreux formats de fichiers et bases de données.

Déclaration de droits d'auteur : Le contenu ci-dessus est partiellement extrait du "Python Machine Learning Basic Tutorial" - O'Reilly Media, Inc.

Si l'article vous est utile, n'oubliez pas de le soutenir en un clic et trois liens ~

Je suppose que tu aimes

Origine blog.csdn.net/qq_50587771/article/details/123223992
conseillé
Classement