特征工程
定义:将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的预测准确性。
内容:主要有三部分:
1、特征抽取
2、特征预处理
3、数据的降维
数据集
数据集,又称为资料集、数据集合或资料集合,是一种由数据所组成的集合。
Data set(或dataset)是一个数据的集合,通常以表格形式出现。每一列代表一个特定变量。每一行都对应于某一成员的数据集的问题。它列出的价值观为每一个变量,如身高和体重的一个物体或价值的随机数。每个数值被称为数据资料。对应于行数,该数据集的数据可能包括一个或多个成员。
常用数据集数据的结构组成:特征值+目标值。
注:有些数据集可以没有目标值。
特征抽取
特征抽取对文本等数据进行特征值化(特征值化是为了计算机更好的去理解数据)。
sklearn特征抽取API:sklearn.feature_extraction。
一、字典特征抽取
字典特征抽取:对字典数据进行特征值化。把字典中一些类别数据,分别进行转换成特征。
类:sklearn.feature_extraction.DictVectorizer
DictVectorizer语法:
- DictVectorizer(sparse=True, …)
- DictVectorizer.fit_transform(x):
x: 字典或者包含字典的迭代器;返回值: 返回sparse矩阵- DictVectorizer.inverse_transform(x):
x: array数组或者sparse矩阵;返回值: 转换之前数据格式- DictVectorizer.get_feature_names(): 返回类别名称
- DictVectorizer.transform(x): 按照原先的标准转换
流程:
- 实例化类DictVectorizer。
- 调用fit_transform方法输入数据并转换(注意返回格式)。
from sklearn.feature_extraction import DictVectorizer
# 对字典进行特征值化
def dictvec():
# 实例化
dict = DictVectorizer(sparse=False)
# 调用fit_transform
data = dict.fit_transform([{
'city': '北京', 'temperature': 23}, {
'city': '上海', 'temperature': 28}, {
'city': '深圳', 'temperature': 30}])
print(dict.get_feature_names())
print(dict.inverse_transform(data))
print(data)
return None