Rapport Project Avec

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 8

2020/2021

Machine Learning Python Naïve


Bayes – Weather Prediction

Encadré par: Réalisé par:

OUBENAALLA Youness HOUJAJ Ayoub

MOKHTARI

Houssam

BERRAHO Mohamed Amine


Introduction:

Internet est devenu une plate-forme de collaboration à grande


échelle dans la production et la consommation de contenu. De plus en
plus de personnes consomment des informations quotidiennes via des
ressources en ligne. Les données (dataset) en ligne occupent déjà une
place importante sur Internet.
L'apprentissage automatique (Machine Learing) et en particulier
les prétraitements de donnée est un domaine prometteur qui a le
potentiel de contribuer à la solution du problème. L’objectif derrière ce
projet est de comprendre les méthodes qui permettent de classifier les
données en critères exploitables par des algorithmes de machine
learning, les algorithmes qui seront utilisés afin de faire la catégorisation
des domaines que le sujet traitent, en précision il y’a les algorithmes de
classification qui va nous permettent de b
Partie Théorique :

La machine learning est un sous-ensemble de l’intelligence


artificielle (IA) qui est axé sur la création de systèmes qui apprennent ou
améliorent les performances en fonction des données qu’ils traitent.
L’intelligence artificielle est un terme large qui désigne des systèmes ou
des machines imitant l’intelligence humaine. Le machine learning et
l’IA sont souvent abordés ensemble, et les termes sont parfois utilisés de
manière interchangeable, mais ils ne veulent pas dire la même chose.
Une distinction importante est que, même si l’intégralité de la machine
learning repose sur l’intelligence artificielle, cette dernière ne se limite
pas à la machine learning.
Naive Bayes :

Naive Bayes est un algorithme d'apprentissage automatique supervisé


simple qui utilise le théorème de Bayes avec de fortes hypothèses
d'indépendance entre les fonctionnalités pour obtenir des résultats. Cela
signifie que l'algorithme suppose simplement que chaque variable
d'entrée est indépendante.
C'est vraiment une hypothèse naïve à faire sur les données du monde
réel.
Par exemple, si vous utilisez Naive Bayes pour l'analyse des sentiments,
étant donné la phrase «J'aime Harry Potter», l'algorithme examinera les
mots individuels et non la phrase complète. Dans une phrase, les mots
qui se tiennent côte à côte influencent le sens de l'autre, et la position des
mots dans une phrase est également importante. Cependant, pour
l'algorithme, des phrases comme «J'aime Harry Potter», «Harry Potter
comme moi» et «Potter j'aime Harry» sont les mêmes.
Il s'avère que l'algorithme est capable de résoudre efficacement de
nombreux problèmes complexes. Par exemple, créer un classificateur de
texte avec Naive Bayes est beaucoup plus facile qu'avec des algorithmes
plus en vogue tels que les réseaux de neurones. Le modèle fonctionne
bien même avec des données insuffisantes ou mal étiquetées, vous
n'avez donc pas à le «nourrir» de centaines de milliers d'exemples avant
de pouvoir en tirer quelque chose de raisonnable. Même si Naive Bayes
peut prendre jusqu'à 50 lignes, il est très efficace.
Partie Pratique :

On a utilisé le notebook Jupyter intégré dans Cloudera.

Comme dataset on choisit une qui est simple et qui est constitué de cinq colonnes :
outlook, temperature, humidity, windy et play :

Ensuite, on a importé notre les library nécessaires :

import pandas as pd
from sklearn.preprocessing import LabelEncoder
from sklearn.naive_bayes import GaussianNB
Après on a créé une variable qui vas contenir notre dataset :
df = pd.read_csv("/user/cloudera/input/weather.csv")
df
On obtient :

Encodage des chaînes en chiffres :


outlook_at=LabelEncoder()
Temp_at=LabelEncoder()
Hum_at=LabelEncoder()
win_at=LabelEncoder()

Supprimer la variable cible et la rendre comme newframe :


inputs=df.drop('Play',axis='columns')
target=df['Play']
target
Output :

Création du nouveau newframe :


inputs['outlook_n']= outlook_at.fit_transform(inputs['Outlook'])
inputs['Temp_n']= outlook_at.fit_transform(inputs['Temp'])
inputs['Hum_n']= outlook_at.fit_transform(inputs['Humidity'])
inputs['win_n']= outlook_at.fit_transform(inputs['Windy'])
inputs
Output :
Suppression des valeurs de chaîne :
inputs_n=inputs.drop(['Outlook','Temp','Humidity','Windy'],axis=
'columns')
inputs_n
Output :

Application de Naive Bayes gaussiens :


classifier = GaussianNB()
classifier.fit(inputs_n,target)

Output :
Out[8]: GaussianNB()

85% de précision :
classifier.score(inputs_n,target)

Output :
Out[9]: 0.8571428571428571

Prédiction :
classifier.predict([[0,0,0,1]])

Out[10]: array(['yes'], dtype='<U3')

Vous aimerez peut-être aussi