рдореИрдВ рдЖрдкрдХреЛ рдПрдирд░реЙрди рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдВрджрд┐рдЧреНрдз рдзреЛрдЦрд╛рдзрдбрд╝реА рдХреА рдЦреЛрдЬ рдкрд░ рд▓реЗрдЦ рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рдкреЗрд╢ рдХрд░рддрд╛ рд╣реВрдВред рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓рд╛ рднрд╛рдЧ рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдпрд╣рд╛рдБ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред
рдЕрдм рд╣рдо рдПрдХ рдореЙрдбрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг, рдЕрдиреБрдХреВрд▓рди рдФрд░ рдЪреБрдирдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдЬрд╡рд╛рдм рджреЗрдЧрд╛: рдХреНрдпрд╛ рдпрд╣ рдзреЛрдЦрд╛рдзрдбрд╝реА рдХреЗ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдкрд░ рд╕рдВрджреЗрд╣ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ?

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдПрдХ рдЦреБрд▓реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд┐рдпрд╛ рдерд╛ рдЬреЛ рдПрдирд░реЙрди рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдВрджрд┐рдЧреНрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдзреЛрдЦрд╛рдзрдбрд╝реА рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдореЗрдВ рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣ рдХреЛ рд╕рд╣реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрдВрддрд░рд╛рд▓ (NaN) рднрд░реЗ рдЧрдП рдереЗ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдбреЗрдЯрд╛ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЪрдпрди рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдкрд░рд┐рдгрд╛рдо рдХрдИ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдерд╛:
- X_train рдФрд░ y_train - рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдирдореВрдирд╛ (111 рд░рд┐рдХреЙрд░реНрдб);
- X_test рдФрд░ y_test - рдПрдХ рдирдореВрдирд╛ рдЬрд┐рд╕ рдкрд░ рд╣рдорд╛рд░реЗ рдореЙрдбрд▓ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рдПрдЧреА (28 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ)ред
рдореЙрдбрд▓реЛрдВ рдХрд╛ рдмреЛрд▓рдирд╛ ... рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдкрд░ рд╕рдВрджреЗрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдХреБрдЫ рд╕рдВрдХреЗрддреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрд╕рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╣рдо рд╡рд░реНрдЧреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдЦрдВрдб рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдореБрдЦреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЙрдбрд▓ Sklearn рд╕реЗ рд▓рд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
- рдиреИрд╡реЗ рдмреЗрд╕ (рднреЛрд▓реЗ рдмреЗрдпрд╕ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдпрд░);
- рдПрд╕рд╡реАрдПрдо (рд╕рдВрджрд░реНрдн рд╡реЗрдХреНрдЯрд░ рдорд╢реАрди);
- K- рдирд┐рдХрдЯрддрдо рдкрдбрд╝реЛрд╕реА (рдирд┐рдХрдЯрддрдо рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рд╡рд┐рдзрд┐);
- рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рди (рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╡рди);
- рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХред
рдПрдХ рдРрд╕реА рддрд╕реНрд╡реАрд░ рднреА рд╣реИ рдЬреЛ рдЙрдирдХреА рдкреНрд░рдпреЛрдЬреНрдпрддрд╛ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рджрд░реНрд╢рд╛рддреА рд╣реИ:

рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдбрд┐рд╕реАрдЬрди рдЯреНрд░реА (рдирд┐рд░реНрдгрдп рд╡реГрдХреНрд╖) рд╣реИ, рдЬреЛ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдЪрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди, рд╢рд╛рдпрдж, рдпрд╣ рд░реИрдВрдбрдо рдлрд╝реЙрд░реЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рдореЗрдВ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдЬреЛ рдирд┐рд░реНрдгрдп рдкреЗрдбрд╝реЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЗрд╕реЗ рд▓реЙрдЬрд┐рд╕реНрдЯрд┐рдХ рд░рд┐рдЧреНрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ, рдЬреЛ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ (0 рдпрд╛ 1) рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рд╢реБрд░реБрдЖрдд
рд╣рдо рд╕рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ:
from sklearn.naive_bayes import GaussianNB from sklearn.linear_model import LogisticRegression from sklearn.neighbors import KNeighborsClassifier from sklearn.svm import SVC from sklearn.neural_network import MLPClassifier from sklearn.ensemble import RandomForestClassifier random_state = 42 gnb = GaussianNB() svc = SVC() knn = KNeighborsClassifier() log = LogisticRegression(random_state=random_state) rfc = RandomForestClassifier(random_state=random_state) mlp = MLPClassifier(random_state=random_state)
рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕рдореВрд╣ рднреА рдмрдирд╛рдПрдВрдЧреЗ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрди рд╕рднреА рдХреЛ рдПрдХ рд╕рд╛рде рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
classifiers = [gnb, svc, knn, log, rfc, mlp] for clf in classifiers: clf.fit(X_train, y_train)
рдореЙрдбрд▓реЛрдВ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЙрдирдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдкрд╣рд▓реЗ рдкрд░реАрдХреНрд╖рдг рдХрд╛ рд╕рдордп рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рд╕реАрдмреЙрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддреЗ рд╣реИрдВ:
from sklearn.metrics import accuracy_score def calculate_accuracy(X, y): result = pd.DataFrame(columns=['classifier', 'accuracy']) for clf in classifiers: predicted = clf.predict(X_test) accuracy = round(100.0 * accuracy_score(y_test, predicted), 2) classifier = clf.__class__.__name__ classifier = classifier.replace('Classifier', '') result = result.append({'classifier': classifier, 'accuracy': accuracy}, ignore_index=True) print('Accuracy is {accuracy}% for {classifier_name}'.format(accuracy=accuracy, classifier_name=classifier)) result = result.sort_values(['classifier'], ascending=True) plt.subplots(figsize=(10, 7)) sns.barplot(x="classifier", y='accuracy', palette=cmap, data=result)
рдЖрдЗрдП рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдХрд┐ рдХрдХреНрд╖рд╛ рдХреЗ рдЫрд╛рддреНрд░реЛрдВ рдХреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдЪрд╛рд░ рдкрд░:
calculate_accuracy(X_train, y_train)

рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдкрд░реАрдХреНрд╖рдг рдХреЗ рдирдореВрдиреЗ рдкрд░ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреА рд╕рдЯреАрдХрддрд╛ рд▓рдЧрднрдЧ 90% рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдп рд╢рд╛рдирджрд╛рд░ рд╣реИ!
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд░рд╕реАрд▓рд╛ рдирд╣реАрдВ рд╣реИредрдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рд╕рд╣реА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгрд┐рдпреЛрдВ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдирдореВрдиреЗ рдореЗрдВ 28 рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ 4 рд╕рдВрджрд┐рдЧреНрдз рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВ, рдФрд░ 24 рдЬреЛ рд╕рдВрджреЗрд╣ рд╕реЗ рдкрд░реЗ рд╣реИрдВред рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╣рдордиреЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рд╣реИ:
def QuaziAlgo(features): return 0
рдлрд┐рд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдкрд░ рдЙрд╕реЗ рд╣рдорд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рдирдореВрдирд╛ рджрд┐рдпрд╛, рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рд╕рднреА 28 рд▓реЛрдЧ рдирд┐рд░реНрджреЛрд╖ рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреА рд╕рдЯреАрдХрддрд╛ рдХреНрдпрд╛ рд╣реЛрдЧреА?
рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, KNeighbors рдПрдХ рд╣реА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рд╕рдЯреАрдХрддрд╛ рд╣реИ ...
рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдЦреБрдж рдХреА рдЪрд╛рдкрд▓реВрд╕реА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрд▓рдЭрди рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ:
from sklearn.metrics import confusion_matrix def make_confussion_matrices(X, y): matrices = {} result = pd.DataFrame(columns=['classifier', 'recall']) for clf in classifiers: classifier = clf.__class__.__name__ classifier = classifier.replace('Classifier', '') predicted = clf.predict(X_test) print(f'{predicted}-{classifier}') matrix = confusion_matrix(y_test,predicted,labels=[1,0]) matrices[classifier] = matrix.T return matrices
рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рдореИрдЯреНрд░реЗрд╕ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░, рдЗрд╕рдХреЗ рд╕рд╛рде, рджреЗрдЦреЗрдВ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреНрдпрд╛ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреА рдереА:
matrices = make_confussion_matrices(X_train,y_train)

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕рд╣рдкрд╛рдард┐рдпреЛрдВ рдХреЗ рдХрд╛рдо рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдПрдХ рдкрд╛рдард╛рддреНрдордХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛ред
рдирд┐рдХрдЯрддрдо рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреА рд╡рд┐рдзрд┐ рдиреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдирдореВрдиреЗ рдореЗрдВ рдПрдХ рднреА рд╕рдВрджрд┐рдЧреНрдз рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рджреЛ рд╕рд╡рд╛рд▓ рдЙрдарддреЗ рд╣реИрдВ:
- KNeighbors рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИ?
- рдпрджрд┐ рд╣рдо рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рддреНрд░реБрдЯрд┐ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреНрдпреЛрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджреЗрдЦреЗрдВ?
рдЧрд╣рд░рд╛рдИ рд╕реЗ рджреЗрдЦреЗрдВ
рджреВрд╕рд░реЗ рдкреНрд░рд╢реНрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЗрдП, рд╡рд░реНрдЧреАрдХрд░рдг рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдкрд░ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рддреНрд░реБрдЯрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдФрд░ рдЧреНрд░рд╛рдлрд╝рд┐рдХрд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ:
import itertools from collections import Iterable def draw_confussion_matrices(row,col,matrices,figsize = (16,12)): fig, (axes) = plt.subplots(row,col, sharex='col', sharey='row',figsize=figsize ) if any(isinstance(i, Iterable) for i in axes): axes = list(itertools.chain.from_iterable(axes)) idx = 0 for name,matrix in matrices.items(): df_cm = pd.DataFrame( matrix, index=['True','False'], columns=['True','False'], ) ax = axes[idx] fig.subplots_adjust(wspace=0.1) sns.heatmap(df_cm, annot=True,cmap=cmap,cbar=False ,fmt="d",ax=ax,linewidths=1) ax.set_title(name) idx += 1
рд╣рдо рдЙрдиреНрд╣реЗрдВ 2 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдФрд░ 3 рдХреЙрд▓рдореЛрдВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
draw_confussion_matrices(2,3,matrices)

