Parameters Scikit学习模型中参数数量的计数方法
据我所知,在Scikit学习模型中没有返回参数总数(权重)的通用属性或方法 我提出了这个解决方案,但不确定它是否在所有情况下都有效Parameters Scikit学习模型中参数数量的计数方法,parameters,scikit-learn,count,neural-network,Parameters,Scikit Learn,Count,Neural Network,据我所知,在Scikit学习模型中没有返回参数总数(权重)的通用属性或方法 我提出了这个解决方案,但不确定它是否在所有情况下都有效 def n_params(model): """Return total number of parameters in a Scikit-Learn model. This works for the following model types: - sklearn.neural_network.MLPClassifier
def n_params(model):
"""Return total number of parameters in a
Scikit-Learn model.
This works for the following model types:
- sklearn.neural_network.MLPClassifier
- sklearn.neural_network.MLPRegressor
- sklearn.linear_model.LinearRegression
- and maybe some others
"""
return (sum([a.size for a in model.coefs_]) +
sum([a.size for a in model.intercepts_]))
我是否遗漏了更明显/更可靠的内容
当然,一个问题是这个估计是否应该包括“超参数”,但假设我只对权重感兴趣
对于信息,model.get_params()
返回如下内容:
{'activation': 'relu',
'alpha': 0.0001,
'batch_size': 'auto',
'beta_1': 0.9,
'beta_2': 0.999,
'early_stopping': False,
'epsilon': 1e-08,
'hidden_layer_sizes': (100,),
'learning_rate': 'constant',
'learning_rate_init': 0.001,
'max_iter': 200,
'momentum': 0.9,
'n_iter_no_change': 10,
'nesterovs_momentum': True,
'power_t': 0.5,
'random_state': None,
'shuffle': True,
'solver': 'adam',
'tol': 0.0001,
'validation_fraction': 0.1,
'verbose': False,
'warm_start': False}