コード例 #1
0
ファイル: base.py プロジェクト: Salomelette/REDS-1

if __name__ == "__main__":

    dataset = Dataset(drop_weight=True)
    higgs_df = dataset.get_df()
    Xtrain, Xtest, ytrain, ytest = dataset.split_train_test(fill_nan=True)
    weight_train, weight_test = dataset.get_weight_train_test()

    eval_ = Evaluation()

    #### Tests de nos différents modèles de bases  ####

    #random
    ypred = pure_random_model(Xtest)
    eval_.affichage_score("Random", ytest, ypred, weights=weight_test)

    #sratified
    stratified = Stratified()
    stratified.fit(Xtrain, ytrain)
    ypred = stratified.predict(Xtest, ytest)
    eval_.affichage_score("Stratified", ytest, ypred, weights=weight_test)

    #frequency
    frequency = Frequency()
    frequency.fit(Xtrain, ytrain)
    ypred = frequency.predict(Xtest, ytest)
    eval_.affichage_score("Frequency", ytest, ypred, weights=weight_test)
    """
    # Classifieur faible : Arbre de décision de profondeur 1 Weight = True
コード例 #2
0

    print(" ------------ ENTRAINEMENT RESEAU DE NEURONES ---------------")
    for ep in range(n_epoch):
        print("EPOCHS : ",ep)
        for i, (x, y) in enumerate(train_loader):
            model.train()
            y = y#.float()
            x = x#.double()
            
            pred = model(x)#.double()
            print(pred)
            loss = criterion(pred, y)
            # print('loss', loss ," Prédiction : ", pred, "y True : ",y)
            writer.add_scalar('Loss/train', loss, ep)
            loss.backward()
            optimizer.step()
            optimizer.zero_grad()
            
        for i,(x,y) in enumerate(test_loader):
            with torch.no_grad():
                model.eval()
                pred = model(x)
                loss = criterion(pred,y)
                # print('loss', loss ," Prédiction : ", pred, "y True : ",y)
                writer.add_scalar('Loss/validation', loss, ep)


    ypred = dataset_train.get_prediction(ynn)
    eval_.affichage_score("Neural Network ",ytest,ypred,weights=weight_test)
コード例 #3
0
import random,string,math,csv
import numpy as np
import pandas as pd
import sys
sys.path.insert(0, '/Users/ykarmim/Documents/Cours/Master/M2/REDS/src') # Mettre le path vers src sinon l'import fail.

from dataset import Dataset
from evaluation import Evaluation

from xgboost import XGBClassifier

if __name__ == "__main__":
    dataset = Dataset(drop_weight=True)
    higgs_df = dataset.get_df()
    Xtrain,Xtest, ytrain,ytest = dataset.split_train_test(fill_nan=False) # XgBoost prend en compte les valeurs NaN.
    weight_train,weight_test = dataset.get_weight_train_test()
    eval_ = Evaluation()

    model = XGBClassifier()
    model.fit(Xtrain, ytrain)
    ypred = model.predict(Xtest)
    eval_.affichage_score("XGBoost",ytest,ypred,weights=weight_test)

コード例 #4
0
if __name__ == "__main__":
    dataset = Dataset(drop_weight=True)
    higgs_df = dataset.get_df()
    Xtrain,Xtest, ytrain,ytest = dataset.split_train_test(fill_nan=True)
    weight_train,weight_test = dataset.get_weight_train_test()
    eval_ = Evaluation()

    
    #Decision tree automatic depth

    tree_1 = DecisionTreeClassifier(random_state=0)
    tree_1.fit(Xtrain,ytrain)
    ypred = tree_1.predict(Xtest)
    ypred_train = tree_1.predict(Xtrain)
    eval_.affichage_score("Decision Tree automatic depth Weight = False, Test",ytest,ypred,weights=weight_test)
    eval_.affichage_score("Decision Tree automatic depth Weight = False, Train",ytrain,ypred_train,weights=weight_train)
    


    

     # Decision tree fixed depth 5
    tree_1 = DecisionTreeClassifier(random_state=0,max_depth=5)
    tree_1.fit(Xtrain,ytrain)
    ypred = tree_1.predict(Xtest)
    ypred_train = tree_1.predict(Xtrain)
    eval_.affichage_score("Decision Tree  depth 5 Weight = False, Test",ytest,ypred,weights=weight_test)
    eval_.affichage_score("Decision Tree  depth 5 Weight = False, Train",ytrain,ypred_train,weights=weight_train)
    
    # à faire : cross val pour trouver le meilleur hyper paramètre pour la profondeur maximal de l'arbre 
コード例 #5
0
    ypred_train = tree_1.predict(Xtrain)
    eval_.affichage_score("Decision Tree  depth 5 Weight = False, Test",ytest,ypred,weights=weight_test)
    eval_.affichage_score("Decision Tree  depth 5 Weight = False, Train",ytrain,ypred_train,weights=weight_train)
    
    # à faire : cross val pour trouver le meilleur hyper paramètre pour la profondeur maximal de l'arbre 

   """
    # Random Forest Bagging bootstrap = True , n_estimator = 100
    optim_param = pd.read_csv('results/optimal_parameters_rf.csv')
    params = optim_param['params']
    params = ast.literal_eval(params[0])
    rf = RandomForestClassifier(**params)
    rf.fit(Xtrain, ytrain)
    ypred = rf.predict(scale(Xtest))
    eval_.affichage_score("Random Forest bootstrap = True ",
                          ytest,
                          ypred,
                          weights=weight_test)
    """
    rf = RandomForestClassifier(n_estimators=100,bootstrap=False,max_depth=5)
    rf.fit(Xtrain,ytrain)
    ypred = rf.predict(Xtest)
    eval_.affichage_score("Random Forest bootstrap = False ",ytest,ypred,weights=weight_test)
     # à faire cross val pour les hyper-paramètres
    """
    # Extra Trees
    """Extra trees classifier.
       This classifier is very similar to a random forest; in extremely
       randomized trees, randomness goes one step further in the way splits are
       computed. As in random forests, a random subset of candidate features is
       used, but instead of looking for the most discriminative thresholds,
       thresholds are drawn at random for each candidate feature and the best of