scikit-learn库学习之LassoCV模块

news/2024/9/7 4:47:40 标签: scikit-learn, 学习, python

scikit-learn学习之LassoCV模块

一、简介

LassoCV是scikit-learn库中用于线性回归的模块。它通过交叉验证来选择Lasso回归模型的最佳正则化参数。Lasso回归是一种线性回归,它使用L1正则化来防止过拟合并选择重要特征。

二、语法和参数

python">from sklearn.linear_model import LassoCV

LassoCV(
    eps=1e-3,
    n_alphas=100,
    alphas=None,
    fit_intercept=True,
    normalize='deprecated',
    precompute='auto',
    max_iter=1000,
    tol=1e-4,
    copy_X=True,
    cv=None,
    verbose=False,
    n_jobs=None,
    positive=False,
    random_state=None,
    selection='cyclic'
)
  • eps: float, 默认值为1e-3,计算alphas时的步长。
  • n_alphas: int, 默认值为100,alphas的数量。
  • alphas: array-like, 可选,预定义的alphas值。
  • fit_intercept: boolean, 默认值为True,是否计算截距。
  • normalize: boolean, 默认值为’deprecated’,是否对回归前的特征进行标准化。
  • precompute: ‘auto’ | boolean | array-like, 默认值为’auto’,是否预先计算Gram矩阵。
  • max_iter: int, 默认值为1000,优化算法的最大迭代次数。
  • tol: float, 默认值为1e-4,优化算法的容差。
  • copy_X: boolean, 默认值为True,是否复制输入数据。
  • cv: int, cross-validation generator 或 iterable, 默认值为None,决定交叉验证策略。
  • verbose: boolean 或 int, 默认值为False,控制输出的详细程度。
  • n_jobs: int 或 None, 默认值为None,控制并行数。
  • positive: boolean, 默认值为False,是否强制系数为正。
  • random_state: int, RandomState instance 或 None, 默认值为None,随机数生成器的种子。
  • selection: ‘cyclic’ | ‘random’, 默认值为’cyclic’,选择更新系数的策略。

三、实例

3.1 使用LassoCV进行回归分析
python">import numpy as np
from sklearn.linear_model import LassoCV
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split

# 生成数据集
X, y = make_regression(n_samples=100, n_features=20, noise=0.1, random_state=42)

# 分割数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建LassoCV模型
lasso_cv = LassoCV(cv=5, random_state=42)

# 拟合模型
lasso_cv.fit(X_train, y_train)

# 打印最佳alpha值和测试集上的得分
print("最佳alpha值:", lasso_cv.alpha_)
print("测试集得分:", lasso_cv.score(X_test, y_test))

输出:

最佳alpha值: 0.10983582018417479
测试集得分: 0.9999914836255961
3.2 LassoCV与不同的alpha值进行比较
python">import matplotlib.pyplot as plt
import matplotlib
import numpy as np
from sklearn.linear_model import LassoCV

# 生成不同的alpha值
alphas = np.logspace(-4, -0.5, 30)

# 创建LassoCV模型
lasso_cv = LassoCV(alphas=alphas, cv=5, random_state=42)

# 拟合模型
lasso_cv.fit(X_train, y_train)

# 打印最佳alpha值
print("最佳alpha值:", lasso_cv.alpha_)

# 绘制alpha值与均方误差之间的关系
mse_path = lasso_cv.mse_path_.mean(axis=-1)
plt.plot(lasso_cv.alphas_, mse_path, marker='o')
plt.axvline(lasso_cv.alpha_, linestyle='--', color='r', label='最佳alpha值')
plt.xlabel('alpha')
plt.ylabel('均方误差')
plt.title('LassoCV的均方误差路径')
plt.legend()
plt.show()

输出:

最佳alpha值: 0.0630957344480193

四、注意事项

  • LassoCV适用于特征较多高维数据集
  • 选择合适的交叉验证策略对于模型性能至关重要。
  • normalize参数在0.24版本后被弃用,建议在标准化数据时手动处理。
  • selection参数可以影响模型的收敛速度和结果的稳定性。

http://www.niftyadmin.cn/n/5568326.html

相关文章

Maven使用(依赖管理和继承聚合特性)

Maven是什么?Maven的主要作用是什么? Maven 是一款为 Java 项目构建管理、依赖管理的工具(软件),使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。 想理解Maven的概念&#…

解决Element UI 表格组件懒加载数据刷新问题

一、问题描述 element ui的table组件设置成懒加载时,遇到数据表格需要更新、删除等操作,子节点不会自动更新。 二、解决思路 刷新数据,就是重新调用load(),通过map记录已展开的节点,需要刷新…

Linux(CentOS7)部署PHP-7.2.17源码包

PHP-7.2.17源码包部署 安装php1. 解压并进入php-7.2.17文件夹2. 编写php.sh脚本3. 执行php.sh 配置Apache与PHP1. 编写httpd.conf配置文件2. 编写php测试脚本 部署HTTPD-2.4.37源码包点击跳转 部署MySQL-5.6.31源码点击跳转 下载源码包和依赖的源码包,资源见文章顶…

泰迪智能科技携手广东东软学院共建实践教学基地

7月17日,广东东软学院实践教学基地揭牌仪式在广东泰迪智能科技股份有限公司产教融合实训中心举行,广东东软学院商务管理学院副院长彭四平、专业教授马世登、专业老师许艳、专业老师吴量婷、泰迪智能科技董事长张良均、运营中心总监翁梦婷、校企合作经理吴…

Composition API实现逻辑复用

抽离逻辑代码到一个函数函数命名约定为useXxxx格式(react Hooks也是)在setup中去引用这个函数 如下经典鼠标位置例子: // useMousePosition.ts import { onMounted, onUnmounted, ref } from "vue";const useMousePosition () &…

n7.Nginx 第三方模块

Nginx 第三方模块 第三模块是对nginx 的功能扩展,第三方模块需要在编译安装Nginx 的时候使用参数–add-modulePATH指定路径添加,有的模块是由公司的开发人员针对业务需求定制开发的,有的模块是开 源爱好者开发好之后上传到github进行开源的模…

【刷题汇总 -- 压缩字符串(一)、chika和蜜柑、 01背包】

C日常刷题积累 今日刷题汇总 - day0181、压缩字符串(一)1.1、题目1.2、思路1.3、程序实现 2、chika和蜜柑2.1、题目2.2、思路2.3、程序实现 3、 01背包3.1、题目3.2、思路3.3、程序实现 -- dp 4、题目链接 今日刷题汇总 - day018 1、压缩字符串(一) 1.1、题目 1.2、思路 读完…

【ELK】window下ELK的安装与部署

ELK的安装与部署 1. 下载2. 配置&启动2.1 elasticsarch2.1.1 生成证书2.1.2 生成秘钥2.1.3 将凭证迁移到指定目录2.1.4 改配置2.1.5 启动2.1.6 访问测试2.1.7 生成kibana账号 2.2 kibana2.2.1 改配置2.2.2 启动2.2.3 访问测试 2.3 logstash2.3.1 改配置2.3.2 启动 2.4 file…