bootphon / pygamma-agreement

Gamma Agreement in Python
MIT License
40 stars 8 forks source link

TypeError: __init__() got multiple values for argument 'alpha' when using the Example.ipynb #32

Closed michaelvauth closed 2 years ago

michaelvauth commented 2 years ago

OS: Windows10 Python Version: 3.9

The line CombinedCategoricalDissimilarity(continuum.categories, alpha=3, beta=1, delta_empty=1.0) in the last cell of the Example.ipynb throws the error: TypeError: __init__() got multiple values for argument 'alpha' I assume because continuum.categories as a positional argument gets overwritten by the keyword argument alpha=3.

hadware commented 2 years ago

Thanks for the issue!

I assume because continuum.categories as a positional argument gets overwritten by the keyword argument alpha=3.

Yes, you got half of the answer. If you want to use a "custom" categorical dissimilarity in your Combined Dissimilarity, you'll have to pass it as an argument. This is what you ought to do:

cat_dissim = CategoricalDissimilarity(contiuum.categories, delta_empty=1)
combined_dissim = CombinedCategoricalDissimilarity(alpha=3, beta=1, delta_empty=1.0, cat_dissim=cat_dissim)

If you got this example from the doc, please do tell me where so I can correct that.

michaelvauth commented 2 years ago

You'll find the example here: https://github.com/bootphon/pygamma-agreement/blob/master/notebooks/Example.ipynb In the last Notebook cell:

for file in files:
    start_time = time()
    continuum = Continuum.from_csv(file)
    dissimilarity = CombinedCategoricalDissimilarity(continuum.categories, alpha=3, beta=1, delta_empty=1.0)
    gamma_results = continuum.compute_gamma(dissimilarity,
                                            n_samples=30,
                                            precision_level=0.01)

If I change it to

for file in files:
    start_time = time()
    continuum = Continuum.from_csv(file)
    cat_dissim = CategoricalDissimilarity(contiuum.categories, delta_empty=1)
    dissimilarity = CombinedCategoricalDissimilarity(alpha=3, beta=1, delta_empty=1.0, cat_dissim=cat_dissim)
    gamma_results = continuum.compute_gamma(dissimilarity,
                                            n_samples=30,
                                            precision_level=0.01)

cat_dissim = CategoricalDissimilarity(contiuum.categories, delta_empty=1) throws the error: TypeError: Can't instantiate abstract class CategoricalDissimilarity with abstract methods compile_d_mat, d