机器学习一(2)特征提取(字典、中英文等)

- 目标

  • 应用DictVectorizer实现对类别特征进行数值化、离散化
    应用CountVectorizer实现对文本特征进行数值化
    应用TfidfVectorizer实现对文本特征进行数值化

2.1特征提取

2.2 字典特征提取

  • 作用:对字典数据进行特征值化
sklearn.feature_extraction.DictVectorizer(sparse=True,)
DictVectorizer.fit_transform(X) X:字典或者包含字典的迭代器返回值:返回sparse矩阵
DictVectorizer.inverse_transform(X) X:array数组或者sparse矩阵 返回值:转换之前数据格式
DictVectorizer.get_feature_names() 返回类别名称
from sklearn.feature_extraction import DictVectorizer

def dict_demo():
    """
    对字典类型的数据进行特征抽取
    :return: None
    """
     data=[{
   'city':'北京','temperature':100},{
   'city':'上海','temperature':60},{
   'city':'深圳','temperature':30}]
    transfer=DictVectorizer(sparse=False)
    print('data:\n', data, type(data))
    #data类型:<class 'list'>
    data_new=transfer.fit_transform(data)
            #transform后 FASLE时出现的情况:非稀疏矩阵——one hot编码///不写时默认为稀疏矩阵
            # [[0.   1.   0. 100.]
            #  [1.   0.   0.  60.]
            # [0.  0. 1.30.]] < class 'numpy.ndarray'>
            #numpy不能用.toarray()方法:  print("data_new:\n", data_new.toarray(), type(data_new))

            # true时出现的情况:稀疏矩阵
          #  data_new1:
        #     (0, 1)1.0
        #   (0, 3) 100.0
        #   (1, 0) 1.0
        #  (1, 3)  60.0
        #  (2, 2) 1.0
        # (2, 3) 30.0 < class 'scipy.sparse.csr.csr_matrix'>
         # 能用.toarray()方法:  print("data_new:\n", data_new.toarray(), type(data_new))


    print('data_new:\n',data_new.toarray(),type(data_new))
    print('特征名字:\n',transfer.get_feature_names())
    return None
  • 稀疏矩阵sparse
    将非零值 按位置表示出来
    节省内存 - 提高加载效率

  • 应用场景:
    1)pclass, sex 数据集当中类别特征比较多
    1、将数据集的特征-》字典类型
    2、DictVectorizer转换
    2)本身拿到的数据就是字典类型

  • 特征当中存在类别信息的我们都会做one-hot编码处理

2.3文本特征提取

  • 对文本数据进行特征值化,
  • 方法1:CountVectorizer
    统计每个样本特征词出现的个数
    stop_words停用的词表
    关键词:在某一个类别的文章中,出现的次数很多,但是在其他类别的文章当中出现很少
  • 方法2:TfidfVectorizer
    TF-IDF - 重要程度
sklearn.feature_extraction.text.CountVectorizer(stop_words=[])

返回词频矩阵
CountVectorizer.fit_transform(X) X:文本或者包含文本字符串的可迭代对象 返回值:返回sparse矩阵
CountVectorizer.inverse_transform(X) X:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值