特征抽取
sklearn库提供了特征抽取模块 sklearn.feature_extraction 对数据进行特征值化,包括字典数据及文本数据的特征抽取
步骤:
- 实例化类 DictVectorizer()
- 调用 fit_transform() 方法输入数据并转换
- 特征抽取对文本进行特征值化
from sklearn.feature_extraction.text import CountVectorizer
vector = CountVectorizer()
res = vector.fit_transform(['life is short,i like python','life is too long,i dislike python'])
print(vector.get_feature_names())
print(res.toarray())
>>> 结果['dislike', 'is', 'life', 'like', 'long', 'python', 'short', 'too']
[[0 1 1 1 0 1 1 0]
[1 1 1 0 1 1 0 1]]
- 特征抽取对字典进行特征值化
from sklearn.feature_extraction import DictVectorizer
def dictvec():
#字典数据抽取
#实例化
dict = DictVectorizer()
#调用fit_transform
data = dict.fit_transform([{'city':'北京','temperature':100},{'city':'上海','temperature':60},{'city':'深圳','temperature':30}])
print(data)
return None
if __name__ == '__main__':
dictvec()
- 特征值化,是为了计算机更好的理解数据
特征抽取API
`sklearn.feature_extraction`
feature 特征
extraction 抽取
sklearn.feature_extraction.DictVectorizer 字典特征抽取
对字典数据进行特征值化
数组形式,有类别的特征,先要转化成字典
把字典中一些类别特征,分别转化为特征
DictVectorizer.fit_transform(X)
X:字典或者包含字典的迭代器
返回值:返回sparse矩阵
DictVectorizer.inverse_transform(X)
X:array数组或者sparse矩阵
返回值:转化之前的数据格式
DictVectorizer.get_feature_names()
返回类别名称
DictVectorizer.transform(X)
按照原先的标准转化
One-hot编码 又称“独热编码”。其实就是用N位状态寄存器编码N个状态,每个状态都有独立的寄存器位,且这些寄存器位中只有一位有效,说白了就是只能有一个状态。
网友评论