Amazing-Python-Scripts
87 строк · 3.0 Кб
1# importing necessary libraries
2from sklearn.model_selection import GridSearchCV3from sklearn.ensemble import RandomForestClassifier4from sklearn.svm import SVC5from sklearn.linear_model import LogisticRegression6from sklearn.tree import DecisionTreeRegressor7from sklearn.naive_bayes import GaussianNB8from sklearn.neighbors import KNeighborsClassifier9
10
11def perform_grid_search(X, y):12# Define the parameter grid for each algorithm13rf_param_grid = {14'n_estimators': [100, 200, 500],15'max_depth': [None, 5, 10],16'min_samples_split': [2, 5, 10]17}18
19svm_param_grid = {20'C': [0.1, 1, 10],21'kernel': ['linear', 'rbf', 'poly']22}23
24logr_param_grid = {25'C': [0.1, 1, 10],26'penalty': ['l1', 'l2']27}28
29dt_param_grid = {30'max_depth': [None, 5, 10],31'min_samples_split': [2, 5, 10]32}33
34nb_param_grid = {35'var_smoothing': [1e-9, 1e-8, 1e-7]36}37
38knn_param_grid = {39'n_neighbors': [3, 5, 7],40'weights': ['uniform', 'distance']41}42
43# Create the GridSearchCV objects for each algorithm44rf_grid_search = GridSearchCV(45RandomForestClassifier(), rf_param_grid, cv=5)46svm_grid_search = GridSearchCV(SVC(), svm_param_grid, cv=5)47dt_grid_search = GridSearchCV(DecisionTreeRegressor(), dt_param_grid, cv=5)48nb_grid_search = GridSearchCV(GaussianNB(), nb_param_grid, cv=5)49knn_grid_search = GridSearchCV(50KNeighborsClassifier(), knn_param_grid, cv=5)51logr_grid_search = GridSearchCV(52LogisticRegression(), logr_param_grid, cv=5)53
54# Fit the models and perform grid search55rf_grid_search.fit(X, y)56svm_grid_search.fit(X, y)57dt_grid_search.fit(X, y)58nb_grid_search.fit(X, y)59knn_grid_search.fit(X, y)60logr_grid_search.fit(X, y)61
62# Store the results in a dictionary63results = {64'Random Forest': {'Best Parameters': rf_grid_search.best_params_, 'Best Score': rf_grid_search.best_score_},65'SVM': {'Best Parameters': svm_grid_search.best_params_, 'Best Score': svm_grid_search.best_score_},66'Decision Tree': {'Best Parameters': dt_grid_search.best_params_, 'Best Score': dt_grid_search.best_score_},67'Naive Bayes': {'Best Parameters': nb_grid_search.best_params_, 'Best Score': nb_grid_search.best_score_},68'K-Nearest Neighbors': {'Best Parameters': knn_grid_search.best_params_, 'Best Score': knn_grid_search.best_score_},69'Logistic Regression': {'Best Parameters': logr_grid_search.best_params_, 'Best Score': logr_grid_search.best_score_}70}71
72return results73
74
75# Define your data and target variables here
76X = ...77y = ...78
79# Perform grid search
80grid_search_results = perform_grid_search(X, y)81
82# Print the results
83for algorithm, result in grid_search_results.items():84print(algorithm)85print("Best Parameters: ", result['Best Parameters'])86print("Best Score: ", result['Best Score'])87print("")88