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适合