def METHOD_NAME(iris_clean) -> Tuple[Dataset, Dataset, AdaBoostClassifier]:
    """Return Iris train and val datasets and trained AdaBoostClassifier model."""
    train, test = train_test_split(iris_clean.frame, test_size=0.33, random_state=42)
    train_ds = Dataset(train[['sepal length (cm)', 'target']], label='target')
    test_ds = Dataset(test[['sepal length (cm)', 'target']], label='target')
    clf = Pipeline([('bin', KBinsDiscretizer()),
                    ('clf', AdaBoostClassifier(random_state=0))])
    clf.fit(train_ds.features_columns, train_ds.label_col)
    return train_ds, test_ds, clf