我是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:类数组,shape=[n_samples,n_features],它是训练输入样本。y:类似数组,shape=[n_samples]是目标值(分类中的类标签,回归中的实数)。
fit_transform(X,y=无,**fit_params)[source]
因此,为了解决您的问题,如果标签存储在训练/测试数据的最后一列,即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
这个代码对我有效。