首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SMOTENC“TypeError:‘'int’和‘str’的实例之间不支持

SMOTENC“TypeError:‘'int’和‘str’的实例之间不支持
EN

Stack Overflow用户
提问于 2021-03-17 17:23:53
回答 1查看 271关注 0票数 0

我用SMOTENC来解决一个不平衡的分类问题。

代码语言:javascript
复制
df_train, df_test = train_test_split(input_table_1_df, test_size=0.25, stratify=input_table_1_df["Target_Variable_SX_FASCIA_1"])
    
                  ###### SMOTE ######
    # Create features table and target table
    df_x = df_train.loc[ : , df_train.columns != "Target_Variable_SX_FASCIA_1"] 
    df_y = df_train.drop(["Target_Variable_SX_FASCIA_1"], axis=1)
    
    # From pandas to numpy arrays
    from imblearn.over_sampling import SMOTENC
    
    df_X=df_x.to_numpy()
    df_Y=df_y.to_numpy()
    
    column_name_x=list(df_x.columns) 
    column_name_y=list(df_y.columns) 
    
    # Resampling
    smote_nc = SMOTENC(categorical_features=[0,1,2,3,4,5], random_state=0,sampling_strategy=.2)
    X_resampled, Y_resampled = smote_nc.fit_resample(df_X, df_Y)
    X_resampled_df= pd.DataFrame(X_resampled,columns=column_name_x)
    Y_resampled_df= pd.DataFrame(Y_resampled,columns=column_name_y)
    Training_set_Passivi_Fascia_1 = pd.concat([X_resampled_df, Y_resampled_df], axis=1)

我在行中发现了以下错误:

代码语言:javascript
复制
X_resampled, Y_resampled = smote_nc.fit_resample(df_X, df_Y)

TypeError:“int”和“str”的实例之间不支持“<”

我能理解这是一个变量类型的问题,但我不知道如何解决这个错误。我已经试过:

misspecification

  • 替换所有丢失的值

  • 修复所有可能的变量类型

其他有用的信息:数据集的前6个变量是字符串,其他变量是双或整数。

问问你是否需要更多的信息。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-17 18:00:04

如果您可以打印df_x和df_y的头,这将是有帮助的。

从这条线我能推断出

代码语言:javascript
复制
df_y = df_train.drop(["Target_Variable_SX_FASCIA_1"], axis=1)

实际上,您正在删除目标变量,并将预测器保留在df_y中。

代码语言:javascript
复制
df_y = df_train["Target_Variable_SX_FASCIA_1"].values
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66678180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档