Experiment 6
Experiment 6
import tensorflow as tf
import numpy as np
import pandas as pd
# Load dataset (Assuming a CSV file with relevant features and target column
'PurchaseAmount')
data = pd.read_csv("car_sales.csv")
X = data.drop(columns=["PurchaseAmount"]).values
y = data["PurchaseAmount"].values.reshape(-1, 1)
scaler_X = StandardScaler()
scaler_y = StandardScaler()
X = scaler_X.fit_transform(X)
y = scaler_y.fit_transform(y)
input_size = X_train.shape[1]
hidden_size = 64
output_size = 1
learning_rate = 0.01
epochs = 50
batch_size = 32
W1 = tf.Variable(tf.random.normal([input_size, hidden_size]))
b1 = tf.Variable(tf.zeros([hidden_size]))
W2 = tf.Variable(tf.random.normal([hidden_size, output_size]))
b2 = tf.Variable(tf.zeros([output_size]))
def relu(x):
return tf.maximum(0, x)
# Forward propagation
def forward(x):
return output_layer
# Training loop
x_batch = X_train[i:i+batch_size]
y_batch = y_train[i:i+batch_size]
with tf.GradientTape() as tape:
output_layer = forward(x_batch)
W1.assign_sub(learning_rate * gradients[0])
b1.assign_sub(learning_rate * gradients[1])
W2.assign_sub(learning_rate * gradients[2])
b2.assign_sub(learning_rate * gradients[3])
y_pred = forward(X_test)
y_pred = scaler_y.inverse_transform(y_pred.numpy())
y_test = scaler_y.inverse_transform(y_test)