Advertisement
Guest User

Untitled

a guest
Mar 30th, 2020
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.29 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()
  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, predictions)))
  51.  
  52.  
  53. # зададим алгоритм для новой модели на основе алгоритма решающего дерева
  54. tree_model = DecisionTreeClassifier(random_state=0)
  55.  
  56. # обучите модель
  57. tree_model.fit(X_train_st, y_train)
  58.  
  59. # воспользуемся уже обученной моделью, чтобы сделать прогнозы
  60. tree_predictions = tree_model.predict(X_test_st)
  61. tree_probabilities = tree_model.predict_proba(X_test_st)[:,1]
  62.  
  63. # выведем все изученные метрики
  64. print('Метрики для дерева принятия решения')
  65. print('Accuracy: {:.2f}'.format(accuracy_score(y_test, tree_predictions)))
  66. print('Precision: {:.2f}'.format(precision_score(y_test, tree_predictions)))
  67. print('Recall: {:.2f}'.format(recall_score(y_test, tree_predictions)))
  68. print('F1: {:.2f}'.format(f1_score(y_test, tree_predictions)))
  69. print('ROC_AUC: {:.2f}'.format(roc_auc_score(y_test, tree_probabilities)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement