|
|
|
@ -9,23 +9,31 @@ from sklearn.naive_bayes import GaussianNB
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def RandomForest(X_train, X_test, y_train):
|
|
|
|
|
random_forest = RandomForestClassifier(n_estimators=100,
|
|
|
|
|
criterion='entropy',
|
|
|
|
|
max_depth=10,
|
|
|
|
|
min_samples_split=2,
|
|
|
|
|
min_samples_leaf=1,
|
|
|
|
|
random_state=0)
|
|
|
|
|
random_forest = RandomForestClassifier(
|
|
|
|
|
n_estimators=100, # Nombre d'arbres dans la forêt
|
|
|
|
|
criterion='entropy', # Critère pour diviser les nœuds
|
|
|
|
|
max_depth=10, # Profondeur maximale des arbres
|
|
|
|
|
min_samples_split=2, # Nombre minimal d'échantillons requis pour diviser un nœud
|
|
|
|
|
min_samples_leaf=1, # Nombre minimal d'échantillons requis pour être une feuille
|
|
|
|
|
random_state=0 # Contrôle la randomisation
|
|
|
|
|
)
|
|
|
|
|
# Entraînement du classificateur sur les données d'entraînement
|
|
|
|
|
random_forest.fit(X_train, y_train)
|
|
|
|
|
# Prédiction sur les données de test
|
|
|
|
|
return random_forest.predict(X_test), random_forest
|
|
|
|
|
|
|
|
|
|
def KNN(X_train, X_test, y_train):
|
|
|
|
|
knn = KNeighborsClassifier(n_neighbors=5)
|
|
|
|
|
knn = KNeighborsClassifier(
|
|
|
|
|
n_neighbors=5 # Nombre de voisins à utiliser
|
|
|
|
|
)
|
|
|
|
|
knn.fit(X_train, y_train)
|
|
|
|
|
return knn.predict(X_test),knn
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def SVM(X_train, X_test, y_train):
|
|
|
|
|
clf = svm.SVC(gamma=0.001)
|
|
|
|
|
clf = svm.SVC(
|
|
|
|
|
gamma=0.001 # Paramètre de noyau
|
|
|
|
|
)
|
|
|
|
|
clf.fit(X_train,y_train)
|
|
|
|
|
return clf.predict(X_test),clf
|
|
|
|
|
|
|
|
|
@ -40,7 +48,13 @@ def LogisticRegress(X_train, X_test, y_train):
|
|
|
|
|
return logistic.predict(X_test),logistic
|
|
|
|
|
|
|
|
|
|
def Linearsvc(X_train, X_test, y_train):
|
|
|
|
|
svc = LinearSVC(C=1.0, dual=False, verbose=True, loss="squared_hinge", multi_class="crammer_singer")
|
|
|
|
|
svc = LinearSVC(
|
|
|
|
|
C=1.0, # Paramètre de régularisation
|
|
|
|
|
dual=False, # Utilisation de la forme duale
|
|
|
|
|
verbose=True, # Affichage des détails de l'optimisation
|
|
|
|
|
loss="squared_hinge", # Fonction de perte utilisée
|
|
|
|
|
multi_class="crammer_singer" # Méthode pour résoudre les problèmes de classification multi-classes
|
|
|
|
|
)
|
|
|
|
|
svc.fit(X_train,y_train)
|
|
|
|
|
return svc.predict(X_test),svc
|
|
|
|
|
|
|
|
|
|