Advertisement
Norvager

xeze

Nov 24th, 2021
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.88 KB | None | 0 0
  1. import numpy as np
  2. import pandas as pd
  3.  
  4. import matplotlib.pyplot as plt
  5.  
  6. from sklearn import datasets
  7. from tensorflow.keras.utils import to_categorical
  8. #Открыть набор данных в переменную
  9. df = pd.read_csv('vehicle.dat')
  10. print(df.columns)
  11. X = df.drop([' Class'], axis = 1)
  12. X.head()
  13. #Y = to_categorical(df[' Class'])
  14. Y = df[' Class']
  15. Y = pd.get_dummies(Y, columns=[' Class'])
  16. Y.head()
  17. #print(Y)
  18. from scipy.spatial.distance import pdist, squareform
  19. import seaborn as sns
  20. from sklearn.preprocessing import StandardScaler, MinMaxScaler
  21. data_scaled = MinMaxScaler().fit_transform(X.to_numpy())
  22. import tensorflow as tf
  23. def plot_the_loss_curve(epochs,mse):
  24. """График лосс-значений/эпохи"""
  25.  
  26. plt.figure()
  27. plt.xlabel("Epoch")
  28. plt.ylabel("Mean Squared Error")
  29.  
  30. plt.plot(epochs, mse, label="Loss")
  31. plt.legend()
  32. plt.ylim([mse.min()*0.97, mse.max()])
  33. plt.show()
  34.  
  35. print("Defined the plot_the_model and plot_the_loss_curve functions.")
  36. def build_model(my_learning_rate, X, Y):
  37. """Создание классификатора"""
  38. model = tf.keras.models.Sequential()
  39.  
  40. model.add(tf.keras.layers.Dense(units=10,
  41. input_shape=(X.shape[1],),activation='tanh'))
  42. model.add(tf.keras.layers.Dense(10,activation='tanh'))
  43.  
  44. # Выходной слой с числом нейронов по числу классов
  45. model.add(tf.keras.layers.Dense(Y.shape[1], activation = 'softmax'))
  46.  
  47. # Лосс-функция уже другая
  48. model.compile(optimizer=tf.optimizers.Adam(lr=my_learning_rate),
  49. loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
  50. metrics=['accuracy'])
  51.  
  52. return model
  53.  
  54.  
  55. def train_model(model, feature, label, epochs, batch_size):
  56. """Обучение модели"""
  57.  
  58. history = model.fit(x=feature,
  59. y=label,
  60. batch_size=batch_size,
  61. epochs=epochs)
  62.  
  63. trained_weight = model.get_weights()[0]
  64. trained_bias = model.get_weights()[1]
  65.  
  66. epochs = history.epoch
  67.  
  68. hist = pd.DataFrame(history.history)
  69.  
  70. acc = hist["accuracy"]
  71.  
  72. return trained_weight, trained_bias, epochs, acc
  73.  
  74. print("Defined create_model and train_model")
  75. my_features = data_scaled
  76. my_labels = Y
  77. learning_rate=0.05
  78. epochs=100
  79. my_batch_size= 10
  80.  
  81. my_model = build_model(learning_rate, X, Y)
  82. trained_weight, trained_bias, epochs, acc = train_model(my_model, my_features,
  83. my_labels, epochs,
  84. my_batch_size)
  85. from sklearn.datasets import fetch_openml
  86. from sklearn.preprocessing import StandardScaler
  87. dataset = fetch_openml('har')
  88. X = StandardScaler().fit_transform(dataset.data)
  89. Y = dataset.target
  90. Y_new = []
  91. for i in range(len(Y)):
  92. Y_new.append(int(Y[i]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement