调研Pycaret特征工程

本文探讨了Pycaret库在特征工程中的应用,重点在于数据类型的自动推断与转换。内容包括将bool类型转换为category,识别并处理int64和float64中的ID列,解决因NaN导致的int列转成float问题,以及根据基数将int64转换为float64或类别变量,以及针对基数为2的float64变量进行独热编码(OHE)。
摘要由CSDN通过智能技术生成

DataTypes_Auto_infer

bool类型转category
查int64和float64中的id列
处理这种情况:pandas把int的列转成了float,因为nan
对于int64的的变量,视基数情况转成float64或类别变量
float64,如果基数=2,转OHE

    # if there are inf or -inf then replace them with NaN
    data.replace([np.inf,-np.inf],np.NaN,inplace=True)
    #remove columns with duplicate name 
    data = data.loc[:,~data.columns.duplicated()]
from pyod.models.knn import KNN
from pyod.models.iforest import IForest
from pyod.models.pca import PCA as PCA_od
# Outlier
class Outlier(BaseEstimator,TransformerMixin):
  '''
    - Removes outlier using ABOD,KNN,IFO,PCA & HOBS using hard voting
    - Only takes numerical / One Hot Encoded features
  '''

  def __init__(self,target,contamination=.20, random_state=42, methods=['knn','iso','pca']):
    self.target = target
    self.contamination = contamination
    self.random_state = random_state
    self.methods = methods

    return(None)

  def fit(self,data,y=None):
    #self.abod.fit(data)
    return(None)

  def transform(self,data,y=None):
    return(data)

  def fit_transform(self,dataset,y=None):

    # dummify if there are any obects 
    if len(dataset.select_dtypes(include='object').columns)>0:
      self.dummy = Dummify(self.target)
      data = self.dummy.fit_transform(dataset)
    else:
      data = dataset.copy()

    # reduce data size for faster processing
    # try:
    #   data = data.astype('float16')
    # except:
    #   None

    if 'knn' in self.methods:
      self.knn = KNN
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值