Почему результаты регрессора RANSAC меняются независимо от ввода?

Я всегда думал, что результаты машинного обучения отличаются, потому что данные каждый раз перемешиваются случайным образом, что приводит к различным обучающим наборам. И поэтому, когда нет перетасовки, результаты каждый раз должны быть одинаковыми. Как и в случае с sklearn.linear_model.LinearRegression(), но sklearn.linear_model.RANSACRegressor() показывает разные результаты, несмотря на то, что ему каждый раз подаются одни и те же обучающие данные в одном и том же порядке. Разве это не просто математическая функция, и разве результаты не должны быть одинаковыми каждый раз? Может кто-нибудь объяснить это, или у меня ошибка в коде, и я по ошибке подаю ему разные данные?


person JFugger_jr    schedule 03.09.2017    source источник
comment
После того, как обучающие данные будут переданы оценщику, все еще будет некоторая случайность для выбора частей данных. Всякий раз, когда параметр random_state присутствует в оценщике, как в RANSACRegressor, всегда устанавливайте для него фиксированное число, чтобы дублировать результаты.   -  person Vivek Kumar    schedule 03.09.2017


Ответы (1)


Согласно документации, данные выбрано случайно.

В некоторых параметрах есть указание, например random_state:

random_state : int, экземпляр RandomState или None, необязательно, по умолчанию None

Генератор, используемый для инициализации центров. Если int, random_state — это начальное число, используемое генератором случайных чисел; Если экземпляр RandomState, random_state является генератором случайных чисел; Если нет, генератором случайных чисел является экземпляр RandomState, используемый np.random.

person Laurent LAPORTE    schedule 03.09.2017