首页 > 解决方案 > sklearn;模型拟合前后超参数值相同

问题描述

我想在拟合前后检查 scikit-learn 模型的超参数值:

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

X, y = make_classification(n_samples=1000, n_features=4, n_informative=2, n_redundant=0)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)

clf = RandomForestClassifier(random_state=0)

print(clf.get_params())
clf.fit(X_train, y_train)
print(clf.get_params())

它在模型拟合之前和之后给了我相同的值。我认为模型拟合后的超参数应该不同。难道我做错了什么?

另外,当我想使用模型进行预测时,模型用于预测的超参数是什么?

谢谢您的帮助。

标签: pythonscikit-learnhyperparametersmodel-fitting

解决方案


超参数是学习算法(示例中为RandomForestClassifier)配置的一部分,在训练过程中不会改变。get_params() 的输出结果显示了模型的超参数配置。模型的内部状态(即构成随机森林的决策树中的节点定义)在模型训练期间会发生变化,但 get_params() 不提供该信息。


推荐阅读