def get_c1_score(y_inp, y_pre, msk): y_predicted = [] y_actual = [] for i in range(len(y_pre)): if (msk[i // 700][i % 700 + 50] == 1): y_predicted.append(np.argmax(y_pre[i], 0)) y_actual.append(y_inp[i // 700][i % 700 + 50]) print("F1 score results : \n", c_metric(y_actual, y_predicted)) print("Predicted : \n", c_metric(y_predicted, y_predicted))
def res_on_cv_data(): no_of_batches = len(data_cv) // batch_size shuffle(data_cv) correct = 0 y_actual = [] y_predicted = [] for batch_no in range(5): x = [] y = [] max_length = 0 seq_length = [] for data in data_cv[batch_no * batch_size:batch_no * batch_size + batch_size]: seq_length.append(len(data[0])) max_length = max(max_length, len(data[0])) x.append(data[0]) y.append(data[1]) x_padded = np.array( [row + [-1] * (max_length - len(row)) for row in x]) for y_ in y: y_actual.append(y_) print("Appending in y_actual", y_) y = np.array(y) accuracy_known = model.cross_validate(x_padded, y, seq_length) y_predicted_ = model.predict(x_padded, y, seq_length) for y_ in y_predicted_: print("Appending in y_preicted", y_) y_predicted.append(y_) correct += accuracy_known * batch_size accuracy = (correct * 100) / (batch_size * no_of_batches) print("Accuracy on train data : ", accuracy) print(c_metric(y_actual, y_predicted))
def res_on_cv_data(model, data_cv): no_of_batches = len(data_cv.keys()) y_predicted = [] y_actual = [] correct = 0 total_samples = 0 for batch_no in range(no_of_batches - 1, -1, -1): print("Iteration number, batch number : ", epoch, batch_no) data_batch = data_cv[batch_no] batch_size = len(data_batch[1]) x = data_batch[0] y = data_batch[1] freq = data_batch[2] seq_length = data_batch[3] x = np.array(x) y_actual.extend(y) y = np.array(y) freq = np.array(freq) accuracy_kmown = model.cross_validate(x, y, seq_length, freq) y_predicted_ = model.predict(x, y, seq_length, freq) y_predicted.extend(y_predicted_) correct += accuracy_kmown * batch_size total_samples += batch_size accuracy = (correct * 100) / (total_samples) correct_1 = len([i for i, j in zip(y_actual, y_predicted) if i == j]) print("Accuracy on cv data : ", accuracy, correct, correct_1) print("Lengths of y_actual and y_predicted : ", len(y_actual), len(y_predicted)) print(c_metric(y_actual, y_predicted))
def res_on_cv_data(): no_of_batches = len(data_cv) // batch_size no_of_batches = 3 shuffle(data_cv) zero_100_list = [[0] * 100] correct = 0 y_actual = [] y_predicted = [] for batch_no in range(no_of_batches): if (batch_no % 5 == 0): print("res_on_cv_data : ", batch_no) x = [] y = [] max_length = 0 seq_length = [] for data in data_cv[batch_no * batch_size:batch_no * batch_size + batch_size]: seq_length.append(len(data[0])) max_length = max(max_length, len(data[0])) x.append(data[0]) y.append(data[1]) x_n = [row + (zero_100_list) * (max_length - len(row)) for row in x] x_padded = np.array(x_n) y_actual.extend(y) y = np.array(y) accuracy_known = model.cross_validate(x_padded, y, seq_length) y_predicted_ = model.predict(x_padded, y, seq_length) y_predicted.extend(y_predicted_) correct += accuracy_known * batch_size accuracy = (correct * 100) / (batch_size * no_of_batches) correct_1 = len([i for i, j in zip(y_actual, y_predicted)]) print("Accuracy on train data : ", accuracy, correct, correct_1) print(c_metric(y_actual, y_predicted))