示例#1
0
文件: tests.py 项目: esantorella/tva
def test_get_mc1():
    constant = np.random.normal()
    mu_1 = 1
    n = 20
    var_epsilon = 1
    num_classes = 100

    m_c1 = [calculate_va_continuous.get_mc1(construct_class_df(0, 0, n, 0, 0, mu_1, var_epsilon)) \
                                              for i in range(num_classes)]
    
    estimate = np.mean(m_c1)
    se = (np.var(m_c1) / num_classes)**(.5)
    
    assert estimate > mu_1 - 2*se
    assert estimate < mu_1 + 2*se
示例#2
0
文件: tests.py 项目: esantorella/tva
def test_get_mc1_precision():
    var_epsilon = abs(np.random.random())
    std_theta = abs(np.random.random())
    n_classes = 100
    
    errors = []
    precisions = []
    
    for class_ in range(n_classes):
        mu_0 = np.random.random()
        mu_1 = np.random.random()
        n_students = 20
        df = construct_class_df(0, class_, n_students, std_theta, mu_0, mu_1, var_epsilon)
        m_c1 = calculate_va_continuous.get_mc1(df)
        
        errors.append(m_c1 - mu_1)
        precisions.append(calculate_va_continuous.get_mc1_precision(calculate_va_continuous.collapse(df), var_epsilon))
    
    check_calibration(np.array(errors), np.array(precisions))
示例#3
0
文件: tests.py 项目: esantorella/tva
def test_get_mc0_precision():
    std_theta = 1
    var_epsilon = 1   
    n_students = 20
    n_classes = 10
    errors = np.zeros(n_classes)    
    precisions = np.zeros(n_classes)
    
    for class_ in range(n_classes):
        mu_1 = np.random.normal()
        mu_0 =  np.random.normal()

        df = construct_class_df(0, 0, n_students, std_theta, mu_0, mu_1, var_epsilon)
        
        collapsed = calculate_va_continuous.collapse(df)
        collapsed['m_c1'] = calculate_va_continuous.get_mc1(df)
        mc_0 = calculate_va_continuous.get_mc0(collapsed)
        
        errors[class_] = mc_0 - mu_0
        precisions[class_] = calculate_va_continuous.get_mc0_precision(std_theta**2, var_epsilon, df['continuous var'].values)
        
    check_calibration(errors, precisions)