我不明白sklearn 中get_params([deep])
可用的方法TruncatedSVD
。有人可以向我解释一下吗?
在此处查看 get_params 的来源:https : //github.com/scikit-learn/scikit-learn/blob/a24c8b46/sklearn/base.py#L213
不仅仅是 TruncatedSVD,基本上所有的 scikit-estimator 都包含这个方法,因为它们都从 BaseEstimator 类继承了这个方法。
Ans 顾名思义,它会给出类中设置的参数的值。在您的情况下,请查看此处的参数列表:http : //scikit-learn.org/stable/modules/generated/sklearn.decomposition.TruncatedSVD.html
n_components : int, default = 2
algorithm : string, default = “randomized"
n_iter : int, optional (default 5)
random_state : int, RandomState instance or None, optional, default = None
tol : float, optional
假设您使用以下代码初始化 TruncatedSVD:
svd = TruncatedSVD(n_components=5, n_iter=7, random_state=42)
输出将是:
{'algorithm': 'randomized',
'n_components': 5,
'n_iter': 7,
'random_state': 42,
'tol': 0.0}
这对于创建对象的克隆很有用,并广泛用于各种 scikit 学习实用程序,如 cross_val_score、GridSearchCV、Pipeline 等。
如果 deep=True,它将只返回内部估计器的参数(如果有)。例如拿这个代码:
from sklearn import svm
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import f_regression
from sklearn.pipeline import Pipeline
anova_filter = SelectKBest(f_regression, k=5)
clf = svm.SVC(kernel='linear')
anova_svm = Pipeline([('anova', anova_filter), ('svc', clf)])
的输出anova_svm.get_params(deep=False)
如下:
{'memory': None,
'steps': [('anova',
SelectKBest(k=5, score_func=<function f_regression at 0x7fb34d50ede8>)),
('svc', SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape='ovr', degree=3, gamma='auto', kernel='linear',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False))]}
下面是代码anova_svm.get_params(True)
:
{'anova': SelectKBest(k=5, score_func=<function f_regression at 0x7fb34d50ede8>),
'anova__k': 5,
'anova__score_func': <function sklearn.feature_selection.univariate_selection.f_regression>,
'memory': None,
'steps': [('anova',
SelectKBest(k=5, score_func=<function f_regression at 0x7fb34d50ede8>)),
('svc', SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape='ovr', degree=3, gamma='auto', kernel='linear',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False))],
'svc': SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape='ovr', degree=3, gamma='auto', kernel='linear',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False),
'svc__C': 1.0,
'svc__cache_size': 200,
'svc__class_weight': None,
'svc__coef0': 0.0,
'svc__decision_function_shape': 'ovr',
'svc__degree': 3,
'svc__gamma': 'auto',
'svc__kernel': 'linear',
'svc__max_iter': -1,
'svc__probability': False,
'svc__random_state': None,
'svc__shrinking': True,
'svc__tol': 0.001,
'svc__verbose': False}
您可以看到现在输出包含 svm 和 selectkbest 的参数值,它们是管道估计器的内部估计器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句