Datawhale 集成学习 Task04:掌握回归模型的评估以及超参数调优

先来撸代码:

import numpy as np
from sklearn import datasets
from sklearn.svm import SVR
from sklearn.pipeline import Pipeline
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler 
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import uniform

# 导入波士顿房价的数据集
boston = datasets.load_boston()
X = boston.data
y = boston.target
features = boston.feature_names

# 无调参的SVR,及10交叉验证
pipe_svr = make_pipeline(StandardScaler(),SVR())
score1 = cross_val_score(estimator=pipe_svr,X=X,y=y,scoring='r2',cv=10)
print("CV accuracy: %.3f +/- %.3f" % (np.mean(score1),np.std(score1)))

# 网格调参
pipe_SVR = Pipeline([("StandardScaler",StandardScaler()),("svr",SVR())])
param_range = [0.0001,0.001,0.01,0.1,1.0,10.0,100.0,1000.0]
param_grid = [{"svr__C":param_range,"svr__kernel":["linear"]},{"svr__C":param_range,"svr__gamma":param_range,"svr__kernel":["rbf"]}]
gs = GridSearchCV(estimator=pipe_SVR,param_grid=param_grid,scoring='r2',cv=10)
gs = gs.fit(X,y)	
print("best grid score is:",gs.best_score_)
print("best grid combination is:",gs.best_params_)

# 随机调参
pipe_SVR = Pipeline([("StandardScaler",StandardScaler()),("svr",SVR())])
distributions = dict(svr__C=uniform(loc=1.0,scale=4),svr__kernel=["linear","rbf"],svr__gamma=uniform(loc=0,scale=4))
rs = RandomizedSearchCV(estimator=pipe_SVR,param_distributions=distributions,scoring='r2',cv=10)
rs = rs.fit(X,y)
print("best random score is:",rs.best_score_)
print("best random combination is:",rs.best_params_)

参数超参数的区别:
模型参数就是模型内部的配置变量,可以用数据估计它的值。
具体来讲,模型参数有以下特征:
(1)进行模型预测时需要模型参数
(2)模型参数值可以定义模型功能
(3)模型参数用数据估计或数据学习得到
(4)模型参数一般不由实践者手动设置
(5)模型参数通常作为学习模型的一部分保存
通常使用优化算法估计模型参数,优化算法是对参数的可能值进行的一种有效搜索。
模型参数的一些例子包括:
(1)人工神经网络中的权重
(2)支持向量机中的支持向量
(3)线性回归或逻辑回归中的系数

模型超参数是模型外部的配置,其值不能从数据估计得到。
具体特征有:
(1)模型超参数常应用于估计模型参数的过程中
(2)模型超参数通常由实践者直接指定
(3)模型超参数通常可以使用启发式方法来设置
(4)模型超参数通常根据给定的预测建模问题而调整
怎样得到它的最优值: 对于给定的问题,我们无法知道模型超参数的最优值。但我们可以使用经验法则来探寻其最优值,或复制用于其他问题的值,也可以通过反复试验的方法。
模型超参数的一些例子包括:
(1)训练神经网络的学习速率
(2)支持向量机的C和sigma超参数
(2)k邻域中的k

二者的联系:
当针对特定问题调整机器学习算法时,例如在使用网格搜索或随机搜索时,你将调整模型或命令的超参数,以发现一个可以使模型预测最熟练的模型参数。许多模型中重要的参数无法直接从数据中估计得到。例如,在K近邻分类模型中…这种类型的模型参数被称为调整参数,因为没有可用的分析公式来为其计算一个合适的值。

两者的区别:
模型超参数通常被称为模型参数,这种叫法很容易让人产生误解。解决这个问题的一个很好的经验法则如下:如果你必须手动指定一个“模型参数”,那么它可能就是一个模型超参数。

总结:
总而言之,模型参数是从数据中自动估计的,而模型超参数是手动设置的,并用于估计模型参数的过程。
参考博客:机器学习中参数和超参数的区别

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值