рдЬрд╛рд░реА рд░рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рджреЗрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред рдкрджрдирд╛рдо рдЯреНрд░реВ, рдЬреЛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЗ рддреНрд░реБрдЯрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдмрд╛рдИрдВ рдУрд░ рд╕реНрдерд┐рдд рд╣реИ, рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдиреЗ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдПрдХ рд╕рдВрджрд┐рдЧреНрдз рдорд╛рдирд╛ рд╣реИ, рдореВрд▓реНрдп рдЧрд▓рдд рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡реНрдпрдХреНрддрд┐ рд╕рдВрджреЗрд╣ рд╕реЗ рдкрд░реЗ рд╣реИред рдЗрд╕реА рддрд░рд╣, рдЫрд╡рд┐ рдХреЗ рдирд┐рдЪрд▓реЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╕реНрдерд┐рдд рдЯреНрд░реВ рдФрд░ рдЧрд▓рдд рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдорд▓реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╢рд╛рдпрдж рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдпрд░ рдХреЗ рдирд┐рд░реНрдгрдп рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ 85.71% рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рд╕рдЯреАрдХрддрд╛ рдХреЗ рд╕рд╛рде KNeighbors рдирд┐рд░реНрдгрдп рдорд╛рдорд▓реЛрдВ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдЬрдм 24 рд▓реЛрдЧ, рдЬреЛ рд╕рдВрджреЗрд╣ рд╕реЗ рдмрд╛рд╣рд░ рдереЗ, рдХреЛ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдпрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рди рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рд╕рдВрджрд┐рдЧреНрдзреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд╕реЗ 4 рд▓реЛрдЧреЛрдВ рдХреЛ рднреА рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдЧрд░ рдЗрд╕ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдиреЗ рдлреИрд╕рд▓реЗ рдХрд┐рдП, рддреЛ рд╢рд╛рдпрдж рдХреЛрдИ рднреА рдЕрджрд╛рд▓рдд рд╕реЗ рдмрдЪ рд╕рдХрддрд╛ рдерд╛ред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд░реНрдЧреАрдХрд░рдг рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдЧрд▓рдд рд╣реБрдЖ, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЙрдкрдХрд░рдг рд╣реИред рдЙрдирдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рджреГрд╢реНрдпрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдирд╕реЗ рдЕрдкреАрд▓ рдХрд░рддреЗ рд╣реИрдВред
рдореИрдЯреНрд░рд┐рдХреНрд╕
рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рджреНрд╡рд╛рд░рд╛ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЯреАрдкреА, рдЯреАрдПрди, рдПрдлрдкреА рдФрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдлрдПрди рдХреНрдпрд╛ рд╣реИрдВ?
рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЗ рдЬрд╡рд╛рдм рдФрд░ рдорд╛рдорд▓реЛрдВ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдпрд╣реА рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рднреА рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдЯреАрдкреА рдФрд░ рдЯреАрдПрди (рд╕рдЪреНрдЪреЗ рд╕рдорд╛рдзрд╛рди) рдХреЗ рдмреАрдЪ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдлрдПрди рдФрд░ рдПрдлрдкреА (рдЭреВрдареЗ рд╕рдорд╛рдзрд╛рди) рдореЗрдВ рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВред
рд╣рдореЗрд╢рд╛ рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рдирд╛рдЯрдХреАрдп рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИрдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреИрдВрд╕рд░ рдХреЗ рдирд┐рджрд╛рди рдХреЗ рд╕рд╛рде рд╡рд┐рд╣рд┐рдд рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдлрдкреА рдПрдлрдПрди рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреИрдВрд╕рд░ рдкрд░ рдЭреВрдареЗ рдлреИрд╕рд▓реЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░реЛрдЧреА рдХреЛ рджрд╡рд╛ рджреА рдЬрд╛рдПрдЧреА рдФрд░ рдЙрд╕рдХрд╛ рдЗрд▓рд╛рдЬ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рд╛рдВ, рдпрд╣ рдЙрдирдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдФрд░ рд╡реЙрд▓реЗрдЯ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЗрд╕реЗ рдПрдлрдПрди рд╕реЗ рдХрдо рдЦрддрд░рдирд╛рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдорд┐рд╕реНрдб рдХрд╛рд▓ рдЬрд┐рд╕рдореЗрдВ рдХреИрдВрд╕рд░ рдХреЛ рдЫреЛрдЯреЗ рддрд░реАрдХреЛрдВ рд╕реЗ рд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдВрджрд┐рдЧреНрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдПрдлрдПрди рд╢рд╛рдпрдж рдПрдлрдкреА рдЬрд┐рддрдирд╛ рдЦрд░рд╛рдм рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЙрд╕ рдкрд░ рдФрд░ рдмрд╛рдж рдореЗрдВ ...
рдФрд░ рдЬрдм рд╕реЗ рд╣рдо рд╕рдВрдХреНрд╖рд┐рдкреНрддреАрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рд╕рдЯреАрдХрддрд╛ (рдкрд░рд┐рд╢реБрджреНрдзрддрд╛) рдФрд░ рдкреВрд░реНрдгрддрд╛ (рд░рд┐рдХреЙрд▓) рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдпрджрд┐ рдЖрдк рдФрдкрдЪрд╛рд░рд┐рдХ рд░рд┐рдХреЙрд░реНрдб рд╕реЗ рд╡рд┐рджрд╛ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рд╕рдЯреАрдХ рд░реВрдк рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдПрдХ рдЦрд╛рддреЗ рдХреЛ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдпрд░ рд╕реЗ рдХрд┐рддрдиреА рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИрдВред рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдЯреАрдХрддрд╛, рдЭреВрдареА рд╣рд┐рдЯ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо (рд╕рдЯреАрдХрддрд╛ 1 рд╣реИ рдЕрдЧрд░ рдПрдлрдкреА рдирд╣реАрдВ рдереЗ)ред
рд░рд┐рдХреЙрд▓ рдХреЛ рдЖрдо рддреМрд░ рдкрд░ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреА рдХреНрд╖рдорддрд╛ "рдЕрдиреБрдорд╛рди" рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрднрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЬрд╡рд╛рдмреЛрдВ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдкреВрд░реНрдгрддрд╛ рдЬрд┐рддрдиреА рдЕрдзрд┐рдХ рд╣реЛрдЧреА, FN рдЙрддрдирд╛ рд╣реА рдХрдо рд╣реЛрдЧрд╛ред
рдЖрдорддреМрд░ рдкрд░ рд╡реЗ рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрддреБрд▓рди рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рдХреЛ рджреА рдЬрд╛рдПрдЧреАред рдХрд╛рд░рдг: рдПрдХ рдЕрдзрд┐рдХ рдорд╛рдирд╡рддрд╛рд╡рд╛рджреА рджреГрд╖реНрдЯрд┐рдХреЛрдг, рдЭреВрдареА рд╕рдХрд╛рд░рд╛рддреНрдордХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдирд┐рд░реНрджреЛрд╖ рдкрд░ рдЧрд┐рд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╣ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред
рд╣рдо рдЕрдкрдиреЗ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╕рдЯреАрдХ рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВ:
from sklearn.metrics import precision_score def calculate_precision(X, y): result = pd.DataFrame(columns=['classifier', 'precision']) for clf in classifiers: predicted = clf.predict(X_test) precision = precision_score(y_test, predicted, average='macro') classifier = clf.__class__.__name__ classifier = classifier.replace('Classifier', '') result = result.append({'classifier': classifier, 'precision': precision}, ignore_index=True) print('Precision is {precision} for {classifier_name}'.format(precision=round(precision,2), classifier_name=classifier)) result = result.sort_values(['classifier'], ascending=True) plt.subplots(figsize=(10, 7)) sns.barplot(x="classifier", y='precision', palette=cmap, data=result) calculate_precision(X_train, y_train)

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдХреГрддрд┐ рд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ, рдпрд╣ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдирд┐рдХрд▓рд╛: KNeighbors рд╕рдЯреАрдХрддрд╛ рд╕рдмрд╕реЗ рдХрдо рдирд┐рдХрд▓рд╛, рдХреНрдпреЛрдВрдХрд┐ рдЯреАрдкреА рдореВрд▓реНрдп рд╕рдмрд╕реЗ рдХрдо рд╣реИред
рдЗрд╕реА рд╕рдордп, рд╣реИрдмреЗ рдкрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд░ рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рд╣реИ , рдФрд░ рдЬреЛ рд▓реЛрдЧ рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рдЧрд╣рд░рд╛ рдЧреЛрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЗрд╕рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╣рд╛рдЗрдкрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдЪрдпрди
рд╣рдордиреЗ рдореЗрдЯреНрд░рд┐рдХ рдХреЗ рдмрд╛рдж рдкрд╛рдпрд╛ рдХрд┐ рдЪрдпрдирд┐рдд рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИ (рд╣рдо рдПрдлрдкреА рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░рддреЗ рд╣реИрдВ), рд╣рдо рдкрд╣рд▓реЗ рд╕рд╡рд╛рд▓ рдкрд░ рд▓реМрдЯ рд╕рдХрддреЗ рд╣реИрдВ: рдХреЗрдирд┐рдШреЛрд░реНрд╕ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИ?
рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдпрд╣ рдореЙрдбрд▓ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдХрдИ рд▓реЛрдЧ рдЗрд╕ рдЪрд░рдг рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдкрд░ рдЯреНрд░реЗрди рдХреНрдпреЛрдВ? рд╡рд┐рд╢реЗрд╖ рдЪрдпрди рдЙрдкрдХрд░рдг рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдХреНрд╕рд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ GridSearchCVред
рд╣рд╛рдБ, рдпрд╣ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ,
рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЕрдкрдиреА рд╕реВрдЪреА рд╕реЗ рдмрд╛рдпреЗрд╕рд┐рдпрди рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдПрдлрдкреА рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд┐рд╕реА рднреА рдЪрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛ред
classifiers.remove(gnb)
рдареАрдХ рдЯреНрдпреВрдирд┐рдВрдЧ
рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░рд┐рдлрд╛рдпрд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЧреНрд░рд┐рдб рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
parameters = {'SVC':{'kernel':('linear', 'rbf','poly'), 'C':[i for i in range(1,11)],'random_state': (random_state,)}, 'KNeighbors':{'algorithm':('ball_tree', 'kd_tree'), 'n_neighbors':[i for i in range(2,20)]}, 'LogisticRegression':{'penalty':('l1', 'l2'), 'C':[i for i in range(1,11)],'random_state': (random_state,)}, 'RandomForest':{'n_estimators':[i for i in range(10,101,10)],'random_state': (random_state,)}, 'MLP':{'activation':('relu','logistic'),'solver':('sgd','lbfgs'),'max_iter':(500,1000), 'hidden_layer_sizes':[(7,),(7,7)],'random_state': (random_state,)}}
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдореИрдВ MLP рдореЗрдВ рдкрд░рддреЛрдВ / рдиреНрдпреВрд░реЙрдиреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдпрд╣ рдЙрдиреНрд╣реЗрдВ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреА рд╡рд┐рд╕реНрддреГрдд рдЦреЛрдЬ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рд╕реВрддреНрд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ :
рдореИрдВ рддреБрд░рдВрдд рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рдкрд╛рд░-рд╕рддреНрдпрд╛рдкрди рдХреЗрд╡рд▓ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдирдореВрдиреЗ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд░рд╛рдп рд╣реИ рдХрд┐ рдЖрдк рд╕рднреА рдбреЗрдЯрд╛ рдкрд░ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдЗрд░рд┐рд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рдореЗрдВ ред рд▓реЗрдХрд┐рди, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдиреНрдпрд╛рдпрд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░реАрдХреНрд╖рдг рдирдореВрдиреЗ рдкрд░ рд╕рддреНрдпрд╛рдкрди рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рд╣рдо рдЕрдиреБрдХреВрд▓рди рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдПрдВрдЧреЗ рдФрд░ рд╣рдорд╛рд░реЗ рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЛ рдЙрдирдХреЗ рдЙрдиреНрдирдд рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдмрджрд▓реЗрдВрдЧреЗ:
from sklearn.model_selection import GridSearchCV warnings.filterwarnings('ignore') for idx,clf in enumerate(classifiers): classifier = clf.__class__.__name__ classifier = classifier.replace('Classifier', '') params = parameters.get(classifier) if not params: continue new_clf = clf.__class__() gs = GridSearchCV(new_clf, params, cv=5) result =gs.fit(X_train, y_train) print(f'The best params for {classifier} are {result.best_params_}') classifiers[idx] = result.best_estimator_

