Изменение значений каждой строки в первом столбце в разреженной матрице - PullRequest
0 голосов
/ 02 июня 2019

Я делаю анализ настроений набора данных фильма IMDB, чтобы обучить модель, предсказывающую предоставленный обзор.

Я уже создал и загрузил пакет слов (это файл SVMlight) в виде разреженной матрицы. Код ниже показывает, как данные загружаются. В каждой строке есть один отзыв с количеством слов.

В X сохранено количество слов, а в y указан соответствующий рейтинг фильма от 1 до 10. Например, если вы печатаете (y-train [2]), вы получаете 9.

Для моего задания мы хотим предсказать, будет ли рейтинг фильма отрицательным или положительным, а не точное значение. Поэтому мне нужно изменить рейтинг по оси y, где рейтинг> 5 положительный (поэтому, вероятно, = 1), а <= 5 отрицательный (= 0). Я изо всех сил пытаюсь изменить эти ценности. </p>

Я пытался использовать обычный цикл FOR вместе с IF, но это не работает. Я довольно новичок в Python, поэтому, возможно, это не правильно для любых данных

##How the data is loaded
@mem.cache
def get_data_train():
    data_train = load_svmlight_file("labeledBowtrain.feat")
    return data_train[0], data_train[1]

X_train, y_train = get_data_train()

##My pretty crappy for loop
for i in y_train2:
    if y_train2 >=5:
        y_train2=1
    else:
        y_train2=0

Это приводит к сообщению об ошибке: «ValueError: Значение истинности массива с более чем одним элементом неоднозначно. Используйте a.any () или a.all ()»

Я действительно не знаю, как идти дальше. Спасибо:)

...