|
7 | 7 | ClusterBasedNormalizer, |
8 | 8 | FloatFormatter, |
9 | 9 | GaussianNormalizer, |
| 10 | + LogitScaler, |
10 | 11 | ) |
11 | 12 |
|
12 | 13 |
|
@@ -560,3 +561,59 @@ def test_out_of_bounds_reverse_transform(self): |
560 | 561 |
|
561 | 562 | # Assert |
562 | 563 | assert isinstance(reverse, pd.DataFrame) |
| 564 | + |
| 565 | + |
| 566 | +class TestLogitScaler: |
| 567 | + def test_learn_rounding(self): |
| 568 | + """Test that transformer learns rounding scheme from data.""" |
| 569 | + # Setup |
| 570 | + data = pd.DataFrame({'test': [0.2, np.nan, 1.0]}) |
| 571 | + transformer = LogitScaler( |
| 572 | + missing_value_generation=None, |
| 573 | + missing_value_replacement='mean', |
| 574 | + learn_rounding_scheme=True, |
| 575 | + ) |
| 576 | + expected = pd.DataFrame({'test': [0.2, 0.6, 1.0]}) |
| 577 | + |
| 578 | + # Run |
| 579 | + transformer.fit(data, 'test') |
| 580 | + transformed = transformer.transform(data) |
| 581 | + reversed_values = transformer.reverse_transform(transformed) |
| 582 | + |
| 583 | + # Assert |
| 584 | + np.testing.assert_array_equal(reversed_values, expected) |
| 585 | + |
| 586 | + def test_missing_value_generation_from_column(self): |
| 587 | + """Test from_column missing value generation with nans.""" |
| 588 | + # Setup |
| 589 | + data = pd.DataFrame({'test': [0.2, np.nan, 1.0]}) |
| 590 | + transformer = LogitScaler( |
| 591 | + missing_value_generation='from_column', |
| 592 | + missing_value_replacement='mean', |
| 593 | + ) |
| 594 | + |
| 595 | + # Run |
| 596 | + transformer.fit(data, 'test') |
| 597 | + transformed = transformer.transform(data) |
| 598 | + reversed_values = transformer.reverse_transform(transformed) |
| 599 | + |
| 600 | + # Assert |
| 601 | + np.testing.assert_array_almost_equal(reversed_values, data) |
| 602 | + |
| 603 | + def test_missing_value_generation_random(self): |
| 604 | + """Test random missing_value_generation with nans.""" |
| 605 | + # Setup |
| 606 | + data = pd.DataFrame({'test': [0.2, np.nan, 1.0, 1.0]}) |
| 607 | + transformer = LogitScaler( |
| 608 | + missing_value_generation='random', |
| 609 | + missing_value_replacement='mode', |
| 610 | + ) |
| 611 | + expected = pd.DataFrame({'test': [0.2, np.nan, 1.0, np.nan]}) |
| 612 | + |
| 613 | + # Run |
| 614 | + transformer.fit(data, 'test') |
| 615 | + transformed = transformer.transform(data) |
| 616 | + reversed_values = transformer.reverse_transform(transformed) |
| 617 | + |
| 618 | + # Assert |
| 619 | + np.testing.assert_array_almost_equal(reversed_values, expected) |
0 commit comments