рд╣рдордиреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдПрдХ рдореАрдЯреНрд░рд┐рдХ рдЪреБрдирд╛ рд╣реИ рдФрд░ GridSearchCV рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдВрддрд┐рдо рд░реЗрдЦрд╛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рджреЗрдирд╛
рддреНрд░реБрдЯрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ v.2
matrices = make_confussion_matrices(X_train,y_train) draw_confussion_matrices(1,2,first_row,figsize = (10.5,6)) draw_confussion_matrices(1,3,second_row,figsize = (16,6))


рдЬреИрд╕рд╛ рдХрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдордПрд▓рдкреА рдиреЗ рдЧрд┐рд░рд╛рд╡рдЯ рджрд┐рдЦрд╛рдИ рдФрд░ рдорд╛рдирд╛ рдХрд┐ рдкрд░реАрдХреНрд╖рдг рдирдореВрдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдВрджрд┐рдЧреНрдз рдирд╣реАрдВ рдереЗред рд░реИрдВрдбрдо рдлрд╝реЙрд░реЗрд╕реНрдЯ рдиреЗ рд╕рдЯреАрдХрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХреА рдФрд░ рдЭреВрдареА рдирдХрд╛рд░рд╛рддреНрдордХ рдФрд░ рд╕рдЪреНрдЪреЗ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рд╣реА рдХрд┐рдпрд╛ред рдФрд░ KNeighbors рдиреЗ рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдореЗрдВ рд╕реБрдзрд╛рд░ рджрд┐рдЦрд╛рдпрд╛ред рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред
рд╕рдЯреАрдХрддрд╛ v.2
рдЕрдм, рд╣рдорд╛рд░реЗ рдХрд┐рд╕реА рднреА рд╡рд░реНрддрдорд╛рди рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреЗ рдкрд╛рд╕ рдлрд╛рд▓реНрд╕ рдкреЙрдЬрд┐рдЯрд┐рд╡ рдХреА рдЧрд▓рддрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВ, рдЬреЛ рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИред рд▓реЗрдХрд┐рди, рдпрджрд┐ рд╣рдо рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рднрд╛рд╖рд╛ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╡реНрдпрдХреНрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ:
calculate_precision(X_train, y_train)


