Ограничение значений прогноза линейной регрессии с помощью scikit

Я обучаю модель линейной регрессии, используя набор данных, который имеет метки с действительными значениями в интервале [0,10]. Мои прогнозируемые значения на тестовом наборе имеют некоторые прогнозы, превышающие 10. Есть ли способ ограничить число прогнозов до 10?

Я думаю о выполнении условной проверки, чтобы, если прогноз превышает 10, я явно устанавливаю его на 10.

Есть ли способ лучше?


person atlantis    schedule 17.03.2012    source источник
comment
Вопрос довольно расплывчатый. Если вы не станете более конкретным, я не понимаю, как кто-то может предложить вам лучший способ.   -  person Joel Cornett    schedule 18.03.2012
comment
Под «лучше» я имею в виду только «лучше», чем написание явного выражения if (значение> 10) = 10, которое выполняется для каждого значения, испускаемого регрессионной моделью. Это кажется довольно обычным сценарием, поэтому я надеюсь, что есть стандартный способ сделать это. Это проясняет? Буду рад отредактировать все, что делает вопрос нечетким   -  person atlantis    schedule 18.03.2012
comment
Если я правильно понимаю, не лучше ли проверить диапазон вашей линейной функции и прекратить вычисление значений за пределами соответствующего домена?   -  person Joel Cornett    schedule 18.03.2012
comment
Я думаю вопрос достаточно точный   -  person Vladtn    schedule 18.03.2012


Ответы (1)


Если y является выходом метода predict объекта регрессии, тогда вы можете minimum Numpy, чтобы ограничить его до 10:

y = np.minimum(y, 10.)

Чтобы также ограничить его нулем ниже, выполните

y = np.maximum(np.minimum(y, 10.), 0.)

или, короче:

y = np.clip(y, 0., 10.)
person Fred Foo    schedule 18.03.2012