12311k

Untitled

Mar 3rd, 2020
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.31 KB | None | 0 0
  1. import pandas as pd
  2.  
  3. from sklearn.model_selection import train_test_split
  4. from sklearn.linear_model import LogisticRegression
  5. from sklearn.tree import DecisionTreeClassifier
  6. from sklearn.preprocessing import StandardScaler
  7.  
  8. from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
  9. from sklearn.metrics import roc_auc_score
  10.  
  11. # прочитаем из csv-файла данные о параметрах сетей и их устойчивости
  12. electrical_grid = pd.read_csv('/datasets/Electrical_Grid_Stability.csv', sep = ';')
  13. print('Размер датасета:', electrical_grid.shape)
  14. electrical_grid.head()
  15.  
  16. # посмотрим, как соотносятся классы для нашего набора данных
  17. electrical_grid['stability'].value_counts()
  18.  
  19. # разделим наши данные на признаки (матрица X) и целевую переменную (y)
  20. X = electrical_grid.drop('stability', axis = 1)
  21. y = electrical_grid['stability']
  22.  
  23. # разделяем модель на обучающую и валидационную выборку
  24. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
  25.  
  26. # обучите StandartScaler на обучающей выборке
  27. scaler = StandardScaler()
  28. scaler.fit(X_train)
  29.  
  30. # Преобразуйте обучающий и валидационные наборы данных
  31. X_train_st = scaler.transform(X_train)
  32. X_test_st = scaler.transform(X_test)
  33.  
  34. # зададим алгоритм для нашей модели
  35. model = LogisticRegression(random_state=0)
  36.  
  37. # обучим модель
  38. model.fit(X_train_st, y_train)
  39.  
  40. # воспользуемся уже обученной моделью, чтобы сделать прогнозы
  41. predictions = model.predict(X_test_st)
  42. probabilities = model.predict_proba(X_test_st)[:,1]
  43.  
  44. # выведем все изученные метрики
  45. print('Метрики для логистической регрессии')
  46. print('Accuracy: {:.2f}'.format(accuracy_score(y_test, predictions)))
  47. print('Precision: {:.2f}'.format(precision_score(y_test, predictions)))
  48. print('Recall: {:.2f}'.format(recall_score(y_test, predictions)))
  49. print('F1: {:.2f}'.format(f1_score(y_test, predictions)))
  50. print('ROC_AUC: {:.2f}\n'.format(roc_auc_score(y_test, probabilities)))
  51.  
  52. # зададим алгоритм для новой модели на основе алгоритма решающего дерева
  53. tree_model = DecisionTreeClassifier(random_state=0)
  54.  
  55. # обучим модель
  56. tree_model.fit(X_train_st, y_train)
  57.  
  58. # воспользуемся уже обученной моделью, чтобы сделать прогнозы
  59. tree_predictions = tree_model.predict(X_test_st)
  60. tree_probabilities = tree_model.predict_proba(X_test_st)[:,1]
  61.  
  62. # выведем все изученные метрики
  63. print('Метрики для дерева принятия решения')
  64. print('Accuracy: {:.2f}'.format(accuracy_score(y_test, tree_predictions)))
  65. print('Precision: {:.2f}'.format(precision_score(y_test, tree_predictions)))
  66. print('Recall: {:.2f}'.format(recall_score(y_test, tree_predictions)))
  67. print('F1: {:.2f}'.format(f1_score(y_test, tree_predictions)))
  68. print('ROC_AUC: {:.2f}'.format(roc_auc_score(y_test, tree_probabilities)))
Add Comment
Please, Sign In to add comment