import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

# Load the dataset
csv_file_path = "garments_worker_productivity.csv"
df = pd.read_csv(csv_file_path)

# Inspect the distribution
print(df["actual_productivity"].describe())

#### Transform actual_productivity

# Transform ‘actual_productivity’ to a binary variable
threshold = 0.5
df["productivity_class"] = (df["actual_productivity"] >= threshold).astype(int)

# Check the transformation
print(df["productivity_class"].value_counts())

# Visualize the distribution of classes
sns.countplot(x="productivity_class", data=df)
plt.title("Distribution of Productivity Classes")
plt.show()

#### Normalize Features (Excluding the Target Variable)

# Define features and target
X = df.drop(["actual_productivity", "productivity_class"], axis=1)
y = df["productivity_class"]

# Convert categorical variables into dummies
X = pd.get_dummies(X)

# Split the data into training and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Normalize - Fit StandardScaler on X_train and transform both X_train and X_test 
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

# If needed, visualize the normalized training data (optional)
print(pd.DataFrame(X_train_scaled, columns=X_train.columns).head())

# Confirm the splitting
print(f"Training Set Size: {len(X_train)}")
print(f"Test Set Size: {len(X_test)}")

extending this code, can you help accomplish the task of: 
following this task requirement:
1.	Background and Dataset
The garment industry is one of the key examples of the industrial globalization of this modern era. There are many manual operations in this business, which requires a lot of effort. Employee performance in terms of production and delivery in clothing manufacturing enterprises is a major factor in meeting the enormous demand for textile products around the world. Hence, monitoring, evaluating, and forecasting the productivity performance of the factory work teams is highly desired by the decision-makers in the garment business.
In this study, you will use Productivity Prediction of Garment Employees dataset to classify it as satisfactory or unsatisfactory productivity.
The dataset consists of 1197 instances and 15 features. For dataset description see UCI Machine Learning Library at:
 https://archive.ics.uci.edu/dataset/597/productivity+prediction+of+garment+employees
This study consists of two parts:
•	Part 1 is about implementing and training a multilayer feedforward neural network to classify productivity data as satisfactory or unsatisfactory.
•	Part 2 is about applying computational intelligence techniques to classify the data based on various features. 
2.	Part 1 Tasks

Developing ANN from Scratch
2.2	Construct a 3-layers feedforward network with X input neurons, 20 hidden neurons, and Y output neurons. You must identify the values of X and Y yourself (Hint: Lecture # 3 ANN architecture design). Identify an appropriate activation function and justify your choice.