我是 scikit-learn 和 python 的初学者,我使用 feature_selection 包中的 SelectKBest 尝试了这段看起来非常简单的代码。
train = pd.read_csv("train.csv")
test = pd.read_csv('test.csv')
train = SelectKBest(chi2, k=120).fit_transform(train)
print train.shape
但我遇到了这个错误,我真的不知道如何解决!!
TypeError: fit() takes exactly 3 arguments (2 given)
你们能帮我解决一下吗:(?
最佳答案
问题是它需要 3 个参数。
适合(X,Y) X : array-like, shape = [n_samples, n_features] 这是训练输入样本。 y : array-like, shape = [n_samples] 是目标值(分类中的类标签,回归中的实数)。
fit_transform(X,y=None, **fit_params)[来源]
因此,要解决您的问题,如果标签存储在训练/测试数据的最后一列中,即 train.ix[:,-1],您可以这样做:
train = pd.read_csv("train.csv")
test = pd.read_csv('test.csv')
model = SelectKBest(chi2, k=120).fit_transform(train.ix[:,:-1],train.ix[:,-1])
print train.shape
这段代码对我有用。
关于python - 使用 SelectKBest 的问题 [scikit-learn],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36755737/