python sklearn特征选择mutual_info_regression

问题描述

mutual_info_regression预装n_neighbors=3代码适用于 n_neighbors=3

selector = SelectKBest(mutual_info_regression,k='all').fit(X,y)

n_neighbors=2 中的 mutual_info_regression 的请求?

不工作变体:

selector = SelectKBest(mutual_info_regression,y,**{'n_neighbors':2})
selector = SelectKBest(mutual_info_regression(**{'n_neighbors':2}),y)
selector = SelectKBest(mutual_info_regression(n_neighbors=2),y)
selector = SelectKBest(mutual_info_regression,n_neighbors=2,y)

scoring = make_scorer(mutual_info_regression,greater_is_better=True,n_neighbors = 2)

selector = SelectKBest(scoring,k='all').fit(feat,targ)

解决方法

您可以使用 python 的 partial 函数创建具有非默认值的记分器:

from functools import partial
scorer_function = partial(mutual_info_regression,n_neighbors=2)
selector = SelectKBest(scorer_function,k='all').fit(X,y)