用户工具

站点工具


model:preprocess:group

使用ReplaceTransformer进行连续数据分段

离散数据分组,一般可以通过 ReplaceTransformer 来进行,示例如下:

# #####################################################
# File: 02-preprocess-07-ReplaceTransformer
# Author: jinlong.hao
# Date: 2019-12-04
# ReplaceTransformer: 实现替换方式用于实现离散形变量的合并
# DESC:
#    1. import
#    2. 加载测试数据
#    3. 基础使用
#    4. 与DataFrame整合使用
# ####################################################
 
# 1. import
from sklearn.preprocessing import OneHotEncoder, LabelBinarizer, LabelEncoder
from sklearn_pandas import DataFrameMapper
import numpy as np
import pandas as pd
from sklearn2pmml.preprocessing import ReplaceTransformer
 
# 2. 加载示例数据
df = pd.DataFrame({
    'age': [3, 3, 4, 4, 2, 2, 1, 7, 8],
    'name': ['james', 'james河北', 'jessica', 'jessica2', 'steve', 'steve', 'lili', 'lucy', 'stone']
})
 
# 4. 与DataFrameMapper配合使用
dataFrameMapper = DataFrameMapper([
    ('name', [
        ReplaceTransformer(pattern='^(?!james|jessica|steve).*', replacement='others'),
        ReplaceTransformer(pattern='^jessica.*', replacement='jessica'),
        ReplaceTransformer(pattern='^james.*', replacement='james'),
        LabelBinarizer()
    ])
], df_out=True)
dataFrameMapper.fit_transform(df)
model/preprocess/group.txt · 最后更改: 2020/07/12 12:07 (外部编辑)