def test_decision_function_binary(self): from lale.lib.lale import Project train_X, train_y = self._creditG["X"], self._creditG["y"] trainable = Project(columns={"type": "number"}) >> LogisticRegression() trained = trainable.fit(train_X, train_y) _ = trained.decision_function(train_X)
def test_keep_numbers(self): from lale.datasets.data_schemas import to_schema from lale.lib.lale import Project train_X, train_y = self._creditG["X"], self._creditG["y"] trainable = Project(columns={"type": "number"}) trained = trainable.fit(train_X) transformed = trained.transform(train_X) transformed_schema = to_schema(transformed) transformed_expected = { "type": "array", "minItems": 670, "maxItems": 670, "items": { "type": "array", "minItems": 7, "maxItems": 7, "items": [ {"description": "duration", "type": "number"}, {"description": "credit_amount", "type": "number"}, {"description": "installment_commitment", "type": "number"}, {"description": "residence_since", "type": "number"}, {"description": "age", "type": "number"}, {"description": "existing_credits", "type": "number"}, {"description": "num_dependents", "type": "number"}, ], }, } self.maxDiff = None self.assertEqual(transformed_schema, transformed_expected)
def test_keep_non_numbers(self): from lale.datasets.data_schemas import to_schema from lale.lib.lale import Project train_X, train_y = self._creditG['X'], self._creditG['y'] trainable = Project(columns={'not': {'type': 'number'}}) trained = trainable.fit(train_X) transformed = trained.transform(train_X) transformed_schema = to_schema(transformed) transformed_expected = { 'type': 'array', 'minItems': 670, 'maxItems': 670, 'items': { 'type': 'array', 'minItems': 13, 'maxItems': 13, 'items': [ {'description': 'checking_status', 'enum': [ '<0', '0<=X<200', '>=200', 'no checking']}, {'description': 'credit_history', 'enum': [ 'no credits/all paid', 'all paid', 'existing paid', 'delayed previously', 'critical/other existing credit']}, {'description': 'purpose', 'enum': [ 'new car', 'used car', 'furniture/equipment', 'radio/tv', 'domestic appliance', 'repairs', 'education', 'vacation', 'retraining', 'business', 'other']}, {'description': 'savings_status', 'enum': [ '<100', '100<=X<500', '500<=X<1000', '>=1000', 'no known savings']}, {'description': 'employment', 'enum': [ 'unemployed', '<1', '1<=X<4', '4<=X<7', '>=7']}, {'description': 'personal_status', 'enum': [ 'male div/sep', 'female div/dep/mar', 'male single', 'male mar/wid', 'female single']}, {'description': 'other_parties', 'enum': [ 'none', 'co applicant', 'guarantor']}, {'description': 'property_magnitude', 'enum': [ 'real estate', 'life insurance', 'car', 'no known property']}, {'description': 'other_payment_plans', 'enum': [ 'bank', 'stores', 'none']}, {'description': 'housing', 'enum': [ 'rent', 'own', 'for free']}, {'description': 'job', 'enum': [ 'unemp/unskilled non res', 'unskilled resident', 'skilled', 'high qualif/self emp/mgmt']}, {'description': 'own_telephone', 'enum': ['none', 'yes']}, {'description': 'foreign_worker', 'enum': ['yes', 'no']}]}} self.maxDiff = None self.assertEqual(transformed_schema, transformed_expected)
def test_keep_numbers(self): from lale.datasets.data_schemas import to_schema from lale.lib.lale import Project train_X, train_y = self._creditG['X'], self._creditG['y'] trainable = Project(columns={'type': 'number'}) trained = trainable.fit(train_X) transformed = trained.transform(train_X) transformed_schema = to_schema(transformed) transformed_expected = { 'type': 'array', 'minItems': 670, 'maxItems': 670, 'items': { 'type': 'array', 'minItems': 7, 'maxItems': 7, 'items': [{ 'description': 'duration', 'type': 'number' }, { 'description': 'credit_amount', 'type': 'number' }, { 'description': 'installment_commitment', 'type': 'number' }, { 'description': 'residence_since', 'type': 'number' }, { 'description': 'age', 'type': 'number' }, { 'description': 'existing_credits', 'type': 'number' }, { 'description': 'num_dependents', 'type': 'number' }] } } self.maxDiff = None self.assertEqual(transformed_schema, transformed_expected)
def test_keep_non_numbers(self): from lale.datasets.data_schemas import to_schema from lale.lib.lale import Project train_X = self._creditG["X"] trainable = Project(columns={"not": {"type": "number"}}) trained = trainable.fit(train_X) transformed = trained.transform(train_X) transformed_schema = to_schema(transformed) transformed_expected = { "type": "array", "minItems": 670, "maxItems": 670, "items": { "type": "array", "minItems": 13, "maxItems": 13, "items": [ { "description": "checking_status", "enum": ["<0", "0<=X<200", ">=200", "no checking"], }, { "description": "credit_history", "enum": [ "no credits/all paid", "all paid", "existing paid", "delayed previously", "critical/other existing credit", ], }, { "description": "purpose", "enum": [ "new car", "used car", "furniture/equipment", "radio/tv", "domestic appliance", "repairs", "education", "vacation", "retraining", "business", "other", ], }, { "description": "savings_status", "enum": [ "<100", "100<=X<500", "500<=X<1000", ">=1000", "no known savings", ], }, { "description": "employment", "enum": ["unemployed", "<1", "1<=X<4", "4<=X<7", ">=7"], }, { "description": "personal_status", "enum": [ "male div/sep", "female div/dep/mar", "male single", "male mar/wid", "female single", ], }, { "description": "other_parties", "enum": ["none", "co applicant", "guarantor"], }, { "description": "property_magnitude", "enum": [ "real estate", "life insurance", "car", "no known property", ], }, { "description": "other_payment_plans", "enum": ["bank", "stores", "none"], }, { "description": "housing", "enum": ["rent", "own", "for free"] }, { "description": "job", "enum": [ "unemp/unskilled non res", "unskilled resident", "skilled", "high qualif/self emp/mgmt", ], }, { "description": "own_telephone", "enum": ["none", "yes"] }, { "description": "foreign_worker", "enum": ["yes", "no"] }, ], }, } self.maxDiff = None self.assertEqual(transformed_schema, transformed_expected)
def test_decision_function_binary(self): from lale.lib.lale import Project train_X, train_y = self._creditG['X'], self._creditG['y'] trainable = Project(columns={'type': 'number'}) >> LogisticRegression() trained = trainable.fit(train_X, train_y) decisions = trained.decision_function(train_X)