def __init__(self, column_names=None, column_types=None, num_classes=None, multi_label=False, loss=None, metrics=None, name='structured_data_classifier', max_trials=100, directory=None, objective='val_accuracy', seed=None): super().__init__( outputs=head.ClassificationHead(num_classes=num_classes, multi_label=multi_label, loss=loss, metrics=metrics), column_names=column_names, column_types=column_types, max_trials=max_trials, directory=directory, name=name, objective=objective, tuner='structured_data_classifier', seed=seed)
def test_lgbm_classifier(tmp_dir): x_train = np.random.rand(11, 32) y_train = np.array([[1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, 1, 0, 0], [1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0, 0]]) input_node = ak.Input() output_node = input_node output_node = preprocessor.LightGBMBlock()(output_node) output_node = head.ClassificationHead(loss='categorical_crossentropy', metrics=['accuracy'])(output_node) auto_model = ak.GraphAutoModel(input_node, output_node, directory=tmp_dir, max_trials=1) auto_model.fit(x_train, y_train, epochs=1, validation_data=(x_train, y_train)) result = auto_model.predict(x_train) assert result.shape == (11, 10)
def test_two_classes(): y = np.array(['a', 'a', 'a', 'b']) head = head_module.ClassificationHead(name='a') head.fit_transform(y) head.output_shape = (1, ) head.build(kerastuner.HyperParameters(), node_module.Input(shape=(32, )).build()) assert head.loss == 'binary_crossentropy'
def test_partial_column_types(): input_node = node.StructuredDataInput( column_names=common.COLUMN_NAMES_FROM_CSV, column_types=common.PARTIAL_COLUMN_TYPES_FROM_CSV) (x, y), (val_x, val_y) = common.dataframe_numpy() dataset = tf.data.Dataset.zip( ((tf.data.Dataset.from_tensor_slices(x.values.astype(np.unicode)), ), (tf.data.Dataset.from_tensor_slices(y), ))) hm = meta_model.assemble(input_node, head.ClassificationHead(), dataset) for block in hm._blocks: if isinstance(block, preprocessor.FeatureEngineering): assert block.input_node.column_types['fare'] == 'categorical'
def __init__(self, num_classes=None, multi_label=False, loss=None, metrics=None, name='image_classifier', max_trials=100, directory=None, seed=None): super().__init__(outputs=head.ClassificationHead( num_classes=num_classes, multi_label=multi_label, loss=loss, metrics=metrics), max_trials=max_trials, directory=directory, seed=seed)
def __init__(self, num_classes=None, multi_label=False, loss=None, metrics=None, name='text_classifier', max_trials=100, directory=None, objective='val_loss', seed=None): super().__init__( outputs=head.ClassificationHead(num_classes=num_classes, multi_label=multi_label, loss=loss, metrics=metrics), max_trials=max_trials, directory=directory, name=name, objective=objective, tuner='text_classifier', seed=seed)
def __init__(self, num_classes: Optional[int] = None, multi_label: bool = False, loss: Union[str, Callable, None] = None, metrics: Optional[List[Union[str, Callable]]] = None, name: str = 'image_classifier', max_trials: int = 100, directory: Optional[str] = None, objective: str = 'val_loss', overwrite: bool = True, seed: Optional[int] = None): super().__init__( outputs=head.ClassificationHead(num_classes=num_classes, multi_label=multi_label, loss=loss, metrics=metrics), max_trials=max_trials, directory=directory, name=name, objective=objective, tuner='image_classifier', overwrite=overwrite, seed=seed)
def test_y_is_pd_series(): (x, y), (val_x, val_y) = common.dataframe_series() head = head_module.ClassificationHead() head.fit(y) assert isinstance(head.transform(y), tf.data.Dataset)
def test_three_classes(): y = np.array(['a', 'a', 'c', 'b']) head = head_module.ClassificationHead(name='a') head.fit_transform(y) assert head.loss == 'categorical_crossentropy'
def test_one_class(): y = np.array(['a', 'a', 'a']) head = head_module.ClassificationHead(name='a') with pytest.raises(ValueError) as info: head.fit_transform(y) assert 'Expect the target data' in str(info.value)
def test_unsupported_types(): y = 1 head = head_module.ClassificationHead(name='a') with pytest.raises(TypeError) as info: head.fit_transform(y) assert 'Expect the target data' in str(info.value)