рдЙрдЪреНрдЪрддрдо рдкрд░рд┐рд╢реБрджреНрдзрддрд╛ рд╕реНрдХреЛрд░ рд╡рд╛рд▓реЗ 3 рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рдХреА рдкрд╣рдЪрд╛рди рдХреА рдЧрдИред рдФрд░ рддреНрд░реБрдЯрд┐ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрдирдХреЗ рд╕рдорд╛рди рдореВрд▓реНрдп рд╣реИрдВред рдХрд┐рд╕ рд╡рд░реНрдЧ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реИ?
рдХреМрди рдмреЗрд╣рддрд░ рд╣реИ?
рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдХрдард┐рди рд╕рд╡рд╛рд▓ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЬрд╡рд╛рдм рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореЗрд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:
1. рдХреНрд▓рд╛рд╕рд┐рдлрд╛рдпрд░ рд╕рдВрднрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдиреЗ рддрдХрдиреАрдХреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕рд░рд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рддрдм рдЙрд╕реЗ рдлрд┐рд░ рд╕реЗ рдкреИрд░ рд░рдЦрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдХрдо рд╣реЛрдЧрд╛ (рд╢рд╛рдпрдж рдПрдордПрд▓рдкреА рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рд╣реА рд╣реБрдЖ)ред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд░реИрдВрдбрдо рдлрд╝реЙрд░реЗрд╕реНрдЯ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо 30 рдкреЗрдбрд╝реЛрдВ рдХрд╛ рдПрдХ рдкрд╣рдирд╛рд╡рд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЙрди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдкрд╛рдпрдерди рдЬрд╝реЗрди рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рд╡реНрдпрдВрдЬрди: рд╕рд░рд▓ рдЬрдЯрд┐рд▓ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред
2. рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рд╣рдЬ рд╣реЛрдиреЗ рдкрд░ рдмреБрд░рд╛ рдирд╣реАрдВ рдерд╛ред рдпрд╣реА рд╣реИ, KNeighbors рд╕рдВрднрд╛рд╡рд┐рдд рдмрд╣реБрдЖрдпрд╛рдореА рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде SVMs рд╕реЗ рдЕрдзрд┐рдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмрджрд▓реЗ рдореЗрдВ рдЬреЛ рдПрдХ рдФрд░ рдмрдпрд╛рди рдХреЗ рд╕рдорд╛рди рд╣реИ: рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рд╣рд┐рдд рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред
рдЗрд╕рд▓рд┐рдП, 3 рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде KNeighbors, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИред
рдпрд╣ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдореЗрдВ рд╡рд░реНрдЧреАрдХрд░рдг рдХрд╛рд░реНрдп рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдПрдирд░реЙрди рдбреЗрдЯрд╛рд╕реИрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реБрдП, рджреВрд╕рд░реЗ рднрд╛рдЧ рдХрд╛ рдЕрдВрдд рд╣реИред рдЙрдбрдиреЗрд╕ рдкрд░ рдЗрдВрдЯреНрд░реЛрдбрдХреНрд╢рди рдЯреВ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдХреЛрд░реНрд╕ рдХреА рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред рдПрдХ рдЕрдЬрдЧрд░ рдиреЛрдЯрдмреБрдХ рднреА рд╣реИ рдЬреЛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдкреВрд░реЗ рд╡рд░реНрдгрд┐рдд рдЕрдиреБрдХреНрд░рдо рдХреЛ рджрд░реНрд╢рд╛рддреА рд╣реИред