Ejemplo n.º 1
0
def test_random_oversample():
    # float 
    X_new, y_new = resreg.random_oversample(X, y, relevance=relevance, 
                                             relevance_threshold=0.5, over=0.75, 
                                             random_state=0)
    assert round(np.sum(y_new), 3) == 4.971
    
    # balance
    X_new, y_new = resreg.random_oversample(X, y, relevance=relevance, 
                                             relevance_threshold=0.5, over='balance', 
                                             random_state=0)
    assert round(np.sum(y_new), 3) == 5.090
    
    # extreme
    X_new, y_new = resreg.random_oversample(X, y, relevance=relevance, 
                                             relevance_threshold=0.5, over='extreme', 
                                             random_state=0)
    assert round(np.sum(y_new), 3) == -49.722
    
    # average
    X_new, y_new = resreg.random_oversample(X, y, relevance=relevance, 
                                             relevance_threshold=0.5, over='average', 
                                             random_state=0)
    assert round(np.sum(y_new), 3) == -41.166
    
    # errors
    with pytest.raises(Exception):
        X_new, y_new = resreg.random_oversample(X, y, relevance=relevance, 
                                                 relevance_threshold=0.5, over=2)
Ejemplo n.º 2
0
                                                            bin_test_size=70,
                                                            verbose=False,
                                                            random_state=rrr)
    X_train, y_train = X[train_indices, :], y[train_indices]
    X_test, y_test = X[test_indices, :], y[test_indices]

    # Unpack hyperparameters, resample training data, and fit regressors
    reg = DecisionTreeRegressor(random_state=rrr) if 'REBAGG' in strategy else \
              RandomForestRegressor(n_estimators=10, n_jobs=-1, random_state=rrr)

    if strategy == 'RO':
        cl, ch, sample_method = param
        relevance = resreg.sigmoid_relevance(y_train, cl=cl, ch=ch)
        X_train, y_train = resreg.random_oversample(X_train,
                                                    y_train,
                                                    relevance,
                                                    relevance_threshold=0.5,
                                                    over=sample_method,
                                                    random_state=rrr)
        reg.fit(X_train, y_train)

    elif strategy == 'SMOTER':
        cl, ch, sample_method, k = param
        relevance = resreg.sigmoid_relevance(y_train, cl=cl, ch=ch)
        X_train, y_train = resreg.smoter(X_train,
                                         y_train,
                                         relevance,
                                         relevance_threshold=0.5,
                                         k=k,
                                         over=sample_method,
                                         random_state=rrr)
        reg.fit(X_train, y_train)
Ejemplo n.º 3
0
                                                            random_state=0)
    X_train, y_train = X[train_indices, :], y[train_indices]

    if strategy == 'None':
        sns.kdeplot(y_train,
                    bw=7,
                    linewidth=lw,
                    linestyle=style1,
                    color='black',
                    label='TOME')

    elif strategy == 'RO':
        relevance = resreg.sigmoid_relevance(y_train, cl=None, ch=60)
        X_train, y_train = resreg.random_oversample(X_train,
                                                    y_train,
                                                    relevance=relevance,
                                                    relevance_threshold=0.5,
                                                    over='balance',
                                                    random_state=0)
        sns.kdeplot(y_train,
                    bw=7,
                    linewidth=lw,
                    label=strategy,
                    color='blue',
                    linestyle=style2)

    elif strategy == 'SMOTER':
        relevance = resreg.sigmoid_relevance(y_train, cl=None, ch=60)
        X_train, y_train = resreg.smoter(X_train,
                                         y_train,
                                         relevance=relevance,
                                         relevance_threshold=0.5,