Exemplo n.º 1
0
def test_fit_1():
    """Test PennAIClassifier fit() without setting knowledgebase/kb_metafeatures."""

    pennai = PennAIClassifier(
                            rec_class=RandomRecommender,
                            n_recs=2,
                            n_iters=2,
                            random_state=42,
                            verbose=0
                           )
    pennai.fit(X_train, y_train)
    assert pennai.score(X_test, y_test)
Exemplo n.º 2
0
def test_verbose_0():
    """Test PennAIClassifier fit() with verbose=0."""

    pennai = PennAIClassifier(
                            rec_class=RandomRecommender,
                            n_recs=2,
                            n_iters=2,
                            knowledgebase=classification_kb,
                            kb_metafeatures=classification_metafeatures,
                            random_state=42,
                            verbose=0
                           )
    pennai.fit(X_train, y_train)
    assert pennai.score(X_train, y_train)
Exemplo n.º 3
0
def test_fit_init():
    """Test PennAIClassifier fit_init_() works as expected."""
    pennai = PennAIClassifier(
                            rec_class=RandomRecommender,
                            n_recs=2,
                            n_iters=2,
                            knowledgebase=classification_kb,
                            kb_metafeatures=classification_metafeatures,
                            random_state=42
                           )
    pennai._fit_init()
    assert pennai.scoring_ == "accuracy"
    assert pennai.metric_ == "accuracy"
    assert pennai.n_recs_ == 2
Exemplo n.º 4
0
def test_PennAIClassifier_fit(recommender):
    """Test PennAIClassifier fit() with all Recommenders."""
    print("\nStart fit test for ", recommender.__name__)
    if recommender.__name__ not in ["CoClusteringRecommender"]:
        pennai = PennAIClassifier(
                                rec_class=recommender,
                                n_recs=2,
                                n_iters=2,
                                knowledgebase=classification_kb,
                                kb_metafeatures=classification_metafeatures,
                                random_state=42,
                                verbose=0
                               )
        pennai.fit(X_train, y_train)

        assert pennai.score(X_test, y_test)
Exemplo n.º 5
0
def test_init():
    """Test PennAIClassifier __init__() can assign correct params"""
    pennai = PennAIClassifier(
                            rec_class=RandomRecommender,
                            n_recs=2,
                            n_iters=2,
                            knowledgebase=classification_kb,
                            kb_metafeatures=classification_metafeatures,
                            random_state=42
                           )

    assert pennai.n_recs == 2
    assert pennai.n_iters == 2
    assert pennai.rec_class == RandomRecommender
    assert pennai.knowledgebase == classification_kb
    assert pennai.kb_metafeatures == classification_metafeatures
    assert pennai.random_state == 42
    assert pennai.verbose == 0
    assert pennai.serialized_rec == None
    assert pennai.scoring == None
    assert pennai.config_dict == None
    assert pennai.ensemble == None
    assert pennai.max_time_mins == None
    assert pennai.stopping_criteria == None
    assert pennai.mode == "classification"
    assert pennai.n_jobs == 1
Exemplo n.º 6
0
def test_warm_start(recommender=SVDRecommender):
    """Test PennAIClassifier fit() with warm_start."""
    if recommender.__name__ not in ["AverageRecommender", "RandomRecommender", "CoClusteringRecommender"]:
        serialized_rec_directory = "data/recommenders/scikitlearn"
        serialized_rec_filename = "{}_classifier_accuracy_pmlb.pkl.gz".format(recommender.__name__)
        serialized_rec = path.join(serialized_rec_directory, serialized_rec_filename)
        pennai = PennAIClassifier(
                                rec_class=recommender,
                                n_recs=2,
                                n_iters=2,
                                serialized_rec=serialized_rec,
                                random_state=42,
                                verbose=0
                               )
        pennai.fit(X_train, y_train)

        assert pennai.score(X_train, y_train)
Exemplo n.º 7
0
def test_ensemble():
    """Test PennAIClassifier fit() with ensemble=5."""

    pennai = PennAIClassifier(
                            rec_class=RandomRecommender,
                            n_recs=5,
                            n_iters=2,
                            knowledgebase=classification_kb,
                            kb_metafeatures=classification_metafeatures,
                            ensemble=5,
                            random_state=42,
                            verbose=0
                           )
    pennai.fit(X_train, y_train)

    assert pennai.score(X_train, y_train)
    assert pennai.ensemble
    assert pennai.estimator.__class__ == VotingClassifier
Exemplo n.º 8
0
def test_load_kb():
    """Test PennAIClassifier load_kb can load correct kb."""
    pennai = PennAIClassifier(
                            rec_class=RandomRecommender,
                            n_recs=2,
                            n_iters=2,
                            random_state=42
                           )
    pennai.dataset_mf_cache = pd.DataFrame()
    pennai.kb_ = classification_kb
    pennai.mf_ = classification_metafeatures
    resultsData = pennai._load_kb()
    kb = load_knowledgebase(
                        resultsFiles=[classification_kb],
                        metafeaturesFiles=[classification_metafeatures]
                        )
    all_df_mf = kb['metafeaturesData'].set_index('_id', drop=False)
    df = all_df_mf.loc[kb['resultsData']["classification"]['_id'].unique()]
    assert pennai.dataset_mf_cache.equals(df)
    assert kb['resultsData'][pennai.mode].equals(resultsData)