我想使用该类FunctionSampler
来imblearn
创建我自己的自定义类来重新采样我的数据集。
我有一个包含每个主题的路径的一维特征系列和一个包含每个主题的标签的标签系列。两者都来自一个pd.DataFrame
. 我知道我必须先重塑特征数组,因为它是一维的。
当我使用该类时RandomUnderSampler
,一切正常,但是,如果我首先将功能和标签都传递给该fit_resample
方法 FunctionSampler
,然后创建一个实例,RandomUnderSampler
然后调用fit_resample
该类,则会收到以下错误:
ValueError:无法将字符串转换为浮点数:'path_1'
这是产生错误的最小示例:
import pandas as pd
from imblearn.under_sampling import RandomUnderSampler
from imblearn import FunctionSampler
# create one dimensional feature and label arrays X and y
# X has to be converted to numpy array and then reshaped.
X = pd.Series(['path_1','path_2','path_3'])
X = X.values.reshape(-1,1)
y = pd.Series([1,0,0])
第一种方法(作品)
rus = RandomUnderSampler()
X_res, y_res = rus.fit_resample(X,y)
第二种方法(无效)
def resample(X, y):
return RandomUnderSampler().fit_resample(X, y)
sampler = FunctionSampler(func=resample)
X_res, y_res = sampler.fit_resample(X, y)
有谁知道这里出了什么问题?似乎fit_resample
方法FunctionSampler
不等于fit_resample
方法RandomUnderSampler
...