Issue with imblearn: SMOTENC " TypeError: '<' not supported between instances of 'int' and 'str"'
Issue with imblearn: SMOTENC " TypeError: '<' not supported between instances of 'int' and 'str"'
我正在使用 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)
TypeError: 'int' 和 'str'
实例之间不支持“<”
我能理解这是变量类型的问题,但我不知道如何解决这个错误。
我已经尝试过:
- 替换所有缺失值
- 修复所有可能的变量类型指定错误
其他有用信息:
数据集的前 6 个变量是字符串,其他是双精度或整数。
请询问您是否需要更多信息。
提前致谢。
如果你能打印出df_x和df_y的头就好了。
从这一行我可以推断出什么
df_y = df_train.drop(["Target_Variable_SX_FASCIA_1"], axis=1)
您实际上是在放弃目标变量并将预测变量保留在 df_y 中。
我的假设是“Target_Variable_SX_FASCIA_1”是目标变量的列名,所以它应该是
df_y = df_train["Target_Variable_SX_FASCIA_1"].values
我正在使用 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)
TypeError: 'int' 和 'str'
实例之间不支持“<”我能理解这是变量类型的问题,但我不知道如何解决这个错误。 我已经尝试过:
- 替换所有缺失值
- 修复所有可能的变量类型指定错误
其他有用信息: 数据集的前 6 个变量是字符串,其他是双精度或整数。
请询问您是否需要更多信息。
提前致谢。
如果你能打印出df_x和df_y的头就好了。
从这一行我可以推断出什么
df_y = df_train.drop(["Target_Variable_SX_FASCIA_1"], axis=1)
您实际上是在放弃目标变量并将预测变量保留在 df_y 中。 我的假设是“Target_Variable_SX_FASCIA_1”是目标变量的列名,所以它应该是
df_y = df_train["Target_Variable_SX_FASCIA_1"].values