示例#1
0
def test_fit_with_constraints():
    p = Normal()
    X = st.norm(loc=0.05, scale=1.0).rvs(5000, random_state=0).reshape(-1, 1)
    p.fit(X,
          constraints=[{
              "param": p.mu,
              "type": "ineq",
              "fun": lambda mu: mu
          }, {
              "param": p.mu,
              "type": "ineq",
              "fun": lambda mu: 0.1 - mu
          }, {
              "param": p.sigma,
              "type": "ineq",
              "fun": lambda sigma: sigma
          }, {
              "param": (p.mu, p.sigma),
              "type": "ineq",
              "fun": lambda mu, sigma: mu * sigma
          }])

    assert p.mu.get_value() >= 0.0
    assert p.mu.get_value() <= 0.1
    assert p.sigma.get_value() >= 0.0
    assert p.mu.get_value() * p.sigma.get_value() >= 0.0
示例#2
0
def check_fit(mu, sigma):
    p = Normal()
    X = st.norm(loc=mu, scale=sigma).rvs(5000, random_state=0).reshape(-1, 1)
    s0 = p.score(X)
    p.fit(X)
    assert np.abs(p.mu.get_value() - mu) <= 0.1
    assert np.abs(p.sigma.get_value() - sigma) <= 0.1
    assert p.score(X) >= s0
示例#3
0
def test_fit_with_bounds():
    p = Normal()
    X = st.norm(loc=0.05, scale=1.0).rvs(5000, random_state=0).reshape(-1, 1)
    p.fit(X, bounds=[{"param": p.sigma, "bounds": (0, None)}])
    assert p.sigma.get_value() >= 0.0