【发布时间】:2020-10-05 13:01:14
【问题描述】:
下面有一些简单的岭回归算法的代码。该程序的重点是通过计算每个 alpha 的交叉 val 分数来检查哪个 alpha 值最适合在此回归中使用。我不明白的是它如何在 for 部分中选择 alpha?我的意思是,我知道它会遍历该日志空间中的每个 alpha,但是 ridge = Ridge(normalize=True) 没有任何 alpha 参数,所以为什么不每次都使用默认参数(alpha=1.0) ?在 cross_val_score 函数中,它只是调用岭回归器,根本没有指定前面定义的 ridge.alpha 变量。
alpha_space = np.logspace(-4, 0, 50)
ridge_scores = []
ridge_scores_std = []
#Create a ridge regressor: ridge
ridge = Ridge(normalize=True)
# Compute scores over range of alphas
for alpha in alpha_space:
# Specify the alpha value to use: ridge.alpha
ridge.alpha = alpha
# Perform 10-fold CV: ridge_cv_scores
ridge_cv_scores = cross_val_score(ridge,X,y,cv=10)
# Append the mean of ridge_cv_scores to ridge_scores
ridge_scores.append(np.mean(ridge_cv_scores))
# Append the std of ridge_cv_scores to ridge_scores_std
ridge_scores_std.append(np.std(ridge_cv_scores))
【问题讨论】:
-
这应该是一个工作代码吗?你能正确设置缩进吗?但是是的,您需要输入 alpha
-
是的,这段代码在我编译和运行它时确实有效,它给不同的 alpha 提供了不同的结果,但我不明白如何。
标签: python function regression