目录

一、基础理论

1、特征工程

2、过程

3、API

二、特征提取转化为二维矩阵

0、获取数据集

1、实例化转换器类

2、提取特征值

3、显示

三、特征值转化为稀疏矩阵

0、获取数据集

1、实例化转换器类

2、提取特征值

3、显示 

总代码


一、基础理论

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()        #二维矩阵(特征值)

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