Vous êtes sur la page 1sur 11

Fiche de révision

Retracer l'histoire de l'IA


1950
premiers ordinateurs ont commencé à être développés

premières recherches en IA menées par des scientifiques tels que John McCarthy, Marvin Minsky et Claude
Shannon,

ont proposé des modèles théoriques pour représenter la pensée humaine

ont tenté de créer des machines capables de réaliser des tâches qui étaient considérées comme nécessitant de
l'intelligence.

1960
la recherche en IA a connu un essor important, grâce à l'augmentation de la puissance de calcul et au
développement de nouveaux algorithmes et modèles de machine learning.

développés pour résoudre des problèmes tels que la reconnaissance de caractères, la traduction automatique et les
jeux de stratégie comme le jeu d'échecs

1970/80
absence de progrès significatifs dans la création de systèmes d'IA qui pouvaient rivaliser avec l'intelligence
humaine.

1990/2000
recherche en IA a connu un renouveau grâce à l'essor de l'informatique distribuée, du big data et des algorithmes
d'apprentissage en profondeur.

Aujourd'hui
omniprésente dans notre vie quotidienne (assistants vocaux, les voitures autonomes, les systèmes de
recommandation ou les chatbots)

entreprises et les gouvernements du monde entier investissent des milliards de dollars dans la recherche en IA,
dans l'espoir de créer des systèmes qui pourront résoudre certains des plus grands défis de notre époque, tels que
la lutte contre le changement climatique, la découverte de nouveaux médicaments et la création d'emplois plus
productifs.

Identifier les domaines d'application de l'I.A.


La santé : l'IA est utilisée pour l'analyse des données médicales, la détection précoce de maladies, l'identification de
traitements personnalisés, etc.

Les transports : l'IA est utilisée pour la conduite autonome des voitures, des camions et des drones, la planification de
routes plus efficaces, l'optimisation de la logistique, etc.

L'industrie manufacturière : l'IA est utilisée pour l'optimisation de la chaîne de production, l'analyse des données de
maintenance, la surveillance de la qualité, etc.

La finance : l'IA est utilisée pour la détection de fraudes, la gestion de portefeuilles, la prédiction de l'évolution des
marchés, etc.

Les services publics : l'IA est utilisée pour la détection des anomalies dans les réseaux électriques, la gestion des
déchets, la prédiction des catastrophes naturelles, etc.

Le marketing : l'IA est utilisée pour la segmentation des clients, la recommandation de produits, la personnalisation des
offres, etc.

L'éducation : l'IA est utilisée pour la personnalisation de l'apprentissage, l'analyse des données des élèves, l'élaboration
de cours en ligne, etc.

Fiche de révision 1
Si tu vois Floo c'est que tu vois pas flou
Les jeux vidéo : l'IA est utilisée pour la création d'adversaires virtuels plus réalistes, la génération procédurale de
niveaux, la simulation de comportements humains, etc.

Identifier les acteurs de l'I.A. et les solutions proposées


Les entreprises technologiques : les grandes entreprises technologiques comme Google, Microsoft, Facebook et
Amazon ont investi massivement dans l'IA. Elles ont créé des centres de recherche en IA, acquis des startups
spécialisées en IA et ont développé des produits et services basés sur l'IA.

Les chercheurs en IA : les chercheurs en IA travaillent dans les universités, les centres de recherche gouvernementaux
et les entreprises privées. Ils sont à l'avant-garde de la recherche en IA, développant de nouvelles techniques et
modèles pour améliorer la performance et la fiabilité des systèmes d'IA.

Les gouvernements : les gouvernements jouent un rôle important dans la réglementation de l'IA et dans la promotion de
son développement dans certains secteurs clés. Certains gouvernements ont également créé des centres de recherche
en IA et investi dans des programmes de formation en IA.

Les startups en IA : de nombreuses startups ont été créées ces dernières années pour développer des technologies
d'IA innovantes dans des domaines spécifiques, comme la santé, les transports, les finances et l'énergie.

Les utilisateurs finaux : les utilisateurs finaux, qu'il s'agisse de consommateurs ou d'entreprises, sont les bénéficiaires
des produits et services basés sur l'IA. Ils ont également un rôle important à jouer dans l'adoption et l'utilisation de l'IA,
en fournissant des données pour entraîner les modèles d'IA et en évaluant l'efficacité des systèmes d'IA.

