Пример #1
0
        # break
    # X = sequence.pad_sequences(X, maxlen=max_len)
    X = np.asarray(X)
    y = np.asarray(y)

    return X, y


def execute_model(X, y):
    kf = KFold(y.shape[0], n_folds=n_fold, shuffle=True)
    results_user = np.array([0.0, 0.0, 0.0, 0.0])
    for train_index, test_index in kf:
        X_train, X_test = X[train_index], X[test_index]
        y_train, y_test = y[train_index], y[test_index]
        accuracy, precision, recall, f1 = cnn_model(X_train, y_train, X_test, y_test)
        # precision, recall, f1 = bidirectional_lstm(X_train, y_train, X_test, y_test)
        results_user[0] += accuracy
        results_user[1] += precision
        results_user[2] += recall
        results_user[3] += f1
    results_user /= n_fold
    return results_user

if __name__ == '__main__':
    n_count = 0
    data = util.read_data(path.join(util.data_path, util.file_name))
    X, y = build_dataset(data)
    results = execute_model(X, y)
    print results
    util.insert_results('CNN', results[0], results[2], results[1], results[3])
Пример #2
0
def prediction_model(X_train, y_train, X_test, y_test):
    classifier = LogisticRegression()
    classifier.fit(X_train, y_train)
    pred_labels = classifier.predict(X_test)
    accuracy = accuracy_score(y_test, pred_labels)
    precision, recall, f1 = precision_recall_fscore_support(y_test, pred_labels, average='weighted')
    return accuracy, precision, recall, f1

if __name__ == '__main__':
    model = Doc2Vec(alpha=0.025, min_alpha=0.025, size=100, window=10, negative=5)
    model.build_vocab(read_labeled_doc(path.join(util.data_path, util.file_name))[0])
    for i in xrange(0, 1):
        model.train(read_labeled_doc(path.join(util.data_path, util.file_name)))
        print 'end of iteration ', i + 1
    labels_ratings = get_labels_ratings(path.join(util.data_path, util.file_name))
    X = []
    y = []

    for entry in labels_ratings:
        current_data = model.docvecs[entry[0]]
        current_rating = labels_ratings[entry[1]]
        X.append(current_data)
        y.append(y)
    X = np.asarray(X)
    y = np.asarray(y)
    results = execute_model(X, y)
    print 'Doc2vec'
    print results
    util.insert_results('Doc2Vec', results[0], results[2], results[1], results[3])
Пример #3
0
    print("Building model...")
    model = Sequential()
    model.add(Dense(512, input_shape=(max_len,)))
    model.add(Activation('relu'))
    model.add(Dropout(0.5))
    model.add(Dense(nb_classes))
    model.add(Activation('softmax'))

    model.compile(loss='categorical_crossentropy', optimizer='adam', class_mode='categorical')

    history = model.fit(X_train, Y_train, nb_epoch=nb_epoch, batch_size=batch_size, verbose=1, show_accuracy=True, validation_split=0.1)
    model.evaluate(X_test, Y_test, batch_size=batch_size, verbose=1, show_accuracy=True)
    # print('Test score:', score[0])
    # print('Test accuracy:', score[1])
    pred_labels = model.predict_classes(X_test)
    # print pred_labels
    # print y_test
    accuracy = accuracy_score(y_test, pred_labels)
    precision, recall, f1, supp = precision_recall_fscore_support(y_test, pred_labels, average='weighted')
    print precision, recall, f1, supp

    return accuracy, precision, recall, f1

if __name__ == '__main__':
    n_count = 0
    data = util.read_data(path.join(util.data_path, util.file_name))
    X, y = build_dataset(data)
    results = execute_model(X, y)
    print results
    util.insert_results('MLP', results[0], results[2], results[1], results[3])
Пример #4
0
    # X = sequence.pad_sequences(X, maxlen=max_len)
    X = np.asarray(X)
    y = np.asarray(y)

    return X, y


def execute_model(X, y):
    kf = KFold(y.shape[0], n_folds=n_fold, shuffle=True)
    results_user = np.array([0.0, 0.0, 0.0, 0.0])
    for train_index, test_index in kf:
        X_train, X_test = X[train_index], X[test_index]
        y_train, y_test = y[train_index], y[test_index]
        # accuracy, precision, recall, f1 = lstm_model(X_train, y_train, X_test, y_test)
        accuracy, precision, recall, f1 = bidirectional_lstm(X_train, y_train, X_test, y_test)
        results_user[0] += accuracy
        results_user[1] += precision
        results_user[2] += recall
        results_user[3] += f1
    results_user /= n_fold
    return results_user


if __name__ == '__main__':
    n_count = 0
    data = util.read_data(path.join(util.data_path, util.file_name))
    X, y = build_dataset(data)
    results = execute_model(X, y)
    print results
    util.insert_results('BI-LSTM', results[0], results[2], results[1], results[3])