zoukankan      html  css  js  c++  java
  • 对分类特征做编码

    作用:将分类型数据转换成连续的数值型变量。即是对不连续的数字或者文本进行编号。

    import pandas as pd
    #先创建一个数据框(包含缺失值)
    df = pd.DataFrame({'auth':['spring','summer','fall','spring'],
                       'sply':['a','c','a','b'],
                       'name':['zhangsan','lisi','xiaohua','xiaomei']})
    df
    Out[124]: 
         auth sply      name
    0  spring    a  zhangsan
    1  summer    c      lisi
    2    fall    a   xiaohua
    3  spring    b   xiaomei
    
    categorical_name = ['auth','sply','name']
    
    #定义一个循环函数,处理分类型特征,进行标签编码
    def categorical_preprocessing(dataset,categorical_feature):
        '''
        param:
            dataset:DataFrame,输入的数据集
            categorical_feature:list,分类特征列名
        '''
        for feature in categorical_feature:
            set_feature = set(dataset[feature])#将特征映射到集合中
            dic_feature = {}
            for i ,feat in enumerate(set_feature):
                dic_feature[feat] = i
            dataset[feature] = dataset[feature].map(dic_feature)
        dataset = pd.get_dummies(dataset,columns=categorical_feature)
    return dataset #处理分类特征编码 dataset = categorical_preprocessing(df,categorical_name)
    #分类变量编码结果
    dataset
    Out[74]: 
       auth_0  auth_1  auth_2  sply_0   ...    name_0  name_1  name_2  name_3
    0       0       1       0       0   ...         1       0       0       0
    1       0       0       1       0   ...         0       0       1       0
    2       1       0       0       0   ...         0       0       0       1
    3       0       1       0       1   ...         0       1       0       0

    补充:

    标签编码完成后一般都需要再进行一次one-hot编码,变成只包含0和1的数据。

    如果变量含有顺序,如:优、良、差。可以省略one-hot编码。

  • 相关阅读:
    页面滚动
    tcbRouter
    http缓存策略
    Ajax跨域
    tcp 3次握手和4次挥手
    http头字段
    http工作原理
    一个下载Windows镜像的地址
    安装MySQL-8.0.13
    配置Java,jdk环境变量
  • 原文地址:https://www.cnblogs.com/Christina-Notebook/p/10173735.html
Copyright © 2011-2022 走看看