目录
一、基础理论
1、特征工程
特征工程是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。
文本类型 转化为 数值
类型 转化为 数值
2、过程
1、获取数据集
2、实例化转换器类
3、提取特征值
3、API
fit_transform()
先拟合数据(fit),再将其转换成标准形式(transform)。
# 特征提取
sklearn.feature_extraction.DictVectorizer
二、特征提取转化为二维矩阵
转化的特征值若为汉字或字符,存在则为1,不存在则为0。
0、获取数据集
# 数据集
data = [{'name':'小明', 'score':80}, {'name':'小红', 'score':100}, {'name':'张三', 'score':60}]
1、实例化转换器类
# 1、实例化转换器类
transfer = DictVectorizer(sparse=False)
2、提取特征值
# 2、提取特征值
feature_data = transfer.fit_transform(data)
3、显示
print('稀疏矩阵特征值:\n', feature_data)
print('特征名字:', transfer.get_feature_names())
前3列表示的都是name,分别是小明、小红、张三;
最后一列表示的是score。
全为字符的情况:
(汉字及字符有则为1,没有则为0)
三、特征值转化为稀疏矩阵
0、获取数据集
# 数据集
data = [{'name':'小明', 'score':80}, {'name':'小红', 'score':100}, {'name':'张三', 'score':60}]
1、实例化转换器类
# 1、实例化转换器类
transfer = DictVectorizer(sparse=False)
2、提取特征值
# 2、提取特征值
feature_data = transfer.fit_transform(data)
3、显示
print('稀疏矩阵特征值\n', feature_data)
print('特征名字:', transfer.get_feature_names())
前两列是坐标,表示该关键字在二维数组中对应的位置。
全为字符的情况:
总代码
# 字典特征提取
from sklearn.feature_extraction import DictVectorizer
# 数据集
data = [{'name':'小明', 'score':80}, {'name':'小红', 'score':100}, {'name':'张三', 'score':60}]
# 提取特征值,转化为稀疏矩阵
def Count_Sparse():
# 1、实例化转换器类
transfer = DictVectorizer(sparse=True)
# 2、提取特征值
feature_data = transfer.fit_transform(data)
print('稀疏矩阵特征值\n', feature_data)
print('特征名字:', transfer.get_feature_names())
# 提取特征值,转化为二维矩阵
def Count_Matrix():
# 1、实例化转换器类
transfer = DictVectorizer(sparse=False)
# 2、提取特征值
feature_data = transfer.fit_transform(data)
print('二维矩阵特征值:\n', feature_data)
print('特征名字:', transfer.get_feature_names())
if __name__ == '__main__':
Count_Sparse() #稀疏矩阵(特征值)
Count_Matrix() #二维矩阵(特征值)