我使用机器学习算法,例如类似于此的决策树分类器:
from sklearn import tree
X = [[0, 0], [1, 1]]
Y = [0, 1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
clf.predict([[2., 2.]])
如何找出使用了哪些参数?
我使用机器学习算法,例如类似于此的决策树分类器:
from sklearn import tree
X = [[0, 0], [1, 1]]
Y = [0, 1]
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, Y)
clf.predict([[2., 2.]])
如何找出使用了哪些参数?
clf定义后输入即可;在您的情况下,它给出:
clf
# result:
DecisionTreeClassifier(ccp_alpha=0.0, class_weight=None, criterion='gini',
max_depth=None, max_features=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort='deprecated',
random_state=None, splitter='best')
即所有参数及其默认值,因为您没有在定义中指定任何内容clf = tree.DecisionTreeClassifier()。
您可以通过类似的方式获取 scikit-learn 中任何算法的参数。
使用 scikit-learn v0.22.2 测试
更新
正如 Ben Reiniger 在下面的评论中正确指出的那样,从 scikit-learn v0.23 开始,我们需要先设置显示配置才能使其正常工作:
sklearn.set_config(print_changed_only=False)
您还可以使用get_params为(我相信)所有 scikit-learn 模型定义的方法,因为它们继承自sklearn.base.BaseEstimator. 这使得创建某些模型的新实例变得非常容易(尽管您也可以使用sklearn.base.clone),或者保存参数以供以后评估。
>>> clf.get_params()
{'ccp_alpha': 0.0, 'class_weight': None, 'criterion': 'gini', 'max_depth': None, 'max_features': None, 'max_leaf_nodes': None, 'min_impurity_decrease': 0.0, 'min_impurity_split': None, 'min_samples_leaf': 1, 'min_samples_split': 2, 'min_weight_fraction_leaf': 0.0, 'presort': 'deprecated', 'random_state': None, 'splitter': 'best'}