机器学习特征工程

特征工程

字典特征数据抽取

作用:对字典数据进行特征值化

DictVectorizer语法

在这里插入图片描述

eg:

from sklearn.feature_extraction import DictVectorizer

X = [{'city':'北京','temperature':100},
    {'city':'上海','temperature':60},
    {'city':'深圳','temperature':30}]
def dictvec():
    dict = DictVectorizer(sparse=False) #实例化了一个对象

    data = dict.fit_transform(X)
    print(dict.get_feature_names())
    print(data)

    return None


if __name__ == '__main__':
    dictvec()
结果:

在这里插入图片描述

分析:

使用dict.dit_transform(X) 得到的是一个ndarray类型的二维数组 用get_feature_names()方法得到的列表作用为对照dit_transform(X) 符合要求的为1 不符合要求的为0 前提是

 dict = DictVectorizer(sparse=False)

这里面的sparse 要改为False (默认为True)

文本特征抽取

作用:对文本数据进行特征值化

CountVectorizer语法

def countvec():

    cv = CountVectorizer()

    data = cv.fit_transform(["life is short,i like python","life is too long,i dislike python"])
    print(cv.get_feature_names())

    print(data.toarray())
    return None

**问题:**如果是中文无法进行分词

解决方案:使用库jieba中的cut方法

def cutword():
    cn1 = jieba.cut("人生苦短,我用Python")
    cn2 = jieba.cut("人生漫长,我不用Python")
    # print(cn1)
    content1 = list(cn1)
    content2 = list(cn2)
    # print(content2)
    c1 = " ".join(content1)
    c2 = " ".join(content2)
    # print(c2)
    return c1,c2

def hanzivec():
    cv = CountVectorizer()
    c1, c2 = cutword()
    data = cv.fit_transform([c1, c2])
    print(cv.get_feature_names())

    print(data.toarray())
    return None
结果为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HDwJbLEQ-1614591237850)(D:%5CMarkDown%5Cimages%5Cimage-20210228233116117.png)]

tfidfVectorizer语法

为什么需要TfidfVectorizer?

:分类机器学习算法的重要依据

代码实现:
def cutword():
    cn1 = jieba.cut("人生苦短,我用Python")
    cn2 = jieba.cut("人生漫长,我不用Python")
    # print(cn1)
    content1 = list(cn1)
    content2 = list(cn2)
    # print(content2)
    c1 = " ".join(content1)
    c2 = " ".join(content2)
    # print(c2)
    return c1,c2

def tfvec():
    tf = TfidfVectorizer()
    c1, c2 = cutword()
    data = tf.fit_transform([c1, c2])
    print(tf.get_feature_names())

    print(data.toarray())
    return None
结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZEn4mco4-1614591237851)(D:%5CMarkDown%5Cimages%5Cimage-20210228234223004.png)]

结果表明:tf方法可以测试出某一个词组的概率,概率即为重要性,用该词作为该文章的关键词。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值