首页 - 币安资讯 > lasso(lasso怎么读)

lasso(lasso怎么读)

发布于:2022-12-17 作者:沫沫 阅读:14

今天给各位分享lasso的知识,其中也会对lasso怎么读进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

lasso可以代替单因素分析吗?

可以的。如果不是进行组学分析,或者是自变量个数不是非常多,这时候没必要进行lasso回归。lasso回归就比如自变量存在共线性。比如基因组学的基因表达水平,蛋白表达里的蛋白表达水平,这里面存在很多共线水平,这时候就比较适合lasso回归。可以起到筛选自变量的目的。但是如果只是普通的临床数据,自变量个数比较少,这时候就不建议用lasso回归,一般这种情况,用单因素分析就可以了。

5、LASSO模型选择:交叉验证-AIC-BIC

5、LASSO模型选择:交叉验证-AIC-BIC

import time

import numpy as np

import matplotlib.pyplot as plt

from sklearn.linear_model import LassoCV, LassoLarsCV, LassoLarsIC

from sklearn import datasets

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.rcParams['axes.unicode_minus'] = False

# 这是为了在执行np.log10时避免被零除

EPSILON = 1e-4

X, y = datasets.load_diabetes(return_X_y=True)

rng = np.random.RandomState(42)

X = np.c_[X, rng.randn(X.shape[0], 14)]  # 增加一些不好的特性

# 按照Lars的方法对数据进行规范化,以便进行比较

X /= np.sqrt(np.sum(X ** 2, axis=0))

# LassoLarsIC: 基于BIC/AIC准则的最小角回归

model_bic = LassoLarsIC(criterion='bic')

t1 = time.time()

model_bic.fit(X, y)

t_bic = time.time() - t1

alpha_bic_ = model_bic.alpha_

model_aic = LassoLarsIC(criterion='aic')

model_aic.fit(X, y)

alpha_aic_ = model_aic.alpha_

def plot_ic_criterion(model, name, color):

    criterion_ = model.criterion_

    plt.semilogx(model.alphas_ + EPSILON, criterion_, '--', color=color,

                linewidth=3, label='%s criterion' % name)

    plt.axvline(model.alpha_ + EPSILON, color=color, linewidth=3,

                label='alpha: %s estimate' % name)

    plt.xlabel(r'$\alpha$')

    plt.ylabel('criterion')

plt.figure()

plot_ic_criterion(model_aic, 'AIC', 'b')

plot_ic_criterion(model_bic, 'BIC', 'r')

plt.legend()

plt.title('信息-模型选择的标准 (训练时间: %.3fs)'

          % t_bic)

# LassoCV: 坐标下降

# 计算路径

print("Computing regularization path using the coordinate descent lasso...")

t1 = time.time()

model = LassoCV(cv=20).fit(X, y)

t_lasso_cv = time.time() - t1

# 显示结果

plt.figure()

ymin, ymax = 2300, 3800

plt.semilogx(model.alphas_ + EPSILON, model.mse_path_, ':')

plt.plot(model.alphas_ + EPSILON, model.mse_path_.mean(axis=-1), 'k',

        label='Average across the folds', linewidth=2)

plt.axvline(model.alpha_ + EPSILON, linestyle='--', color='k',

            label='alpha: CV estimate')

plt.legend()

plt.xlabel(r'$\alpha$')

plt.ylabel('Mean square error')

plt.title('每个折叠上的均方误差:坐标下降'

          '(训练时间 : %.2fs)' % t_lasso_cv)

plt.axis('tight')

plt.ylim(ymin, ymax)

# LassoLarsCV:最小角回归

# 计算路径

print("Computing regularization path using the Lars lasso...")

t1 = time.time()

model = LassoLarsCV(cv=20).fit(X, y)

t_lasso_lars_cv = time.time() - t1

# 显示结果

plt.figure()

plt.semilogx(model.cv_alphas_ + EPSILON, model.mse_path_, ':')

plt.semilogx(model.cv_alphas_ + EPSILON, model.mse_path_.mean(axis=-1), 'k',

            label='Average across the folds', linewidth=2)

plt.axvline(model.alpha_, linestyle='--', color='k',

            label='alpha CV')

plt.legend()

plt.xlabel(r'$\alpha$')

plt.ylabel('Mean square error')

plt.title('每折均方误差: Lars (训练时间 : %.2fs)'

          % t_lasso_lars_cv)

plt.axis('tight')

plt.ylim(ymin, ymax)

plt.show()

lasso为什么每次结果不一样

因为 cv.glmnet() 中的数据分折情况改变了,按交叉验证误差最小选出的 lambda 就会有所不同。所以相同的种子应该得到相同的结果,不同的种子应该得到不同的结果。如果只是想让结果可重复,使用一个固定的种子就行了。

如果说考虑不同种子可以得到很多不同的模型,最后在大样本下可能总会有那么一些特征总被稳定选择的问题,那就是 stability selection 了。

方舟生存进化手机版lasso有什么用?

Lasso就是就是套马索,这种绳索只能在庞马拥有马鞍的情况下,在骑乘的状态下使用。可以套人和小型动物,例如迅猛龙之类的

lasso的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于lasso怎么读、lasso的信息别忘了在本站进行查找喔。

二维码

扫一扫关注我们

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件至举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签: #lasso

相关文章

发表评论