①分类变量特征提取
分类变量通常用独热编码(One-of-K or One-Hot Encoding),通过二进制来表示每个自变量特征。
例如,假设city变量有三个值:New York, San Francisco, Chapel Hill。独热编码方式就是用三位二进制数表示city特征,其中每一位代表一个城市。
利用sklearn.feature_extraction.DictVectorizer(dtype=<type ‘numpy.float64’>, separator=’=’,sparse=True, sort=True)类可以用来表示分类特征:
In [1]: from sklearn.feature_extraction import DictVectorizer
...: onehot_encoder = DictVectorizer()
...: instances = [{'city':'New York'},{'city':'San Francisco'},{'city':'Chap
...: el Hill'}]
...: onehot_encoder.fit_transform(instances)
...:
Out[1]:
<3x3 sparse matrix of type '<class 'numpy.float64'>'
with 3 stored elements in Compressed Sparse Row format>
In [2]: type(onehot_encoder.fit_transform(instances))
Out[2]: scipy.sparse.csr.csr_matrix
In [3]: print(onehot_encoder.fit_transform(instances))
(0, 1) 1.0
(1, 2) 1.0
(2, 0) 1.0
经过fit_transform函数生成的是一个按行格式压缩矩阵,csr_matrix对象具有两个重要属性:
In [4]: onehot_encoder.fit_transform(instances).data
Out[4]: array([ 1.,