def CF_Boosted_Trees(model,
                     Data,
                     config,
                     name,
                     location,
                     states=3):  # train_data, test_data
    """
	Input:
			train_data  ... list-of-lists 

	"""
    train_data, test_data = dat.PrepareCrossFold(Data.H_alpha)
    train_labels, test_labels = dat.PrepareCrossFold(Data.labels)

    K = len(train_data)
    score_tab = Scoring.ScoringTable(location=location,
                                     name=name,
                                     n_states=states)

    feat = FE.Features(config=config, normalize=True)

    start = time()
    for cross in range(K):
        clf = copy(model)

        train_matrix = feat.fit_transform(Data=train_data[cross])
        test_matrix = feat.fit_transform_batch(Data=test_data[cross])
        target = dat.merge_labels(train_labels[cross])

        # print(np.shape(train_matrix), np.shape(target))
        # print(np.shape(test_matrix), np.shape(test_labels[cross]))

        pred = train_and_predict(model=clf,
                                 train=train_matrix,
                                 test=test_matrix,
                                 labels=target,
                                 unsupervised=False)

        score = Scoring.score(states=pred,
                              results=test_labels[cross],
                              unsupervised=False,
                              pocet_stavu=states)

        # print("score", score)

        score_tab.add(scores=score)
        print("{} section done. Time taken from start {}".format(
            cross + 1,
            time() - start))

    score_tab.save_table()
    config["n_estimators"] = model.n_estimators

    with open(location + name + '_config.pickle', 'wb') as f:
        pickle.dump(config, f)
    return score_tab.return_table()
Ejemplo n.º 2
0
def test_PrepareCrossFold(Data, vypis=False):
    train, test = Datasets.PrepareCrossFold(Data.H_alpha)
    tmp1, tmp2 = Datasets.PrepareCrossFold(Data.data)

    shodujiSe = True

    for m, n in enumerate(train):
        for i, j in enumerate(n):
            YN = np.allclose(j, tmp1[m][i][1])
            if YN == False:
                shodujiSe = False
            if vypis:
                print(f'{m} Souhlasí {i+1} signál? ', YN)
    print("Shodují se všechny? ", shodujiSe)