Détecter les problématiques éthiques liées à l'I.A. dans un contexte donné


1. Biais algorithmiques : Les algorithmes d'apprentissage automatique peuvent être biaisés en raison des données
d'entraînement qu'ils ont utilisées pour apprendre. Si ces données sont elles-mêmes biaisées (par exemple, en raison
d'un manque de diversité dans l'ensemble de données), l'algorithme peut prendre des décisions injustes ou
discriminatoires.

2. Confidentialité des données : L'utilisation de l'I.A. peut impliquer la collecte de grandes quantités de données sur les
utilisateurs, ce qui peut soulever des préoccupations en matière de protection de la vie privée et de la confidentialité.

3. Automatisation du travail : L'utilisation de l'I.A. peut entraîner la suppression d'emplois traditionnels ou la réduction des
heures de travail pour les travailleurs humains, ce qui peut avoir des répercussions sociales et économiques
importantes.

4. Responsabilité : Il peut être difficile de déterminer qui est responsable en cas d'erreur ou de dommage causé par une
décision prise par un algorithme d'I.A. Cela peut soulever des questions de responsabilité légale et de transparence.

5. Discrimination : L'utilisation de l'I.A. peut entraîner des formes de discrimination, notamment la discrimination
automatisée, qui peut avoir un impact négatif sur certaines populations, telles que les minorités ethniques ou les
personnes handicapées.

6. Sécurité : L'I.A. peut être utilisée pour créer des armes autonomes, qui peuvent poser des risques pour la sécurité
internationale et la stabilité.

7. Éthique de la recherche : L'utilisation de l'I.A. peut soulever des questions éthiques concernant la collecte, l'utilisation et
la publication des données de recherche, ainsi que la protection des sujets de recherche.

Manipuler un jeu de données dans un environnement de développement


Import de fichiers depuis un site en ligne

import os
import tarfile
from six.moves import urllib

DOWNLOAD_ROOT = "https://github.com/ph10r/eiSpeInfoDS/raw/master/"
HOUSING_PATH = os.path.join("datasets", "housing")
HOUSING_URL = DOWNLOAD_ROOT + "housing.tgz"

def fetch_housing_data(housing_url=HOUSING_URL, housing_path=HOUSING_PATH):


if not os.path.isdir(housing_path):
os.makedirs(housing_path)
tgz_path = os.path.join(housing_path, "housing.tgz") #SOLUTION
urllib.request.urlretrieve(housing_url, tgz_path) #SOLUTION
housing_tgz = tarfile.open(tgz_path) #SOLUTION

Fiche de révision 2
Si tu vois Floo c'est que tu vois pas flou
housing_tgz.extractall(path=housing_path) #SOLUTION
housing_tgz.close() #SOLUTION

Chargement des données en mémoire

import pandas as pd

def load_housing_data(housing_path=HOUSING_PATH):
csv_path = os.path.join(housing_path, "housing.csv")
return pd.read_csv(csv_path) #SOLUTION

housing = load_housing_data()

Lire et éditer un DataFrame

# Premières lignes
housing.head()

# Description de jeu de données


housing.info()

# Connaître le nombre de valeurs différentes d'une Series et ses itérations


housing["ocean_proximity"].value_counts()

# Résumé statistique
housing.describe()

# supprimer un champs
housing.drop("ocean_proximity", axis=1, inplace=True)

# créer une copie du Dataset


housing.copy()

# afficher une crosstab, aka une relation entre plusieurs facteurs


DATA.crosstab(index=DATA.Attrition, columns=DATA[col])

Graphiques

# créer un nuage de points avec clustering


cluster = AgglomerativeClustering(n_clusters=2, affinity='euclidean', linkage='ward')
cluster.fit_predict(X)
plt.figure(figsize=(10, 7))
plt.scatter(X['longitude'],X['latitude'], c=cluster.labels_, cmap='rainbow')
plt.show()

# créer un dendogramme
plt.figure(figsize=(10, 7))
dendrogram(linkage(X, method='ward'), orientation='top', distance_sort='descending', show_leaf_counts=True)
plt.show()

# afficher un histogramme par attribut numérique


housing.hist(bins=50, figsize=(20,15))
plt.show()

Préparer un jeu de données (détection de valeurs manquantes, aberrantes)

Fiche de révision 3

Si tu vois Floo c'est que tu vois pas flou


