我是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)
请你帮我解决一下:(?
答案 0 :(得分:1)
问题在于它需要3个参数。
适合(X,y) X:类似数组,shape = [n_samples,n_features],它是训练输入样本。 y:array-like,shape = [n_samples]是目标值(分类中的类标签,回归中的实数)。
fit_transform(X,y =无,** 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
这段代码对我有用。