scikit-Learn случайный лес никогда не заканчивает обучение, заморозить - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь приспособить модель случайного леса с помощью scikit-learn на машине с ubuntu 14.04.-server. Мои данные имеют форму (150000, 270), вывод verbose=10 выглядит следующим образом:

строительное дерево 1 из 10 [Параллельно (n_jobs = 1)]: выполнено 1 из 1 | прошло: осталось 6,1 с: 0,0 с строительное дерево 2 из 10 [Параллельно (n_jobs = 1)]: сделано 2 из 2 | прошло: 12,2 секунды осталось: 0,0 секунды строительное дерево 3 из 10 [Параллельно (n_jobs = 1)]: сделано 3 из 3 | прошло: осталось 18,3 секунды: 0,0 секунды строительное дерево 4 из 10 [Параллельно (n_jobs = 1)]: сделано 4 из 4 | прошло: 24,9 осталось: 0,0 с строительное дерево 5 из 10 [Параллельно (n_jobs = 1)]: сделано 5 из 5 | прошло: 32,1 осталось: 0,0 с строительное дерево 6 из 10 [Параллельно (n_jobs = 1)]: сделано 6 из 6 | Прошло: 38,5 секунды осталось: 0,0 секунды строительное дерево 7 из 10 [Параллельно (n_jobs = 1)]: сделано 7 из 7 | Прошло: 45,3 секунд осталось: 0,0 секунд строительное дерево 8 из 10 [Параллельно (n_jobs = 1)]: сделано 8 из 8 | прошло: 52,0 осталось: 0,0 с строительное дерево 9 из 10 [Параллельно (n_jobs = 1)]: сделано 9 из 9 | Прошло: 58,5 секунды осталось: 0,0 секунды строительное дерево 10 из 10 [Параллельно (n_jobs = 1)]: сделано 10 из 10 | Прошло: 1,1 мин. закончено

После этого он зависает / зависает часами. Я попытался изменить оба параметра n_jobs и n_estimators, чтобы сделать модель менее сложной / предотвратить проблемы с многопоточностью с n_jobs. Это не помогло.

Моя модель выглядит так: RandomForestRegressor(random_state=1234, n_jobs=1, n_estimators=10, min_samples_split=2, min_samples_leaf=1, verbose=10)

Я много читал о проблемах с BLAS / MKL Threading и пытался установить переменные окружения

os.environ['MKL_NUM_THREADS'] = '1'

os.environ['OMP_NUM_THREADS'] = '1'

os.environ['NUMEXPR_NUM_THREADS'] = '1'

os.environ['JOBLIB_START_METHOD'] = 'forkserver'

Но ни один из них не помогает. Модель не закончит обучение. Мой скрипт выглядит примерно так:

import packages/libraries

## load data 
## define model
## fit model
## predict on new data

Кто-нибудь испытывал то же самое / что-то другое?

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

1 Ответ

0 голосов
/ 10 сентября 2018

Похоже на проблему с памятью.

Я предлагаю проанализировать, сколько памяти программа использует при запуске.

Возможно, попытайтесь запустить ее с 10 выборками из вашего набора данных и посмотреть, будет ли она завершена.

...