FRsūtil̲s
A fuzzy-rough reasoning utilities library
 
Loading...
Searching...
No Matches
approximations.py
Go to the documentation of this file.
1# frutil/approximations.py
2"""
3Module containing base classes for fuzzy-rough approximations.
4"""
5from abc import ABC, abstractmethod
6import numpy as np
7
8class FuzzyRoughModel(ABC):
9 """Abstract base class for fuzzy-rough models."""
10 def __init__(self, similarity_matrix: np.ndarray, labels: np.ndarray):
11 if not ((0.0 <= similarity_matrix).all() and (similarity_matrix <= 1.0).all()):
12 raise ValueError("All similarity values must be in the range [0.0, 1.0].")
13 self.similarity_matrix = similarity_matrix
14 self.labels = labels
15
16 @abstractmethod
18 pass
19
20 @abstractmethod
22 pass
23
24 def boundary_region(self):
25 return self.upper_approximation() - self.lower_approximation()
26
27 def positive_region(self):
28 return self.lower_approximation()
__init__(self, np.ndarray similarity_matrix, np.ndarray labels)