Массив доказательств Биннинг в Scikit-Learn и PMML

Часто при моделировании кредитного риска имеет смысл преобразовать непрерывную переменную в одну или несколько дискретных переменных. Сгруппированная переменная позволит регрессионной модели обрабатывать переменную аналогично разбиению в древовидной модели. Другой причиной для мусорного ведра может быть соблюдение законов о кредитовании. В США кредиторы могут использовать возраст как часть модели кредитоспособности; однако лица в возрасте 62 лет и старше не могут быть наказаны из-за своего возраста. Бинирование переменной age может помочь обеспечить соблюдение закона.

К сожалению, в Sklearn нет никакой поддержки объединения доказательств. Однако в пакете sklearn2pmml есть CutTransformer. CutTransformer предназначен для дискретизации непрерывной переменной в дискретные переменные (не группирование). Однако эту функцию можно использовать для биннинга, указав значения с плавающей запятой вместо строковых объектов. CutTransformer основан на функции pandas.cut.

Первая часть процесса заключается в создании разрывов бинов и значений бинов. Эта первая часть экзогенна для Sklearn и процесса PMML. Вы можете использовать любой пакет или язык, который вы выберете. Я лично предпочитаю пакет R woeBinning.

Ниже приведен пример кода, который создает два бина для значений в диапазоне от 0 до 2200. Обратите внимание, что значения, превышающие этот диапазон, будут закодированы как np.nan. Вы можете заполнить эти нулевые значения с помощью функции SimpleImputer или ContinuousDomain().