sklearn学习 — 特征抽取

特征抽取

sklearn库提供了特征抽取模块 sklearn.feature_extraction 对数据进行特征值化,包括字典数据及文本数据的特征抽取

步骤:

  1. 实例化类 DictVectorizer()
  2. 调用 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个状态,每个状态都有独立的寄存器位,且这些寄存器位中只有一位有效,说白了就是只能有一个状态。

推荐阅读更多精彩内容