在数据分析中,特征选择往往是我们面临的首要难题,本节将向大家介绍 Scikit-Learn 提供的特征工程相关工具,以便我们在 Python 中更好地对模型的特征进行处理。
1、分类变量特征预处理
首先我们构造如下示例数据:
- data = [
- {'price': 850000, 'rooms': 4, 'neighborhood': 'Queen Anne'},
- {'price': 700000, 'rooms': 3, 'neighborhood': 'Fremont'},
- {'price': 650000, 'rooms': 3, 'neighborhood': 'Wallingford'},
- {'price': 600000, 'rooms': 2, 'neighborhood': 'Fremont'}
- ]
在作为示例的租房数据中,分类变量 neighborhood 可以对应以下三个值:
- {'Queen Anne': 1, 'Fremont': 2, 'Wallingford': 3};
运用 Scikit-Learn 中的 DictVectorizer 函数,我们将以上租房数据的分类变量转换为 one-hot 形式:
- from sklearn.feature_extraction import DictVectorizer
- vec = DictVectorizer(sparse=False, dtype=int)
- vec.fit_transform(data)
可以通过调用 get_feature_names 函数,来查看转换后的数组中对应的列名:
- vec.get_feature_names()
要注意的是,当我们将 DictVectorizer 函数参数 sparse 的值设置为 True 时,转换后的对象将不再是一个数组,而是一个 sparse matrix 对象:
- vec = DictVectorizer(sparse=True, dtype=int)
- vec.fit_transform(data)
<4x5 sparse matrix of type '<class 'numpy.int64'>' with 12 stored elements in Compressed Sparse Row format>
后文还有介绍 文本特征提取、特征项扩充、特征缺失值处理、pipeline 模型等,内容较多,先搬运到这,有需要的同学可以先直接到 数析学院 查看原文


雷达卡




京公网安备 11010802022788号