Transformation des données

# Tranformer une valeur catégorique et nettoyage


def encode_business_travel(bt):
match bt:
case 'Non-Travel': return 1
case 'Travel_Frequently': return 2
case 'Travel_Rarely': return 3
case _: return None

Imputation
L'imputation est l'ajout d'entrée dans des champs vide, pour ne pas fausser le modèle ML. En effet, si une entrée
contient un ou plusieurs champs dont l'entrée est manquante, les prédictions, et leur variance, du modèle de données
seront faussée. Ainsi, nous ajoutons des données inférées à partir de différents paramètres dans ces champs vide.

Imputation univariée

SimpleImputer : stratégie de base pour imputer les données manquantes.


Les valeurs manquantes peuvent être imputées avec une valeur constante fournie, ou en utilisant les statistiques
(moyenne, médiane ou la plus fréquente) de chaque colonne dans laquelle les valeurs manquantes sont localisées.

imputer = imp.SimpleImputer(missing_values=pd.NA, strategy='median')


_ = imputer.fit(DATA[['NumCompaniesWorked']])
DATA[['NumCompaniesWorked']] = imputer.transform(DATA[['NumCompaniesWorked']])
DATA.NumCompaniesWorked = DATA.NumCompaniesWorked.astype('int')

Imputation de caractéristiques multivariées

Une approche plus sophistiquée consiste à utiliser le IterativeImputer classe, qui modélise chaque caractéristique
avec des valeurs manquantes en fonction d'autres caractéristiques, et utilise cette estimation pour l'imputation. Il le
fait dans un round-robin itéré mode : à chaque étape, une colonne de caractéristiques est désignée comme sortie
y et le les autres colonnes de caractéristiques sont traitées comme des entrées X .

Note : Cet estimateur est encore expérimental pour le moment, donc on va s’en battre les couilles car à éviter.

Produire un jeu de données exploitable pour le Machine Learning


Etude statistique : il faut définir les principaux attributs clé dans le cadre de notre étude (Crosstabs; Feature
Selection…)

skb = fs.SelectKBest(score_func=fs.f_classif, k=5)


