import time
import autokeras as ak
from sklearn.datasets import load_iris, load_breast_cancer, load_digits, load_wine, fetch_covtype, fetch_california_housing, load_diabetes
from sklearn.model_selection import train_test_split
from keras.datasets import mnist

data_list = [load_iris, load_breast_cancer, load_digits, load_wine, fetch_covtype, fetch_california_housing, load_diabetes]

# 1. 데이터
for i in range(len(data_list)):
    x, y = data_list[i](return_X_y=True)
    x_train, x_test, y_train, y_test = train_test_split(x, y, train_size=0.8, shuffle=True, random_state=123)

    # 2. 모델
    if i < 5:
        model = ak.StructuredDataClassifier(overwrite=False,max_trials=2)
    else:
        model = ak.StructuredDataRegressor(overwrite=False,max_trials=2)

    # 3. 컴파일, 훈련
    model.fit(x_train, y_train, epochs=1, validation_split=0.15)

    # 4. 평가, 예측
    results = model.evaluate(x_test, y_test)
    print(data_list[i].__name__, 'results : ', results[1])
    # best_model = model.export_model()
    # path = './_save/autokeras/'
    # best_model.save(path + f'{data_list[i].__name__}_keras63_autokeras.h5')