python - 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())
它在模型拟合之前和之后给了我相同的值。我认为模型拟合后的超参数应该不同。难道我做错了什么?
另外,当我想使用模型进行预测时,模型用于预测的超参数是什么?
谢谢您的帮助。
解决方案
超参数是学习算法(示例中为RandomForestClassifier)配置的一部分,在训练过程中不会改变。get_params() 的输出结果显示了模型的超参数配置。模型的内部状态(即构成随机森林的决策树中的节点定义)在模型训练期间会发生变化,但 get_params() 不提供该信息。
推荐阅读
- angular - 尝试通过 Angular 的 HttpClient 返回的 RxJS 数据进行过滤,该 HttpClient 从数据库表返回数据
- javascript - 无法在 ajax + Rails 中获取评论
- linux - 程序不适用于 crontab(路径问题)
- javascript - 在普通 JavaScript 中从 Node.js 导入类
- asp.net - 替换引导代码后导航栏未固定在顶部
- ruby - 如何大写 attr_accessor
- amazon-web-services - AWS codeBuild:多个输入源到一个输出工件
- python - 查找表类 Python
- excel - 将数据验证列表重置为第一项,方法范围失败
- android - Nexus7 无法加载原生库