import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
df = pd.read_csv(
"https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data",
header=None)
df.columns = [
"Age", "WorkClass", "fnlwgt", "Education", "EducationNum",
"MaritalStatus", "Occupation", "Relationship", "Race", "Gender",
"CapitalGain", "CapitalLoss", "HoursPerWeek", "NativeCountry", "Income"
]
X = df.iloc[:, :-1]
y = df.iloc[:, -1]
# Set feature_types manually instead of relying on auto-detect
feature_types = ['continuous', 'nominal', 'continuous', 'nominal',
'continuous', 'nominal', 'nominal', 'nominal', 'nominal', 'nominal',
'continuous', 'continuous', 'continuous', 'nominal']
privacy_bounds = {"Age": (17, 90), "fnlwgt": (12285, 1484705),
"EducationNum": (1, 16), "CapitalGain": (0, 99999),
"CapitalLoss": (0, 4356), "HoursPerWeek": (1, 99)
}
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20)