Как решить Nameerror: имя 'n' не определено в train_test_split версии scikit-learn 0.22 без понижения версии? - PullRequest
0 голосов
/ 31 марта 2020

Я занимаюсь анализом настроений и использую функцию scikit learn train_test_split. Но я получаю Nameerror: 'n' не определено, хотя я определил его. После проверки различных форумов я обнаружил, что эта ошибка относится к новым версиям (после 0.19) scikit learn. Таким образом, решение, которое дано, состоит в том, чтобы понизить scikit learn до версии 0.19, и это будет работать Но моя проблема в том, что я работаю на python 3.7 и использую anaconda3, jupyter notebook 6.0.3, и он не понижается до более старой версии.

Что мне делать? Как решить эту проблему?

def postprocess(data, n=1000000):
    data = data.head(n)
    data['tokens'] = data['Articles'].progress_map(tokenize)  ## progress_map is a variant of the map function plus a progress bar. Handy to monitor DataFrame creations.
    data = data[data.tokens != 'NC']
    data.reset_index(inplace=True)
    data.drop('index', inplace=True, axis=1)
    return data

data = postprocess(data)

x_train, x_test, y_train, y_test = train_test_split(np.array(data.head(n).tokens),
                                                    np.array(data.head(n).Sentiment), test_size=0.2)  

Ошибка:

NameError Traceback (последний вызов был последним) в ----> 1 x_train, x_test, y_train, y_test = train_test_split (np.array (data.head (n) .tokens), 2 np.array (data.head (n) .Sentiment), test_size = 0.2)

NameError: имя 'n' не определено

Заранее спасибо.

1 Ответ

1 голос
/ 31 марта 2020

Вы, похоже, нигде не определяете n из вашей функции postprocess, плюс очень маловероятно, что такая ошибка вызвана ошибкой scikit-learn в последних версиях (когда вы заявляете что-то подобное, вы должны всегда включать результаты вашего собственного исследования).

В любом случае это, скорее всего, сработает (при условии, что с вашим кодом и данными нет других проблем):

n=1000000
data = postprocess(data, n=n)
x_train, x_test, y_train, y_test = train_test_split(np.array(data.head(n).tokens),
                                                    np.array(data.head(n).Sentiment), test_size=0.2)  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...