@File : _descriptor_strategies.py
@Time : 2024/06/07 14:29:09
@Author : Alejandro Marrero
@Version : 1.0
@Contact : amarrerd@ull.edu.es
@License : (C)Copyright 2024, Alejandro Marrero
@Desc : Descriptors Strategies for Instance Generation
__property_strategy(attr)
Returns a np.ndarray with the information required of the instances
| Parameters: |
-
iterable
(Iterable[Instance])
–
|
| Returns: |
-
–
np.ndarray: Array of the feature descriptors of each instance
|
Source code in digneapy/_core/descriptors.py
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 | def __property_strategy(attr: str):
"""Returns a np.ndarray with the information required of the instances
Args:
iterable (Iterable[Instance]): Instances to describe
Returns:
np.ndarray: Array of the feature descriptors of each instance
"""
try:
if attr not in ("features", "transformed"):
raise AttributeError()
except AttributeError:
raise ValueError(
f"Object of class Instance does not have a property named {attr}"
)
def strategy(iterable: Iterable[Instance]) -> np.ndarray:
return np.asarray([getattr(i, attr) for i in iterable])
return strategy
|
descriptor(key, verbose=False)
Decorator to create new descriptor strategies
| Parameters: |
-
key
(str)
–
Key to refer the descriptor-function
-
verbose
(bool, default:
False
)
–
Prints a message when the function is registered. Defaults to False.
|
Source code in digneapy/_core/descriptors.py
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 | def descriptor(key: str, verbose: bool = False):
"""Decorator to create new descriptor strategies
Args:
key (str): Key to refer the descriptor-function
verbose (bool, optional): Prints a message when the function is registered. Defaults to False.
"""
def decorate(func: DescStrategy):
if verbose:
print(f"Registering descriptor function: {func.__name__} with key: {key}")
DESCRIPTORS[key] = func
return func
return decorate
|
instance_strategy(iterable)
It returns the instance information as its descriptor
| Parameters: |
-
iterable
(Iterable[Instance])
–
|
| Returns: |
-
ndarray
–
np.ndarray: Array of descriptor instance (whole instace data)
|
Source code in digneapy/_core/descriptors.py
91
92
93
94
95
96
97
98
99
100 | def instance_strategy(iterable: Iterable[Instance]) -> np.ndarray:
"""It returns the instance information as its descriptor
Args:
iterable (Iterable[Instance]): Instances to describe
Returns:
np.ndarray: Array of descriptor instance (whole instace data)
"""
return np.asarray([*iterable])
|
It generates the performance descriptor of an instance
based on the scores of the solvers in the portfolio over such instance
| Parameters: |
-
iterable
(Iterable[Instance])
–
|
| Returns: |
-
ndarray
–
np.ndarray: Array of performance descriptors of each instance
|
Source code in digneapy/_core/descriptors.py
77
78
79
80
81
82
83
84
85
86
87
88 | def performance_strategy(performances: np.ndarray) -> np.ndarray:
"""It generates the performance descriptor of an instance
based on the scores of the solvers in the portfolio over such instance
Args:
iterable (Iterable[Instance]): Instances to describe
Returns:
np.ndarray: Array of performance descriptors of each instance
"""
print(performances)
return np.mean(performances, axis=1)
|