python多分类_python – 功能散列多个分类功能(列)

哈希(更新)

假设某些功能中可能会显示新类别,则可以使用散列.只需2个便条:

>注意碰撞的可能性并相应地调整功能的数量

>在您的情况下,您希望单独散列每个功能

一个热矢量

如果每个要素的类别数量固定且不太大,请使用一个热编码.

我建议使用以下两种方法之一:

> sklearn.preprocessing.OneHotEncoder

> pandas.get_dummies

import pandas as pd

from sklearn.compose import ColumnTransformer

from sklearn.feature_extraction import FeatureHasher

from sklearn.preprocessing import OneHotEncoder

df = pd.DataFrame({'feature_1': ['A','G','T','A'],'feature_2': ['cat','dog','elephant','zebra']})

# Approach 0 (Hashing per feature)

n_orig_features = df.shape[1]

hash_vector_size = 6

ct = ColumnTransformer([(f't_{i}',FeatureHasher(n_features=hash_vector_size,input_type='string'),i) for i in range(n_orig_features)])

res_0 = ct.fit_transform(df) # res_0.shape[1] = n_orig_features * hash_vector_size

# Approach 1 (OHV)

res_1 = pd.get_dummies(df)

# Approach 2 (OHV)

res_2 = OneHotEncoder(sparse=False).fit_transform(df)

res_0:

array([[ 0.,0.,1.,-1.,-1.],[ 0.,2.,0.],-2.,-1.]])

res_1:

feature_1_A feature_1_G feature_1_T feature_2_cat feature_2_dog feature_2_elephant feature_2_zebra

0 1 0 0 1 0 0 0

1 0 1 0 0 1 0 0

2 0 0 1 0 0 1 0

3 1 0 0 0 0 0 1

res_2:

array([[1.,[0.,[1.,1.]])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值