四.特征工程
1.概念
一般使用pandas来进行数据清洗和数据处理、使用sklearn来进行特征工程
将任意数据(文本或图像等)转换为数字特征,对特征进行相关的处理
步骤:1.特征提取;2.无量纲化(预处理):归一化、标准化;3.降维:底方差过滤特征选择,主成分分析-PCA降维
2.特征工程API
①.实例化转换器对象
DictVectorizer 字典特征提取 CountVectorizer 文本特征提取 TfidfVectorizer TF-IDF文本特征词的重要程度特征提取 MinMaxScaler 归一化 StandardScaler 标准化 VarianceThreshold 底方差过滤降维 PCA 主成分分析降维
②.fit,transform和fit_transform
fit:用于计算数据的统计信息,比如均值和标准差(在StandardScaler
的情况下),这些统计信息随后会被用于预测出来的数据
transform:使用已经通过fit
方法计算出的统计信息来转换数据。
fit_transform:两者结合,更高效
一旦scaler
对象在X_train
上被fit
,它就已经知道了如何将数据标准化。
先fit_transform(x_train)然后再transform(x_text)
fit只用一次
# fit 和 transform 和fittransform 区别
from sklearn.preprocessing import StandardScaler,MinMaxScaler
import numpy as np
transfer=StandardScaler()
x=np.random.randint(100,size=(3,4))
print(x)
transfer.fit(x)#计算出均值和标准差
x=transfer.transform(x)
# x=transfer.fit_transform(x)
print(x)
x2=np.array([[10,20,30,40]])
x2=transfer.transform(x2)
print(x2)
3.DictVectorizer 字典列表特征提取
1.稀疏矩阵
一个矩阵中大部分元素为0,常见于大规模数据分析、图形学、自然语言处理、机器学习等领域
常用存储方式:①.三元组表 (Coordinate List, COO):三元组表就是一种稀疏矩阵类型数据,存储非零元素的行索引、列索引和值:
(行,列) 数据
(0,0) 10
(0,1) 20
(2,0) 90
(2,20) 8
(8,0) 70
表示除了列出的有值, 其余全是0
②.压缩稀疏行 (CSR - Compressed Sparse Row):
-
CSR 格式将稀疏矩阵中的非零元素按行优先的方式存储。它使用了三个数组:
-
data
:存储非零元素的值。 -
indices
:存储data
中每个元素的列索引。 -
indptr
:存储每一行在data
和indices
数组中的起始位置。
-
-
CSR 格式非常适合快速地进行行访问和矩阵向量乘法。
③.压缩稀疏列 (CSC - Compressed Sparse Column):
-
CSC 格式类似于 CSR,但它是按列优先的方式来存储稀疏矩阵。同样也使用了三个数组:
-
data
:存储非零元素的值。 -
indices
:存储data
中每个元素的行索引。 -
indptr
:存储每一列在data
和indices
数组中的起始位置。
-
-
CSC 格式对于快速地进