Amazing-Python-Scripts

Форк
0
87 строк · 3.0 Кб
1
# importing necessary libraries
2
from sklearn.model_selection import GridSearchCV
3
from sklearn.ensemble import RandomForestClassifier
4
from sklearn.svm import SVC
5
from sklearn.linear_model import LogisticRegression
6
from sklearn.tree import DecisionTreeRegressor
7
from sklearn.naive_bayes import GaussianNB
8
from sklearn.neighbors import KNeighborsClassifier
9

10

11
def perform_grid_search(X, y):
12
    # Define the parameter grid for each algorithm
13
    rf_param_grid = {
14
        'n_estimators': [100, 200, 500],
15
        'max_depth': [None, 5, 10],
16
        'min_samples_split': [2, 5, 10]
17
    }
18

19
    svm_param_grid = {
20
        'C': [0.1, 1, 10],
21
        'kernel': ['linear', 'rbf', 'poly']
22
    }
23

24
    logr_param_grid = {
25
        'C': [0.1, 1, 10],
26
        'penalty': ['l1', 'l2']
27
    }
28

29
    dt_param_grid = {
30
        'max_depth': [None, 5, 10],
31
        'min_samples_split': [2, 5, 10]
32
    }
33

34
    nb_param_grid = {
35
        'var_smoothing': [1e-9, 1e-8, 1e-7]
36
    }
37

38
    knn_param_grid = {
39
        'n_neighbors': [3, 5, 7],
40
        'weights': ['uniform', 'distance']
41
    }
42

43
    # Create the GridSearchCV objects for each algorithm
44
    rf_grid_search = GridSearchCV(
45
        RandomForestClassifier(), rf_param_grid, cv=5)
46
    svm_grid_search = GridSearchCV(SVC(), svm_param_grid, cv=5)
47
    dt_grid_search = GridSearchCV(DecisionTreeRegressor(), dt_param_grid, cv=5)
48
    nb_grid_search = GridSearchCV(GaussianNB(), nb_param_grid, cv=5)
49
    knn_grid_search = GridSearchCV(
50
        KNeighborsClassifier(), knn_param_grid, cv=5)
51
    logr_grid_search = GridSearchCV(
52
        LogisticRegression(), logr_param_grid, cv=5)
53

54
    # Fit the models and perform grid search
55
    rf_grid_search.fit(X, y)
56
    svm_grid_search.fit(X, y)
57
    dt_grid_search.fit(X, y)
58
    nb_grid_search.fit(X, y)
59
    knn_grid_search.fit(X, y)
60
    logr_grid_search.fit(X, y)
61

62
    # Store the results in a dictionary
63
    results = {
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

72
    return results
73

74

75
# Define your data and target variables here
76
X = ...
77
y = ...
78

79
# Perform grid search
80
grid_search_results = perform_grid_search(X, y)
81

82
# Print the results
83
for algorithm, result in grid_search_results.items():
84
    print(algorithm)
85
    print("Best Parameters: ", result['Best Parameters'])
86
    print("Best Score: ", result['Best Score'])
87
    print("")
88

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.