1
아래 코드에서 다음 오류가 발생하지만 내 매개 변수가 유효하지 않은 이유를 알 수 없습니다. SelectFromModel
은 적합 및 변형 기능을 가진 파이프 라인의 유효한 입력입니다. sklearn의 파이프 라인에서이 매개 변수가 유효하지 않은 이유는 무엇입니까?
from sklearn.preprocessing import PolynomialFeatures, StandardScaler
from sklearn.linear_model import LassoCV, LinearRegression
from sklearn.feature_selection import SelectFromModel
from sklearn.pipeline import Pipeline
poly = PolynomialFeatures()
std = StandardScaler()
ls = LassoCV(cv=10)
sfm = SelectFromModel(estimator=ls)
lr = LinearRegression()
pipe_lr = Pipeline([('poly', poly),
('std', std),
('sfm', sfm),
('lr', lr)])
param_range_degree = [2, 3]
param_range_threshold = [0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5]
param_grid_lr = [{'poly__degree': param_range_degree,
'sfm__threshold': param_range_threshold}]
내가 실제로 수행하는 다음과 같은 출력을 얻을 pipe_lr.get_params().keys()
을 실행
ValueError: Invalid parameter sfm_threshold for estimator Pipeline.
Check the list of available parameters with
`estimator.get_params().keys()`
내가 복사 그대로 정확하게 붙여있는
sfm__threshold
을 포함한다.
['std__with_mean',
'sfm__estimator__precompute',
'lr__n_jobs',
'sfm__prefit',
'poly',
'sfm__threshold',
'sfm__estimator__cv',
'sfm__estimator__max_iter',
'sfm__estimator__positive',
'sfm__estimator__n_alphas',
'std__with_std',
'sfm__estimator__random_state',
'std__copy',
'lr__normalize',
'sfm__estimator__copy_X',
'lr',
'sfm__estimator__n_jobs',
'poly__interaction_only',
'sfm__estimator__fit_intercept',
'sfm__estimator__tol',
'sfm__estimator',
'sfm__estimator__verbose',
'sfm',
'sfm__estimator__normalize',
'std',
'sfm__estimator__selection',
'poly__degree',
'lr__copy_X',
'sfm__estimator__alphas',
'lr__fit_intercept',
'steps',
'poly__include_bias',
'sfm__estimator__eps']
문제에 대해 * [최소, 완전하며 검증 가능한 예] (// stackoverflow.com/help/mcve)*를 제공해 주시겠습니까? –
괄호를 함수에 추가하면 배정을 통해 전달 된 인스턴스 유형이 함수 유형이 아닌 함수의 반환 유형이됩니다. 내 생각 엔 파이프 라인이 함수가 아닌 함수를 전달하는 매개 변수로 함수를 사용하려고합니다. – kpie
코드를 실행하는 동안 오류가 없습니다. 파이썬 2 또는 3을 사용하고 있습니까? – acknowledge