CoolFace
Apppublic

KavyaK/DL-Models

sourceHugging Faceupdated 3y agoView on Hugging Face
0likes
BackPropogation.py72 linesDownload Raw Back to root
1import numpy as np2import pandas as pd3import matplotlib.pyplot as plt4import seaborn as sns5from sklearn.model_selection import train_test_split6from sklearn.metrics import classification_report, confusion_matrix, accuracy_score7from sklearn.preprocessing import LabelEncoder8from tqdm import tqdm9import pickle10from BackPropogation_class import BackPropogation 11import tensorflow as tf12 13# Load spam dataset14dataset = pd.read_csv("denv/Models/RNN/SMSSpamCollection.txt", sep='\t', names=['label', 'message'])15 16# Use LabelEncoder for label encoding17label_encoder = LabelEncoder()18dataset['label'] = label_encoder.fit_transform(dataset['label'])19 20X = dataset['message'].values21y = dataset['label'].values22 23# Train-test split24X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)25 26# Tokenize and pad the training data using a tokenizer27tokeniser = tf.keras.preprocessing.text.Tokenizer()28tokeniser.fit_on_texts(X_train)29encoded_train = tokeniser.texts_to_sequences(X_train)30max_length = 1031padded_train = tf.keras.preprocessing.sequence.pad_sequences(encoded_train, maxlen=max_length, padding='post')32 33# Instantiate and train the BackPropagation model34backprop_model = BackPropogation(learning_rate=0.01, epochs=100, activation_function='step')35backprop_model.fit(padded_train, y_train)36 37# Tokenize and pad the test data using the same tokenizer38encoded_test = tokeniser.texts_to_sequences(X_test)39padded_test = tf.keras.preprocessing.sequence.pad_sequences(encoded_test, maxlen=max_length, padding='post')40 41# Make predictions42backprop_preds = backprop_model.predict(padded_test)43 44# Evaluate the BackPropagation model45def c_report(y_true, y_pred):46    print("BackPropagation Classification Report")47    print(classification_report(y_true, y_pred))48    acc_sc = accuracy_score(y_true, y_pred)49    print(f"Accuracy : {str(round(acc_sc, 2) * 100)}")50    return acc_sc51 52def plot_confusion_matrix(y_true, y_pred):53    mtx = confusion_matrix(y_true, y_pred)54    sns.heatmap(mtx, annot=True, fmt='d', linewidths=.5, cmap="Blues", cbar=False)55    plt.ylabel('True label')56    plt.xlabel('Predicted label')57    plt.savefig("denv/Models/RNN/results/test.jpg")58 59# Evaluate and save60c_report(y_test, backprop_preds)61plot_confusion_matrix(y_test, backprop_preds)62 63# Save the BackPropagation model64with open('backprop_model.pkl', 'wb') as model_file:65    pickle.dump(backprop_model, model_file)66 67 68 69 70    71    72