Как преобразовать код из этого руководства https://towardsdatascience.com/target-e ... 9a7bcb1a53
Код: Выделить всё
import category_encoders as ce
def target_encode_multiclass(X,y): #X,y are pandas df and series
y=y.astype(str) #convert to string to onehot encode
enc=ce.OneHotEncoder().fit(y)
y_onehot=enc.transform(y)
class_names=y_onehot.columns #names of onehot encoded columns
X_obj=X.select_dtypes('object') #separate categorical columns
X=X.select_dtypes(exclude='object')
for class_ in class_names:
enc=ce.TargetEncoder()
enc.fit(X_obj,y_onehot[class_]) #convert all categorical
temp=enc.transform(X_obj) #columns for class_
temp.columns=[str(x)+'_'+str(class_) for x in temp.columns]
X=pd.concat([X,temp],axis=1) #add to original dataset
return X
Currently have
Код: Выделить всё
from sklearn.preprocessing import OneHotEncoder, TargetEncoder
def target_encode_multiclass(X,y):
y=y.astype(str)
enc=OneHotEncoder().fit(y)
y_onehot=enc.transform(y)
class_names=y.columns
X_obj=X.select_dtypes('object')
X=X.select_dtypes(exclude='object')
for class_ in class_names:
enc=TargetEncoder()
enc.fit(X_obj, y_onehot[class_])
temp=enc.transform(X_obj)
temp.columns=[str(x)+'_'+str(class_) for x in temp.columns]
X=pd.concat([X,temp],axis=1)
return X
Источник: https://stackoverflow.com/questions/781 ... ulti-class