fit = skb.fit(DATA[data_numerical], DATA['Attrition'])
df = pd.DataFrame(np.array([fit.scores_.tolist(), fit.pvalues_.tolist()]).transpose(), columns=['Scores', 'pValues'], index=da
df.sort_values(by=['Scores'], ascending=False)
sel_num_features = pd.DataFrame(skb.transform(DATA[data_numerical]), index=DATA.index, columns=skb.get_feature_names_out(skb.f
sel_num_features

Split des données : il faut créer un jeu de données d’apprentissage et un jeu de données de test. Dans le cadre du
projet on faisait 80% d’apprentissage, et 20% de test.

from sklearn.model_selection import train_test_split

SLIM_DATA.Attrition = SLIM_DATA.Attrition.apply(lambda x: True if x == 'Yes' else False)


X = SLIM_DATA.copy().drop('Attrition', axis=1)
y = SLIM_DATA['Attrition'].copy()
X_test, X_train, y_test, y_train = train_test_split(X, y, test_size=.2, random_state=42)

Expliquer le fonctionnement de la régression linéaire


La régression linéaire est une méthode statistique utilisée pour modéliser la relation entre une variable dite « variable
dépendante » (aussi appelée variable réponse ou variable à prédire) et une ou plusieurs variables dites « variables
indépendantes » (aussi appelées variables explicatives ou variables prédictives).

Fiche de révision 4
Si tu vois Floo c'est que tu vois pas flou
Le modèle de régression linéaire est basé sur une équation de la forme Y = aX + b, où Y est la variable dépendante, X
est la variable indépendante, a est le coefficient de régression (ou coefficient directeur) qui représente la pente de la ligne
de régression, et b est l'ordonnée à l'origine, qui représente l'endroit où la ligne de régression croise l'axe des Y .

Le but de la régression linéaire est d'estimer les valeurs des coefficients a et b qui permettent de créer la ligne de
régression qui s'ajuste au mieux aux données observées. Pour cela, on utilise une méthode d'optimisation appelée
méthode des moindres carrés, qui minimise la somme des carrés des écarts entre les valeurs observées de Y et les
valeurs prédites par le modèle.

Une fois que le modèle de régression linéaire est créé, il peut être utilisé pour prédire les valeurs de Y en fonction des
valeurs de X . Cependant, il est important de garder à l'esprit que la régression linéaire suppose que la relation entre les
variables est linéaire et qu'il n'y a pas de relation causale entre les variables.
En résumé, la régression linéaire est une méthode statistique qui permet de modéliser la relation entre une variable
dépendante et une ou plusieurs variables indépendantes en utilisant une équation linéaire. Elle est largement utilisée dans
de nombreux domaines, notamment en économie, en finance et en sciences sociales, pour prédire des valeurs numériques
à partir de variables explicatives.

Identifier un cas d'usage de la régression linéaire par rapport à un besoin


1. Prédiction : La régression linéaire peut être utilisée pour prédire la valeur d'une variable dépendante (Y) en fonction de
la valeur d'une ou plusieurs variables indépendantes (X). Par exemple, une entreprise peut utiliser la régression linéaire
pour prédire les ventes en fonction des dépenses de publicité.

2. Analyse de tendance : La régression linéaire peut être utilisée pour analyser les tendances temporelles dans les
données. Par exemple, une entreprise peut utiliser la régression linéaire pour analyser l'évolution des ventes au fil du
temps.

3. Modélisation de la relation entre les variables : La régression linéaire peut être utilisée pour modéliser la relation entre
une variable dépendante (Y) et une ou plusieurs variables indépendantes (X). Par exemple, une entreprise peut utiliser
la régression linéaire pour modéliser la relation entre les dépenses de publicité et les ventes.

4. Identification des facteurs de risque : La régression linéaire peut être utilisée pour identifier les facteurs de risque
associés à une variable dépendante (Y). Par exemple, une entreprise peut utiliser la régression linéaire pour identifier
les facteurs de risque associés à la perte de clients.

5. Prévision de tendances futures : La régression linéaire peut être utilisée pour prévoir les tendances futures dans les
données. Par exemple, une entreprise peut utiliser la régression linéaire pour prévoir les tendances futures des ventes
en fonction des tendances passées.

Calculer et analyser la régression linéaire sur un jeu de données


rf

Nous on l’a pas calculée à la main, donc on part sur le fait que soit c’est pas réclamé, soit qu’on se débrouillera.

# imports
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression

# charger les données et les adapter

# appliquer la regression
regression = LinearRegression()
regression.fit(X, Y)

# prédire
y_pred = regression.predict(X)

# qualité
r_squared = regression.score(X, Y)
print('Coefficient de détermination : ', r_squared)

Améliorer le modèle de régression en fonction des résultats obtenus

Nombre d’itérations d’apprentissage

Fiche de révision 5
La flemme je m'arrête là
Grid/Randomized Search

Mesurer les résultats obtenus (identifier la métrique d'évaluation adaptée :


RMSE, MSE, MAE, Risge, Lasso)
RME/RMSE

MAE

RISGE
Le RISGE (Relative Importance Score Gain Estimation) est une mesure de l'importance relative des variables dans un
modèle de classification.

RISGE = (accf ull − accreduced )/accf ull

LASSO

La régression LASSO, ou (Plus petit rétrécissement absolue et Opérateur de Selection est une modification de la
régression linéaire. Avec le LASSO, la fonction de perte est modifiée pour minimiser la complexité du model en limitant
la somme des valeurs absolues des coefficients du model ( aussi appelés la L1-norm).

# MSE
lin_mse = mean_squared_error(housing_labels, housing_predictions)

# RMSE
lin_rmse = mean_squared_error(housing_labels, housing_predictions, squared=False)

# MAE
lin_mae = mean_absolute_error(y_true, y_pred)

Expliquer le fonctionnement de l'algorithme du Perceptron


L’algo
Dans notre graphe, on cherche ou plaçer la ligne pour pouvoir split data.
On commence avec une ligne random. Puis on regarde pour chaque point si c’est bon ou si la ligne doit bouger. La ligne
va bouger plusieurs fois, et après un grand nombre de répétitions la ligne est bien placée.

Fiche de révision 6
Comment bouger la ligne ?

Option 1, translation (move up and down)

Option 2, rotation dont le point de pivot est le point d’intersection avec l’axe y

Option 3, rotation dont le point de pivot est le point d’intersection avec l’axe x

On utilise des equations de droite du style : 2x + 3y = 6

Perceptron Trick
On prends un learning rate petit, qu’on multiplie par les coordinnées des points pour faire bouger la ligne petit à petit.

Quand le point est au dessus, on fait moins, sinon on fait plus


Incorrectly classified points
Region positive est au dessus de la ligne qui est égale à zero, et la région négative est l’inverse. Si tu multiplie l’eq. de
droite par -1, les régions sont inversées
On peut donc placer les points mal classés avec la méthode suivante :

Fiche de révision 7
Simple
Le perceptron est un algorithme d'apprentissage supervisé de classifieurs binaires (c'est-à-dire séparant deux classes).
Il a été inventé en 1957 par Frank Rosenblatt1 au laboratoire d'aéronautique de l'université Cornell. Il s'agit d'un
neurone formel muni d'une règle d'apprentissage qui permet de déterminer automatiquement les poids synaptiques de
manière à séparer un problème d'apprentissage supervisé. Si le problème est linéairement séparable, un théorème
assure que la règle du perceptron permet de trouver une séparatrice entre les deux classes.

Multicouche
En intelligence artificielle, plus précisément en apprentissage automatique, le perceptron multicouche (multilayer
perceptron MLP en anglais) est un type de réseau neuronal artificiel organisé en plusieurs couches. L'information circule
de la couche d'entrée vers la couche de sortie uniquement : il s'agit donc d'un réseau à propagation directe

Fiche de révision 8
(feedforward). Chaque couche est constituée d'un nombre variable de neurones, les neurones de la dernière couche
(dite « de sortie ») étant les sorties du système global.

Identifier un cas d'usage de classification automatique par rapport à un


besoin
Notre pote ChatGPT :

1. Segmentation de la clientèle : La classification automatique peut être utilisée pour segmenter la clientèle en fonction de
leurs comportements d'achat, de leurs préférences et de leurs intérêts communs. Cette segmentation peut aider les
entreprises à personnaliser leur marketing et leurs offres pour chaque groupe de clients.

2. Détection de fraude : La classification automatique peut être utilisée pour détecter les transactions frauduleuses en
examinant les caractéristiques des transactions pour identifier les transactions anormales ou suspectes.

3. Analyse des sentiments : La classification automatique peut être utilisée pour l'analyse des sentiments des clients à
partir des commentaires et des avis. Les commentaires peuvent être classés en fonction des émotions exprimées,
telles que positives, négatives ou neutres, pour comprendre les opinions des clients sur un produit ou un service.

4. Catégorisation de contenu : La classification automatique peut être utilisée pour catégoriser automatiquement le
contenu, tels que des articles, des vidéos, des images ou des documents, en fonction de leur sujet, de leur thème ou
de leur style.

5. Détection de spam : La classification automatique peut être utilisée pour détecter les messages de spam dans les
boîtes de réception des utilisateurs en analysant les caractéristiques des messages pour identifier les messages
suspects.

6. Détection de maladies : La classification automatique peut être utilisée pour diagnostiquer les maladies en analysant
les caractéristiques des symptômes des patients pour identifier les maladies similaires.

Calculer la régression logistique sur un jeu de données pour une


classification binaire

Fiche de révision 9
Je crois l’avoir traité avant, sinon rf la fiche de bébou.

Analyser les résultats obtenus par la classification (interpréter une matrice de


confusion ; AUC, courbe ROC, métriques de
performance : TPR, TFR, F1-Score, précision, recall...)
Matrice de confusion

Courbe ROC et AUC

Classification: courbe ROC et AUC | Machine Learning | Google Developers

https://developers.google.com/machine-learning/crash-course/classification/roc-and-auc?hl=fr

Confusion Matrice (TPR,FPR,FNR,TNR), Precision, Recall, F1-Score

Confusion Matric(TPR,FPR,FNR,TNR), Precision, Recall, F1-Score


Cofusion matrix is used to measure the performance of the classification model. Checking our model
performance by accuracy sometimes it’s…
https://medium.datadriveninvestor.com/confusion-matric-tpr-fpr-fnr-tnr-precision-recall-f1-score-73
efa162a25f

Améliorer le modèle de classification en fonction des résultats obtenus


Rf linéaire

Mesurer les résultats obtenus (identifier la métrique d'évaluation adaptée :


cross-enthropie)
RMSE est meilleur en général, j’ai pas le temps j’ai créathon.

Fiche de révision 10
Fiche de révision 11

Vous aimerez peut-être aussi