Страницы

Поиск по вопросам

понедельник, 6 января 2020 г.

Что означает random_state из TSNE?

#python #numpy #scikit_learn


Ставил 3 разных значений random_state, это: (None, 0, 1). 

Так и не понял, в чем заключается суть этого метода. Читал документацию, ответ на
сайте, но так и не понял.
    


Ответы

Ответ 1



Суть параметра random_state (во всех функциях и методах из SciKit-Learn) в воспроизводимых случайных значениях. Т.е. если явно задать значение random_state отличным от None - то генерируемые псевдослучайные величины будут иметь одни и те же значения при каждом вызове. Пример: In [1]: import numpy as np In [2]: np.random.seed(31415) In [3]: np.random.randint(10, size=(5,5)) Out[3]: array([[7, 3, 5, 8, 2], [6, 6, 3, 5, 6], [0, 0, 8, 3, 6], [1, 6, 8, 5, 1], [4, 6, 9, 2, 7]]) In [4]: np.random.seed(31415) In [5]: np.random.randint(10, size=(5,5)) Out[5]: array([[7, 3, 5, 8, 2], [6, 6, 3, 5, 6], [0, 0, 8, 3, 6], [1, 6, 8, 5, 1], [4, 6, 9, 2, 7]]) In [6]: np.random.seed(31415) In [7]: np.random.randint(10, size=(5,5)) Out[7]: array([[7, 3, 5, 8, 2], [6, 6, 3, 5, 6], [0, 0, 8, 3, 6], [1, 6, 8, 5, 1], [4, 6, 9, 2, 7]]) PS если вы запустите данный код на вашем компьютере - вы получите те же самые значения в матрицах. Зачем это нужно? В задачах машинного обучения и не только часто используется генератор псевдослучайных чисел для инициализации различных параметров, весов в нейросетях, случайного разделения дата сета на обучающий и проверочный сеты. Соответственно если мы хотим сравнить несколько методов или разные наборы параметров, то для честного сравнения надо использовать одинаковые обучающие и проверочные сеты. Также бывает полезно создать наборы данных случайным, но воспроизводимым способом. Например вы создали несколько различных вычислительных методов и хотите их сравнить или проверить правильность - для этого необходимо использовать одинаковые входные данные.

Комментариев нет:

Отправить комментарий