机器学习处理离散值方法之 95分位数盖帽法

def train_add_hat(x,features):
    import numpy as np
    import pandas as pd
    df=x.copy()
    q95_dict={}
    for col in features:
        q95=np.percentile(df[col],95)
        q95_dict[col]=q95
        b=np.array(df[col])
        c=list(map(lambda x:q95 if x>95 else x,b))
        df=df.drop(col,axis=1)
        df[col]=c
    return df,q95_dict

#用同一标准处理测试集
def add_hat(x,features,q95_dict):
    import numpy as np
    import pandas as pd
    df = x.copy()
    len_d=len(df.index)
    for col in features:
        q95=q95_dict[col]
        b=np.array(df[col])
        c=list(map(lambda x:q95 if x>q95 else x,b))
        df=df.drop(col,axis=1)
        df[col]=c
    return df

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习处理离散方法有以下几种: 1. 独热编码(One-Hot Encoding) 独热编码是将离散转化为向量的方法,可以将每个都表示为一个唯一的向量。例如,如果有一个属性有三个取:“男”、“女”和“未知”,可以将它们转化为三个向量[1,0,0]、[0,1,0]和[0,0,1]。独热编码的优点是简单易懂,适用于分类变量的处理,但是会增加特征的维度,可能会导致维数灾难。 2. 二进制编码(Binary Encoding) 二进制编码是将离散转化为二进制数的方法,可以将每个表示为一组二进制数。例如,如果有一个属性有三个取:“男”、“女”和“未知”,可以将它们转化为三个二进制数001、010和100。二进制编码的优点是可以减少特征的维度,但是也可能会增加特征的数量。 3. 有序编码(Ordinal Encoding) 有序编码是将离散转化为有序数的方法,可以将每个表示为一个数。例如,如果有一个属性有三个取:“男”、“女”和“未知”,可以将它们分别表示为1、2和3。有序编码的优点是可以保留特征之间的顺序关系,但是可能会导致算基于编码的大小而错误地假设它们之间的距离是相等的。 4. 词袋模型(Bag-of-Words) 词袋模型是将离散转化为文本的方法,可以将每个表示为一个词语。例如,如果有一个属性有三个取:“男”、“女”和“未知”,可以将它们表示为“male”、“female”和“unknown”。词袋模型的优点是可以将离散转化为连续,但是不能保留特征之间的顺序关系。 综上所述,不同的方法适用于不同的场景,独热编码和二进制编码适用于分类变量的处理,有序编码适用于有序变量的处理,词袋模型适用于文本的处理。需要根据具体的问题和数据选择合适的方法进行特征处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值