IMBRearn:SMOTENC“TypeError:”与“int”和“str”实例之间不支持“<”的问题

2024-09-29 06:26:18 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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)

我在第行遇到以下错误:

X_resampled, Y_resampled = smote_nc.fit_resample(df_X, df_Y)

类型错误:'<;'“int”和“str”实例之间不支持此选项。

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

  1. 替换所有缺少的值
  2. 修复所有可能的变量类型错误指定

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

问问你是否需要进一步的信息

提前谢谢


Tags: columnstonametesttargetdf错误table
1条回答
网友
1楼 · 发布于 2024-09-29 06:26:18

如果您可以打印df_x和df_y的打印头,这将非常有用

从这一行我能推断出什么

df_y = df_train.drop(["Target_Variable_SX_FASCIA_1"], axis=1)

实际上,您删除了目标变量,并将预测值保留在df_y中。 我的假设是“Target_Variable_SX_pancial_1”是目标变量的列名,因此应该是

df_y = df_train["Target_Variable_SX_FASCIA_1"].values

相关问题 更多 >