from sklearn.neural_network import MLPClassifier
from sklearn.preprocessing import StandardScaler
import numpy as np
# 1. Data XOR (Kasus yang tidak bisa dipecahkan Linear Regression)
# (0,0)->0, (1,1)->0, (1,0)->1, (0,1)->1
X = [[0, 0], [1, 1], [1, 0], [0, 1]]
y = [0, 0, 1, 1]
# 2. MLP Butuh Skala yang Sama (StandardScaler itu Sunnah Muakkad di sini)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
# 3. Model
# hidden_layer_sizes=(4, 2) artinya ada 2 hidden layer, layer 1 isi 4 neuron, layer 2 isi 2 neuron.
# max_iter=1000 : Jatah belajar (epoch)
clf = MLPClassifier(hidden_layer_sizes=(4, 2), activation='relu', solver='adam', max_iter=1000, random_state=1)
# 4. Training
clf.fit(X_scaled, y)
# 5. Prediksi
print("Prediksi [0, 1]:", clf.predict([[0, 1]])) # Harusnya 1