zoukankan      html  css  js  c++  java
  • 特征处理:常见数据类型的处理

     

    数值型

    1、统计值max,min,mean,std

    Series.describe(percentiles=[.05, .25, .75, .95])

    2、离散化

    将连续值排序后分成一个个区间,然后进行将列属性当中类别型对待,可以进行one-hot编码

    在pandas中pd.cut(arr, n)可以将arr进行n等分,也可以进行不均等切分,使用pd.qcut()

    为何这样处理:用户购买的商品价格可能只在某一个固定小区间,与其他区间所成的比例不同

    离散化可以带来一些非线性的特征

    离散化的方法:

    1)等宽法

    2)等频法

    3)基于聚类分析的方法

    3、幅度调整

    一般在最后处理,将数值幅度调整到[0,1]

    类别型

    1、one-hot编码 又叫哑变量

    可以使用pd.get_dummies()

    2、hash与聚类处理

     

    3、统计每个类别变量下各个target比例,转成数字型

    举例:histogram映射

     

    男生人数3,女生人数2,爱好类别3(决定向量维数是3,分别是散步,足球,看电视剧)

    男生中爱好的类别数2,女生爱好的类别数1

    à男[1/3, 2/3, 0]  女[0, 0, 1],表示有100%的女生喜欢看电视剧,其他爱好的人数为0

    时间型

    既可以看成连续值,也可以看成离散值

    1)连续值

    持续时间(单页浏览时长)

    间隔时间(上次购买/点击离现在的时间)

    2)离散值

    一天中哪个时间段

    一周中星期几

    一年中哪个星期

    一年中哪个季度

    工作日/周末

    文本型

    1、词袋(bag of words

    1)单词以词频表示

    先获得单词列表,然后将每个文档表示成单词表长度的向量

    from sklearn.feature_extraction.txt import CountVectorizer

    #将文本向量表示

    vectorizer = CountVectorizer(min_df=1)

    corpus = [

        'This is the first document.',

        'This is the second second document.',

        'And the third one.',

        'Is this the first document?'  ]

    X = vectorizer.fit_transform(corpus)

    X.shape = (4, 9)  #4表示有4个句子,9表示单词表长度是9                            

    2)单词以ti-idf权重表示

    TF(t) = (词t在当前文中出现次数)/(t在全部文档中出现次数)

    IDF(t) = ln(总文档数/含t 的文档数)

    TF-IDF权重=TF(t)×IDF(t)

    from sklearn.feature_extraction.text import TfidfVectorizer

    vectorizer = TfidfVectorizer(min_df=1)

    vectorizer.fit_transform(corpus)

    3)把词袋中的词扩充到n-gram

    CountVectorizer(ngram_range=(1, 2))

    2word2vec

    word2vec将每个词映射到一个稠密向量

  • 相关阅读:
    显示在页面中间的加载gif
    10个超赞的jQuery图片滑块动画
    【Mybatis】mybatis设置指定列为空值
    【Centos】使用confluent将Mysql数据同步到clickhouse
    SpringBoot Mock测试RequestBody参数并包含其他参数接口
    【Linux】linux使用screen部署spring cloud项目
    Docker中部署jenkins
    【Mysql】Docker连接容器中的mysql 8报错 Public Key Retrieval is not allowed
    【MySQL】Windows下mysql的主从配置笔记
    This Gradle plugin requires a newer IDE able to request IDE model level 3. For Android Studio this means version 3.0+
  • 原文地址:https://www.cnblogs.com/yongfuxue/p/10095372.html
Copyright © 2011-2022 走看看