Skip to content

Commit

Permalink
update the name of the estimator class in all files
Browse files Browse the repository at this point in the history
  • Loading branch information
douglasrizzo committed Jun 27, 2021
1 parent 8818e1e commit c9b4b7f
Show file tree
Hide file tree
Showing 8 changed files with 27 additions and 30 deletions.
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -69,13 +69,13 @@ Install it using `pip install catsim`.
```python
from catsim.initialization import RandomInitializer
from catsim.selection import MaxInfoSelector
from catsim.estimation import HillClimbingEstimator
from catsim.estimation import NumericalSearchEstimator
from catsim.stopping import MaxItemStopper
from catsim.simulation import Simulator
from catsim.cat import generate_item_bank
initializer = RandomInitializer()
selector = MaxInfoSelector()
estimator = HillClimbingEstimator()
estimator = NumericalSearchEstimator()
stopper = MaxItemStopper(20)
Simulator(generate_item_bank(100), 10).simulate(initializer, selector, estimator, stopper)
```
Expand Down
18 changes: 8 additions & 10 deletions catsim/estimation.py
Expand Up @@ -7,7 +7,7 @@
from catsim.simulation import Estimator


class UnimodalIntervalSearchEstimator(Estimator):
class NumericalSearchEstimator(Estimator):
methods = [
"hillclimbing",
"ternary",
Expand All @@ -22,7 +22,7 @@ class UnimodalIntervalSearchEstimator(Estimator):
golden_ratio = (1 + 5**0.5) / 2

def __str__(self):
return "Unimodal Interval Search Estimator ({})".format(self.__search_method)
return "Numerical Search Estimator ({})".format(self.__search_method)

def __init__(
self,
Expand Down Expand Up @@ -56,11 +56,9 @@ def __init__(
format(precision)
)

if method not in UnimodalIntervalSearchEstimator.methods:
if method not in NumericalSearchEstimator.methods:
raise ValueError(
"Parameter 'method' must be one of {}".format(
UnimodalIntervalSearchEstimator.methods
)
"Parameter 'method' must be one of {}".format(NumericalSearchEstimator.methods)
)

self._epsilon = float("1e-" + str(precision))
Expand Down Expand Up @@ -326,8 +324,8 @@ def _solve_fibonacci(self, b, a, response_vector, items, administered_items):
return (b + a) / 2

def _solve_golden_section(self, b, a, response_vector, items, administered_items):
c = b + (a - b) / UnimodalIntervalSearchEstimator.golden_ratio
d = a + (b - a) / UnimodalIntervalSearchEstimator.golden_ratio
c = b + (a - b) / NumericalSearchEstimator.golden_ratio
d = a + (b - a) / NumericalSearchEstimator.golden_ratio

left_side_ll = irt.log_likelihood(c, response_vector, items[administered_items])
right_side_ll = irt.log_likelihood(d, response_vector, items[administered_items])
Expand All @@ -338,14 +336,14 @@ def _solve_golden_section(self, b, a, response_vector, items, administered_items
if left_side_ll >= right_side_ll:
b = d
d = c
c = b + (a - b) / UnimodalIntervalSearchEstimator.golden_ratio
c = b + (a - b) / NumericalSearchEstimator.golden_ratio

right_side_ll = left_side_ll
left_side_ll = irt.log_likelihood(c, response_vector, items[administered_items])
else:
a = c
c = d
d = a + (b - a) / UnimodalIntervalSearchEstimator.golden_ratio
d = a + (b - a) / NumericalSearchEstimator.golden_ratio

left_side_ll = right_side_ll
right_side_ll = irt.log_likelihood(d, response_vector, items[administered_items])
Expand Down
8 changes: 4 additions & 4 deletions catsim/plot.py
Expand Up @@ -195,12 +195,12 @@ def item_exposure(
from catsim import plot
from catsim.initialization import RandomInitializer
from catsim.selection import MaxInfoSelector
from catsim.estimation import HillClimbingEstimator
from catsim.estimation import NumericalSearchEstimator
from catsim.stopping import MaxItemStopper
from catsim.simulation import Simulator
s = Simulator(generate_item_bank(100), 10)
s.simulate(RandomInitializer(), MaxInfoSelector(), HillClimbingEstimator(), MaxItemStopper(20))
s.simulate(RandomInitializer(), MaxInfoSelector(), NumericalSearchEstimator(), MaxItemStopper(20))
plot.item_exposure(title='Exposures', simulator=s, hist=True)
plot.item_exposure(title='Exposures', simulator=s, par='b')
Expand Down Expand Up @@ -302,12 +302,12 @@ def test_progress(
from catsim import plot
from catsim.initialization import RandomInitializer
from catsim.selection import MaxInfoSelector
from catsim.estimation import HillClimbingEstimator
from catsim.estimation import NumericalSearchEstimator
from catsim.stopping import MaxItemStopper
from catsim.simulation import Simulator
s = Simulator(generate_item_bank(100), 10)
s.simulate(RandomInitializer(), MaxInfoSelector(), HillClimbingEstimator(), MaxItemStopper(20))
s.simulate(RandomInitializer(), MaxInfoSelector(), NumericalSearchEstimator(), MaxItemStopper(20))
plot.test_progress(simulator=s, index=0)
plot.test_progress(simulator=s, index=0, info=True, var=True, see=True)
Expand Down
4 changes: 2 additions & 2 deletions catsim/simulation.py
Expand Up @@ -396,13 +396,13 @@ def simulate(
>>> from catsim.initialization import RandomInitializer
>>> from catsim.selection import MaxInfoSelector
>>> from catsim.estimation import HillClimbingEstimator
>>> from catsim.estimation import NumericalSearchEstimator
>>> from catsim.stopping import MaxItemStopper
>>> from catsim.simulation import Simulator
>>> from catsim.cat import generate_item_bank
>>> initializer = RandomInitializer()
>>> selector = MaxInfoSelector()
>>> estimator = HillClimbingEstimator()
>>> estimator = NumericalSearchEstimator()
>>> stopper = MaxItemStopper(20)
>>> Simulator(generate_item_bank(100), 10).simulate(initializer, selector, estimator, stopper)
"""
Expand Down
7 changes: 3 additions & 4 deletions catsim/testing.py
Expand Up @@ -27,7 +27,7 @@ def test_cism():
for test_size in test_sizes:

initializers = [RandomInitializer("uniform", (-5, 5))]
estimators = [UnimodalIntervalSearchEstimator()]
estimators = [NumericalSearchEstimator()]
stoppers = [MaxItemStopper(test_size), MinErrorStopper(0.4)]

for initializer in initializers:
Expand Down Expand Up @@ -68,8 +68,7 @@ def test_simulations():
for logistic_model in logistic_models:
for initializer in [FixedPointInitializer(0)]:
for estimator in [
UnimodalIntervalSearchEstimator(method=m)
for m in UnimodalIntervalSearchEstimator.methods
NumericalSearchEstimator(method=m) for m in NumericalSearchEstimator.methods
]:
for stopper in [MaxItemStopper(test_size)]:
for selector in finite_selectors:
Expand Down Expand Up @@ -129,7 +128,7 @@ def test_plots():

initializer = RandomInitializer()
selector = MaxInfoSelector()
estimator = UnimodalIntervalSearchEstimator()
estimator = NumericalSearchEstimator()
stopper = MaxItemStopper(20)
s = Simulator(generate_item_bank(100), 10)
s.simulate(initializer, selector, estimator, stopper, verbose=True)
Expand Down
2 changes: 1 addition & 1 deletion sphinx/estimation.rst
Expand Up @@ -57,7 +57,7 @@ necessarily) more efficient estimators.
thetas = np.arange(-6.,6.,.1)

for estimator in [
UnimodalIntervalSearchEstimator(method=m) for m in UnimodalIntervalSearchEstimator.methods
NumericalSearchEstimator(method=m) for m in NumericalSearchEstimator.methods
]:
plt.figure()

Expand Down
10 changes: 5 additions & 5 deletions sphinx/examples.rst
Expand Up @@ -149,7 +149,7 @@ create the other objects…
initializer = RandomInitializer()
selector = MaxInfoSelector()
estimator = HillClimbingEstimator()
estimator = NumericalSearchEstimator()
stopper = MaxItemStopper(20)
catsim provides different options for each of the aforementioned types
Expand Down Expand Up @@ -177,7 +177,7 @@ Here we will use an integer.

.. code::
s = Simulator(items, 10, RandomInitializer(), MaxInfoSelector(), HillClimbingEstimator(), MaxItemStopper(50))
s = Simulator(items, 10, RandomInitializer(), MaxInfoSelector(), NumericalSearchEstimator(), MaxItemStopper(50))
Starting the simulation
Expand Down Expand Up @@ -263,7 +263,7 @@ test information to it.
.. code::
examinees = numpy.random.normal(size=10)
s = Simulator(items, examinees, RandomInitializer(), MaxInfoSelector(), HillClimbingEstimator(), MinErrorStopper(.3))
s = Simulator(items, examinees, RandomInitializer(), MaxInfoSelector(), NumericalSearchEstimator(), MinErrorStopper(.3))
s.simulate(verbose=True)
catplot.test_progress(simulator=s,index=0, info=True)
Expand Down Expand Up @@ -297,7 +297,7 @@ them in order to all examinees.
indexes = numpy.random.choice(items.shape[0], 50, replace=False)
print('The following items will be applied to the examinees in this order:', indexes)
s = Simulator(items, 10, RandomInitializer(), LinearSelector(indexes), HillClimbingEstimator(), MaxItemStopper(50))
s = Simulator(items, 10, RandomInitializer(), LinearSelector(indexes), NumericalSearchEstimator(), MaxItemStopper(50))
s.simulate(verbose=True)
Expand Down Expand Up @@ -352,7 +352,7 @@ applied to the examinee.
initializer = RandomInitializer()
selector = MaxInfoSelector()
estimator = HillClimbingEstimator()
estimator = NumericalSearchEstimator()
stopper = MaxItemStopper(20)
This dummy data means that the examinee has answered items 1435, 3221,
Expand Down
4 changes: 2 additions & 2 deletions sphinx/readme_body.md
Expand Up @@ -64,13 +64,13 @@ Install it using `pip install catsim`.
```python
from catsim.initialization import RandomInitializer
from catsim.selection import MaxInfoSelector
from catsim.estimation import HillClimbingEstimator
from catsim.estimation import NumericalSearchEstimator
from catsim.stopping import MaxItemStopper
from catsim.simulation import Simulator
from catsim.cat import generate_item_bank
initializer = RandomInitializer()
selector = MaxInfoSelector()
estimator = HillClimbingEstimator()
estimator = NumericalSearchEstimator()
stopper = MaxItemStopper(20)
Simulator(generate_item_bank(100), 10).simulate(initializer, selector, estimator, stopper)
```
Expand Down

0 comments on commit c9b4b7f

Please sign in to comment.