def METHOD_NAME(df_iris_1e5, prediction_type):
    df = df_iris_1e5
    # Convert to a binary problem
    df['target'] = (df['class_'] == 2).astype('int')
    df_train, df_test = df.ml.train_test_split(test_size=0.1, verbose=False)
    features = df_train.column_names[:4]
    target = 'target'
    river_model = RiverModel(model=LogisticRegression(),
                             features=features,
                             target=target,
                             batch_size=50_000,
                             num_epochs=3,
                             shuffle=True,
                             prediction_name='pred',
                             prediction_type=prediction_type)
    river_model.fit(df=df_train)
    df_train = river_model.transform(df_train)
    # State transfer
    state = df_train.state_get()
    df_test.state_set(state)
    assert df_train.column_count() == df_test.column_count()
    if prediction_type == 'predict':
        assert df_test.pred.values.shape == (10050,)
    else:
        assert df_test.pred.values.shape == (10050, 2)
    pred_in_memory = river_model.predict(df_test)
    np.testing.assert_array_almost_equal(pred_in_memory, df_test.pred.values, decimal=1)