数据预处理:列选择器的使用

在机器学习的数据预处理阶段,经常需要对数据集中的特定列进行操作。例如,可能需要对数值型特征进行标准化处理,而对类别型特征进行独热编码。在Python的sklearn库中,ColumnTransformer和make_column_selector函数可以帮助实现这一目标。

ColumnTransformer是一个强大的工具,它允许对数据集中的不同列应用不同的预处理方法。通过make_column_selector函数,可以轻松地根据数据类型或列名的正则表达式来选择需要处理的列。当使用多个选择标准时,只有当所有标准都匹配时,列才会被选中。

例如,如果有一个包含城市名称和评分的数据集,可能想要对评分列进行标准化处理,而对城市名称列进行独热编码。可以通过以下方式实现:

from sklearn.preprocessing import StandardScaler, OneHotEncoder from sklearn.compose import make_column_transformer, make_column_selector import numpy as np import pandas as pd # 创建示例数据集 X = pd.DataFrame({ 'city': ['London', 'London', 'Paris', 'Sallisaw'], 'rating': [5, 3, 4, 5] }) # 创建列转换器 ct = make_column_transformer( (StandardScaler(), make_column_selector(dtype_include=np.number)), (OneHotEncoder(), make_column_selector(dtype_include=object)) ) # 应用转换 transformed_data = ct.fit_transform(X) print(transformed_data)

在上面的代码中,首先导入了所需的库和函数。然后,创建了一个示例数据集,其中包含城市名称和评分。接下来,使用make_column_transformer函数创建了一个列转换器,它将对数值型列(评分)应用标准化处理,对类别型列(城市名称)应用独热编码。最后,应用了转换并打印了结果。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485