0% ont trouvé ce document utile (0 vote)
10 vues3 pages

Analyse de données Iris avec Python

Le document présente une analyse de données sur les iris en utilisant Pandas, Matplotlib et Scikit-learn. Les données sont chargées avec Pandas puis visualisées avec Matplotlib. Le modèle de k plus proches voisins est entraîné avec Scikit-learn pour classifier les iris.

Transféré par

Jugurta Mahammed
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
10 vues3 pages

Analyse de données Iris avec Python

Le document présente une analyse de données sur les iris en utilisant Pandas, Matplotlib et Scikit-learn. Les données sont chargées avec Pandas puis visualisées avec Matplotlib. Le modèle de k plus proches voisins est entraîné avec Scikit-learn pour classifier les iris.

Transféré par

Jugurta Mahammed
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

# Partie 1: Importation du jeu de données avec Pandas

import pandas as pd

df = pd.read_csv("[Link]")
print("L'entête du dataframe: \n\n", [Link]())

# sélectionner les observations des colonnes 1 à 4 dans X et de la colonne 5 dans Y


X = [Link][:, 1:5]
Y = [Link][:, 5]

print("\nL'entête de X: \n\n", [Link]())


print("\nL'entête de Y: \n\n", [Link]())

# Partie 2: Visualisation des données avec Matplotlib

import numpy as np
import [Link] as plt

# méthode 1 avec boucle


# récuperer les valeurs uniques de Y (les 3 différentes espèces)
unique_y = [Link](Y)

# initialiser une figure avec 10 pouces de large et 6 pouces de hauteur


[Link](figsize=(10, 6))

# créer un objet axe pour contenir nos données


axe = [Link]()

# ici par exemple, nous souhaitons avoir sur l'axe des abscices SepalLength, et sur les y
PetalLength
data_x_col = 0
data_y_col = 2
axe.set_xlabel([Link][data_x_col])
axe.set_ylabel([Link][data_y_col])

# tracer un nuage de points pour chacune des espèces,


# en sélectionnant seulement les observations de l'espèce en question X[Y == i]
for i in unique_y:
[Link](X[Y == i].iloc[:, data_x_col], X[Y == i].iloc[:, data_y_col], label=i)

# afficher une légende correspondant à chaque nuage de points


[Link]()

# afficher la figure
[Link]()

"""
# méthode 2 sans boucle
[Link](figsize=(10, 6))
[Link]()
[Link](X[Y == 'Iris-setosa'].iloc[:, 0], X[Y == 'Iris-setosa'].iloc[:, 2], label='Iris-setosa')
[Link](X[Y == 'Iris-versicolor'].iloc[:, 0], X[Y == 'Iris-versicolor'].iloc[:,
2],label='Iris-versicolor')
[Link](X[Y == 'Iris-virginica'].iloc[:, 0], X[Y == 'Iris-virginica'].iloc[:, 2], label='Iris-virginica')
[Link]()
[Link]()
"""

### FERMER LES FIGURES SUR PYCHARM POUR CONTINUER LA SUITE ###

# Partie 3: Apprentissage automatique avec Sklearn

# split du jeu de données

from sklearn.model_selection import train_test_split

# split en 70% train et 30% test


X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.3, random_state=1)

print("X_train.shape: ", X_train.shape)


print("X_test.shape : ", X_test.shape)

print("y_train.shape:", y_train.shape)
print("y_test.shape:", y_test.shape)

# entraînement du modèle k plus proche voisins

from [Link] import KNeighborsClassifier


from sklearn import metrics

# considérer les 3 plus proches voisins (pour un meilleur fonctionnement, prendre un


nombre impair)
classifier_knn = KNeighborsClassifier(n_neighbors=3)

# entraîner le modèle
classifier_knn.fit(X_train, y_train)

# tester le modèle en utilisant la collection de test


y_pred = classifier_knn.predict(X_test)

# calculer l'accuracy du modèle en comparant les espèces prédites par le modèle 'y_pred'
avec les vraies réponses 'y_test'
print("Accuracy:", metrics.accuracy_score(y_test, y_pred))

# faire une prédiction sur de nouvelles données


sample = [[5, 5, 3, 2], [2, 4, 3, 5]]
preds = classifier_knn.predict(sample)
print("Prédictions:", preds)

# Autre algorithme avec des forêts aléatoires


from [Link] import RandomForestClassifier

rfc = RandomForestClassifier(max_depth=2, random_state=1)


[Link](X_train, y_train)
y_pred = [Link](X_test)
print("Accuracy avec RFC:", metrics.accuracy_score(y_test, y_pred))

# Autre algorithme avec un réseau de neurones multi-couches


from sklearn.neural_network import MLPClassifier

clf = MLPClassifier(solver='adam', alpha=1e-5, hidden_layer_sizes=(5, 5), max_iter=2000,


random_state=1)
[Link](X_train, y_train)
y_pred = [Link](X_test)
print("Accuracy avec MLP:", metrics.accuracy_score(y_test, y_pred))

Vous aimerez peut-être aussi