def test_set_feature_union_steps(): mult2 = Mult(2) mult2.get_feature_names = lambda: ['x2'] mult3 = Mult(3) mult3.get_feature_names = lambda: ['x3'] mult5 = Mult(5) mult5.get_feature_names = lambda: ['x5'] ft = FeatureUnion([('m2', mult2), ('m3', mult3)]) assert_array_equal([[2, 3]], ft.transform(np.asarray([[1]]))) assert_equal(['m2__x2', 'm3__x3'], ft.get_feature_names()) # Directly setting attr ft.transformer_list = [('m5', mult5)] assert_array_equal([[5]], ft.transform(np.asarray([[1]]))) assert_equal(['m5__x5'], ft.get_feature_names()) # Using set_params ft.set_params(transformer_list=[('mock', mult3)]) assert_array_equal([[3]], ft.transform(np.asarray([[1]]))) assert_equal(['mock__x3'], ft.get_feature_names()) # Using set_params to replace single step ft.set_params(mock=mult5) assert_array_equal([[5]], ft.transform(np.asarray([[1]]))) assert_equal(['mock__x5'], ft.get_feature_names())
def test_set_feature_union_steps(): mult2 = Mult(2) mult2.get_feature_names = lambda: ["x2"] mult3 = Mult(3) mult3.get_feature_names = lambda: ["x3"] mult5 = Mult(5) mult5.get_feature_names = lambda: ["x5"] ft = FeatureUnion([("m2", mult2), ("m3", mult3)]) assert_array_equal([[2, 3]], ft.transform(np.asarray([[1]]))) assert_equal(["m2__x2", "m3__x3"], ft.get_feature_names()) # Directly setting attr ft.transformer_list = [("m5", mult5)] assert_array_equal([[5]], ft.transform(np.asarray([[1]]))) assert_equal(["m5__x5"], ft.get_feature_names()) # Using set_params ft.set_params(transformer_list=[("mock", mult3)]) assert_array_equal([[3]], ft.transform(np.asarray([[1]]))) assert_equal(["mock__x3"], ft.get_feature_names()) # Using set_params to replace single step ft.set_params(mock=mult5) assert_array_equal([[5]], ft.transform(np.asarray([[1]]))) assert_equal(["mock__x5"], ft.get_feature_names())
def test_set_feature_union_steps(get_names): mult2 = Mult(2) mult3 = Mult(3) mult5 = Mult(5) if get_names == "get_feature_names": mult3.get_feature_names = lambda: ["x3"] mult2.get_feature_names = lambda: ["x2"] mult5.get_feature_names = lambda: ["x5"] else: # get_feature_names_out mult3.get_feature_names_out = lambda input_features: ["x3"] mult2.get_feature_names_out = lambda input_features: ["x2"] mult5.get_feature_names_out = lambda input_features: ["x5"] ft = FeatureUnion([("m2", mult2), ("m3", mult3)]) assert_array_equal([[2, 3]], ft.transform(np.asarray([[1]]))) assert_array_equal(["m2__x2", "m3__x3"], getattr(ft, get_names)()) # Directly setting attr ft.transformer_list = [("m5", mult5)] assert_array_equal([[5]], ft.transform(np.asarray([[1]]))) assert_array_equal(["m5__x5"], getattr(ft, get_names)()) # Using set_params ft.set_params(transformer_list=[("mock", mult3)]) assert_array_equal([[3]], ft.transform(np.asarray([[1]]))) assert_array_equal(["mock__x3"], getattr(ft, get_names)()) # Using set_params to replace single step ft.set_params(mock=mult5) assert_array_equal([[5]], ft.transform(np.asarray([[1]]))) assert_array_equal(["mock__x5"], getattr(ft, get_names)())