import pandas as pd
from sklearn.feature_selection import SelectKBest, chi2
from sklearn.preprocessing import LabelEncoder

# Step 1: Load the dataset
df = pd.read_csv("customers_churn.csv")
print("Original Dataset:")
print(df.head())

# Step 2: Prepare the data
# Fill missing values
df['age'] = df['age'].fillna(df['age'].mean())
df['income'] = df['income'].fillna(df['income'].mean())
df['gender'] = df['gender'].fillna(df['gender'].mode()[0])

# Encode gender and churn (convert to numbers)
le = LabelEncoder()
df['gender'] = le.fit_transform(df['gender'])
df['churn'] = le.fit_transform(df['churn'])

# Step 3: Select features
X = df[['age', 'income', 'purchases', 'gender']]  # Features
y = df['churn']  # Label
selector = SelectKBest(score_func=chi2, k=2)  # Select top 2 features
selector.fit(X, y)

# Get selected features
selected_features = X.columns[selector.get_support()]
print("\nSelected Features:")
print(selected_features)
