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()
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)