Releases: quatrope/scikit-criteria
0.8.7
Version 0.8.7
-
New Added functionality for user extension of scikit-criteria with
decorators for creating aggregation and transformation models using
functions.>>> from skcriteria.extend import mkagg, mktransformer >>> >>> @mkagg >>> def MyAgg(**kwargs): >>> # Implementation of the aggregation function >>> >>> @mkagg(foo=1) >>> def MyAggWithHyperparam(**kwargs): >>> # Implementation of the aggregation function with >>> # hyperparameter 'foo' >>> >>> @mktransformer >>> def MyTransformer(**kwargs): >>> # Implementation of the transformation function >>> >>> @mktransformer(bar=2) >>> def MyTransformerWithHyperparam(**kwargs): >>> # Implementation of the transformation function with >>> # hyperparameter 'bar'
These decorators enable the creation of aggregation and transformation
classes based on provided functions, allowing users to
define decision-making models with less flexibility than traditional
inheritance-based models.For more information check the tutorial Extending Aggregation and Transformation Functions
-
New Module: Introduced the
skcriteria.testing
module, exposing utility functions for for comparing objects created in Scikit-Criteria in a testing environment. These functions facilitate the comparison of instances of theDecisionMatrix
,ResultABC
, andRanksComparator
classes.The assertion functions utilize pandas and numpy testing utilities for comparing matrices, series, and other attributes.
Check the Reference for more information.
-
New The API of the agg, pipeline, preprocessing, and extend modules has
been cleaned up to prevent autocompletion with imports from other modules.
The imported modules are still present, but they are excluded when attempting
to autocomplete. This functionality is achieved thanks to the context manager
skcriteria.utils.cmanagers.hidden()
. -
New All methods (agg and transformers) has a new
get_method_name
instance method. -
Drop Drop support for Python 3.8
0.8.7.dev1
Version 0.8.7.dev1
-
New Added functionality for user extension of scikit-criteria with
decorators for creating aggregation and transformation models using
functions.>>> from skcriteria.extend import mkagg, mktransformer >>> >>> @mkagg >>> def MyAgg(**kwargs): >>> # Implementation of the aggregation function >>> >>> @mkagg(foo=1) >>> def MyAggWithHyperparam(**kwargs): >>> # Implementation of the aggregation function with >>> # hyperparameter 'foo' >>> >>> @mktransformer >>> def MyTransformer(**kwargs): >>> # Implementation of the transformation function >>> >>> @mktransformer(bar=2) >>> def MyTransformerWithHyperparam(**kwargs): >>> # Implementation of the transformation function with >>> # hyperparameter 'bar'
These decorators enable the creation of aggregation and transformation
classes based on provided functions, allowing users to
define decision-making models with less flexibility than traditional
inheritance-based models.For more information check the tutorial Extending Aggregation and Transformation Functions
-
New Module: Introduced the
skcriteria.testing
module, exposing utility functions for for comparing objects created in Scikit-Criteria in a testing environment. These functions facilitate the comparison of instances of theDecisionMatrix
,ResultABC
, andRanksComparator
classes.The assertion functions utilize pandas and numpy testing utilities for comparing matrices, series, and other attributes.
Check the Reference for more information.
-
New The API of the agg, pipeline, preprocessing, and extend modules has
been cleaned up to prevent autocompletion with imports from other modules.
The imported modules are still present, but they are excluded when attempting
to autocomplete. This functionality is achieved thanks to the context manager
skcriteria.utils.cmanagers.hidden()
. -
New All methods (agg and transformers) has a new
get_method_name
instance method. -
Drop Drop support for Python 3.8
0.8.7.dev0
Version 0.8.7.dev0
-
New Added functionality for user extension of scikit-criteria with
decorators for creating aggregation and transformation models using
functions.>>> from skcriteria.extend import mkagg, mktransformer >>> >>> @mkagg >>> def MyAgg(**kwargs): >>> # Implementation of the aggregation function >>> >>> @mkagg(foo=1) >>> def MyAggWithHyperparam(**kwargs): >>> # Implementation of the aggregation function with >>> # hyperparameter 'foo' >>> >>> @mktransformer >>> def MyTransformer(**kwargs): >>> # Implementation of the transformation function >>> >>> @mktransformer(bar=2) >>> def MyTransformerWithHyperparam(**kwargs): >>> # Implementation of the transformation function with >>> # hyperparameter 'bar'
These decorators enable the creation of aggregation and transformation
classes based on provided functions, allowing users to
define decision-making models with less flexibility than traditional
inheritance-based models.For more information check the tutorial Extending Aggregation and Transformation Functions
-
New Module: Introduced the
skcriteria.testing
module, exposing utility functions for for comparing objects created in Scikit-Criteria in a testing environment. These functions facilitate the comparison of instances of theDecisionMatrix
,ResultABC
, andRanksComparator
classes.The assertion functions utilize pandas and numpy testing utilities for comparing matrices, series, and other attributes.
Check the Reference for more information.
-
New The API of the agg, pipeline, preprocessing, and extend modules has
been cleaned up to prevent autocompletion with imports from other modules.
The imported modules are still present, but they are excluded when attempting
to autocomplete. This functionality is achieved thanks to the context manager
skcriteria.utils.cmanagers.hidden()
. -
New All methods (agg and transformers) has a new
get_method_name
instance method. -
Drop Drop support for Python 3.8
0.8.6
Version 0.8.6
-
New Rank reversal 1 implementhed in the
RankInvariantChecker
class>>> import skcriteria as skc >>> from skcriteria.cmp import RankInvariantChecker >>> from skcriteria.agg.similarity import TOPSIS >>> dm = skc.datasets.load_van2021evaluation() >>> rrt1 = RankInvariantChecker(TOPSIS()) >>> rrt1.evaluate(dm) <RanksComparator [ranks=['Original', 'M.ETH', 'M.LTC', 'M.XLM', 'M.BNB', 'M.ADA', 'M.LINK', 'M.XRP', 'M.DOGE']]>
-
New The module
skcriteria.madm
was deprecated in favor
ofskcriteria.agg
-
Add support for Python 3.11.
-
Removed Python 3.7. Google collab now work with 3.8.
-
Updated Scikit-Learn to 1.3.x.
-
Now all cached methods and properties are stored inside the instance.
Previously this was stored inside the class generating a memoryleak.
0.8.5
Version 0.8.5
-
New Rank reversal 1 implementhed in the
RankInvariantChecker
class>>> import skcriteria as skc >>> from skcriteria.cmp import RankInvariantChecker >>> from skcriteria.agg.similarity import TOPSIS >>> dm = skc.datasets.load_van2021evaluation() >>> rrt1 = RankInvariantChecker(TOPSIS()) >>> rrt1.evaluate(dm) <RanksComparator [ranks=['Original', 'M.ETH', 'M.LTC', 'M.XLM', 'M.BNB', 'M.ADA', 'M.LINK', 'M.XRP', 'M.DOGE']]>
-
New The module
skcriteria.madm
was deprecated in favor
ofskcriteria.agg
-
Add support for Python 3.11.
-
Removed Python 3.7. Google collab now work with 3.8.
-
Updated Scikit-Learn to 1.3.x.
-
Now all cached methods and properties are stored inside the instance.
Previously this was stored inside the class generating a memoryleak.
0.8.3
0.8.2
0.8.2.dev0
changelog
0.8.1
0.8
Version 0.8
-
New The
skcriteria.cmp
package utilities to compare rankings. -
New The new package
skcriteria.datasets
include two datasets (one a
toy and one real) to quickly start your experiments. -
New DecisionMatrix now can be sliced with a syntax similar of the
pandas.DataFrame.-
dm["c0"]
cut the$c0$ criteria. -
dm[["c0", "c2"]
cut the criteria$c0$ and$c2$ . -
dm.loc["a0"]
cut the alternative$a0$ . -
dm.loc[["a0", "a1"]]
cut the alternatives$a0$ and$a1$ . -
dm.iloc[0:3]
cuts from the first to the third alternative.
-
-
New imputation methods for replacing missing data with substituted
values. These methods are in the moduleskcriteria.preprocessing.impute
. -
New results object now has a
to_series
method. -
Changed Behaviour: The ranks and kernels
equals
are now called
values_equals
. The newaequals
support tolerances to compare
numpy arrays internally stored inextra_
, and theequals
method is
equivalent toaequals(rtol=0, atol=0)
. -
We detected a bad behavior in ELECTRE2, so we decided to launch a
FutureWarning
when the
class is instantiated. In the version after 0.8, a new implementation of ELECTRE2 will be
provided. -
Multiple
__repr__
was improved to folow the
Python recomendation -
Critic
weighter was renamed toCRITIC
(all capitals) to be consistent
with the literature. The old class is still there but is deprecated. -
All the functions and classes of
skcriteria.preprocessing.distance
was
moved toskcriteria.preprocessing.scalers
. -
The
StdWeighter
now uses the sample standar-deviation.
From the numerical point of view, this does not generate any change,
since the deviations are scaled by the sum. Computationally speaking there
may be some difference from the ~5th decimal digit onwards. -
Two method of the
Objective
enum was deprecated and replaced:-
Objective.construct_from_alias()
->
Objective.from_alias()
(classmethod) -
Objective.to_string()
->
Objective.to_symbol()'
The deprecated methods will be removed in version 1.0.
-
-
Add a dominance plot
DecisionMatrix.plot.dominance()
. -
WeightedSumModel
raises aValueError
when some value$< 0$ . -
Moved internal modules
-
skcriteria.core.methods.SKCTransformerABC
->
skcriteria.preprocessing.SKCTransformerABC
-
skcriteria.core.methods.SKCMatrixAndWeightTransformerABC
->
skcriteria.preprocessing.SKCMatrixAndWeightTransformerABC
-