04_特征工程的定义

1.特征抽取:将文本、字符串、字典等数据,转换成数字就是特征抽取。

2.特征抽取API:sklearn.feature_extraction

3.字典特征抽取:对字典数据进行特征值化 , 使用sklearn.feature_extraction.DictVectorizer

 DictVectorizer语法:DictVectorizer.fit_transform(X): X是字典或者包含字典的迭代器;  返回值是sparse矩阵

           DictVectorizer.inverse_transform(X):X是array数组或者sparse矩阵; 返回值是转换之前的数据格式

          DictVectorizer.get_feature_names():返回类别的名称

          DictVectorizer.transform(X):按照原先的标准转换

 字典数据抽取:把字典中一些类别的数据,分别进行转换成特征值

4.one-hot编码:将每个类别(可以看成是数据表中的每一列值)生成一个布尔列,这些列中只有一列可以为每个样本取值1。

   one-hot编码:简而言之,为了避免因为每一列下数字大小造成优先级困扰,利于数据分析和机器学习。

 

 字典特征抽取:[ {“city”:”北京”,”temperature”:100}, 

        {“city”:”上海”,”temperature”:60},

        {“city”:”深圳”,”temperature”:30}  ]

 

from sklearn.feature_extraction import DictVectorizer

def dictvec():
dict = DictVectorizer() # 如果sparse=False,得到一个矩阵

# 调用fit_transform
data = dict.fit_transform([{"city":"北京","temperature":100},
{"city":"上海","temperature":60},
{"city":"深圳","temperature":30}])
  

print(dict.get_feature_names())
    print(data)

return None


if __name__ == '__main__':
dictvec()

结果:# 邻接矩阵
    (0, 1)    1.0
   (0, 3) 100.0
   (1, 0) 1.0
   (1, 3) 60.0
   (2, 2) 1.0
   (2, 3) 30.0

   # 如果sparse=False,得到一个矩阵

    [‘city=上海’, ‘city=北京’, ‘city=深圳’, ‘temperature’]
    [ [ 0. 1. 0. 100.]
      [ 1. 0. 0. 60.]
      [ 0. 0. 1. 30.] ]


注:特征化就是为了计算机更好的理解数据。


单词:feature特征、extraction抽取、Vectorizer矢量器、sparse稀疏、fit适合

 





    原文作者:会飞的发如雪
    原文地址: https://www.cnblogs.com/cwj2019/p/11715623.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