降维1-----LASSO(24年5月2日)

2024-05-02 22:28
文章标签 24 降维 lasso

本文主要是介绍降维1-----LASSO(24年5月2日),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 这篇哥们儿写的老有意思了:

统计学习:变量选择之Lasso - 知乎 (zhihu.com)

Lasso Regression with Scikit-Learn (Beginner Friendly) (youtube.com)

from sklearn.linear_model import Lasso
from sklearn.datasets import load_iris# 加载数据
data = load_iris()
X = data.data
y = data.target# 使用Lasso进行降维
lasso = Lasso(alpha=0.1)
lasso.fit(X, y)
X_new = lasso.transform(X)print("原始数据形状:", X.shape)
print("降维后数据形状:", X_new.shape)

LASSO表达式

 

from sklearn.datasets import fetch_california_housing
ca_housing = fetch_california_housing()
#属性矩阵
X=ca_housing.data
#预测目标
y=ca_housing.target#print(ca_housing.feature_names)
#属性变量名称如下:
feature_names=['MedInc', 'HouseAge', 'AveRooms', 'AveBedrms', 'Population', 'AveOccup', 'Latitude', 'Longitude']
#预测变量名称如下
#print(ca_housing.target_names)
target_name=['MedHouseVal']#下面代码以2:8分割训练集和测试集
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=19)#预处理?
from sklearn.preprocessing import StandardScaler
scaler=StandardScaler()
X_train=scaler.fit_transform(X_train)
X_test=scaler.fit_transform(X_test)
#这段代码的作用是使用StandardScaler对训练集和测试集的特征数据进行标准化处理。
# 标准化的过程包括计算特征的均值和标准差,然后将特征数据减去均值并除以标准差,
# 以确保特征数据具有零均值和单位方差。这有助于提高模型的性能并确保特征数据的尺度一致。#Now we bring in LASSO
from sklearn.linear_model import Lasso
lasso=Lasso()
#下面将训练集喂给LASSO模型1
lasso.fit(X_train,y_train)#下面参数衡量模型性能
from sklearn.metrics import mean_absolute_error,mean_squared_error,r2_score#这三个参数是用于评估回归模型性能的指标:#mean_absolute_error:平均绝对误差(Mean Absolute Error,MAE),是预测值与真实值之间差值的绝对值的平均值。MAE越小,表示模型的预测越准确。
#mean_squared_error:均方误差(Mean Squared Error,MSE),是预测值与真实值之间差值的平方的平均值。MSE越小,表示模型的预测越准确。
#r2_score:R平方值(R-squared),用于衡量模型对数据方差的解释程度。取值范围在0到1之间,值越接近1表示模型对数据方差的解释能力越强。#现在将测试集喂给训练好的模型做预测,得到y的预测值
y_pred=lasso.predict(X_test)
print("lasso1,y的预测值=",y_pred)
print("平均绝对误差MAE=",mean_absolute_error(y_test,y_pred))
print("均方误差MSE=",mean_squared_error(y_test,y_pred))
print("R平方值=",r2_score(y_test,y_pred))#调一下参数alpha,模型会更准确
param_grid={'alpha':[0.0001,0.0005,0.001,0.005,0.01,0.1,1,10,100,1000]
}from sklearn.model_selection import GridSearchCV
lasso_cv=GridSearchCV(lasso,param_grid,cv=4,n_jobs=-1)#把训练集喂给调参后的模型lasso_cv
lasso_cv.fit(X_train,y_train)#用模型2 做预测
y_pred2=lasso_cv.predict(X_test)
print("调参后,,lasso2,y的预测值2=",y_pred2)#用3个衡量指标查看调参后的模型性能
print("平均绝对误差MAE2=",mean_absolute_error(y_test,y_pred2))
print("均方误差MSE2=",mean_squared_error(y_test,y_pred2))
print("R平方值2=",r2_score(y_test,y_pred2))print("最佳的alpha=",lasso_cv.best_params_)#alpha=0.001#第三个lasso模型
lasso3=Lasso(alpha=0.001)
lasso3.fit(X_train,y_train)print("lasso3.intercept_=",lasso3.intercept_)
print("lasso3.coef_=",lasso3.coef_)
import pandas as pd
df=pd.DataFrame({'属性名称(xi)':feature_names,'Coef':lasso3.coef_})
print(df)

 

 

这篇关于降维1-----LASSO(24年5月2日)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/955268

相关文章

Science|癌症中三级淋巴结构的免疫调节作用与治疗潜力|顶刊精析·24-09-08

小罗碎碎念 Science文献精析 今天精析的这一篇综述,于2022-01-07发表于Science,主要讨论了癌症中的三级淋巴结构(Tertiary Lymphoid Structures, TLS)及其在肿瘤免疫反应中的作用。 作者类型作者姓名单位名称(中文)通讯作者介绍第一作者Ton N. Schumacher荷兰癌症研究所通讯作者之一通讯作者Daniela S. Thomm

SIGMOD-24概览Part7: Industry Session (Graph Data Management)

👇BG3: A Cost Effective and I/O Efficient Graph Database in ByteDance 🏛机构:字节 ➡️领域: Information systems → Data management systemsStorage management 📚摘要:介绍了字节新提出的ByteGraph 3.0(BG3)模型,用来处理大规模图结构数据 背景

【A题成品论文已出】24数学建模国赛A题成品论文(附参考代码)免费分享

A 题  “板凳龙”  闹元宵 摘要 “板凳龙”是一种传统的民俗文化活动,通常由许多板凳连接成龙的形状进行表演。本文基于螺旋线和板凳龙的运动特性,建立数学模型来分析舞龙队在不同情况下的运动轨迹、调头路径和速度优化等问题。问题主要涉及板凳龙的行进路径、碰撞避免、调头空间的设计,以及如何优化龙头的速度,以确保龙身与龙尾的行进安全。 针对问题一,舞龙队由223节板凳组成,龙头前把手的速度为1

【Git 学习笔记_24】Git 使用冷门操作技巧(四)——更多实用 git 别名设置、交互式新增提交

文章目录 11.8 更多别名设置别名1:只查看当前分支(git b)别名2:以图表形式显示自定义格式的 git 日志(git graph)别名3:查看由于合并分支导致的冲突后仍有冲突的、待合并的文件列表(git unmerged)别名4:查看 git 状态(git st)别名5:查看 git 简要状态(git s)别名6:查看最新版本的统计信息(git l1)别名7:查看最近 5 个版本的提

保研 比赛 利器: 用AI比赛助手降维打击数学建模

数学建模作为一个热门但又具有挑战性的赛道,在保研、学分加分、简历增色等方面具有独特优势。近年来,随着AI技术的发展,特别是像GPT-4模型的应用,数学建模的比赛变得不再那么“艰深”。通过利用AI比赛助手,不仅可以大大提升团队效率,还能有效提高比赛获奖几率。本文将详细介绍如何通过AI比赛助手完成数学建模比赛,并结合实例展示其强大功能。 一、AI比赛助手的引入 1. 什么是AI比赛助手? AI比

【机器学习 sklearn】模型正则化L1-Lasso,L2-Ridge

#coding:utf-8from __future__ import divisionimport sysreload(sys)sys.setdefaultencoding('utf-8')import timestart_time = time.time()import pandas as pd# 输入训练样本的特征以及目标值,分别存储在变量X_train与y_train之中。

Leetcode面试经典题-24.两两交换链表中的节点

解法都在代码里,不懂就留言或者私信 这里先写一个递归的解,如果后面有时间,我再写个迭代的 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val =

SVD降维

文章目录 一、SVD降维的基本原理二、SVD降维的步骤三、SVD降维的优点四、SVD降维的应用五、代码应用六、SVD降维的局限性 一、SVD降维的基本原理 SVD是线性代数中的一种技术,它将一个矩阵A分解为三个矩阵的乘积:A = UΣV^T。其中,U和V是正交矩阵,Σ是对角矩阵,对角线上的元素称为奇异值。这些奇异值表示了矩阵A在各个方向上的“重要性”或“能量”。 在降维过程中,

图形API学习工程(24):D3D11读取非DDS格式的CubeMap

工程GIT地址:https://gitee.com/yaksue/yaksue-graphics 目标 在《图形API学习工程(21):使用CubeMap纹理》中,由于DirectX读取CubeMap的教程范例都是DDS格式的纹理,因此我也首先实现了DDS的版本,期望之后做处理。 上一篇使D3D12可以用非DDS格式的CubeMap了,本篇目标将是D3D11。 分析当前的流程 当前使用D

数字人直播防封技巧升级!头部源码厂商如何实现7*24小时无间断直播?

当前,许多用户在使用数字人直播的过程中都遇到了直播间违规和账号被封两大问题,并因此蒙受了一定的损失。在此背景下,不少有计划引入数字人直播的企业和搭建数字人直播系统的创业者也开始有了犹豫。为了让大家能够更放心地入局,本期,我们将通过分析这两大问题出现的原因,来整理数字人直播防封教程,希望能对大家有所帮助。 一、数字人直播是否会导致直播间违规和封号问题? 需要明确的一点是,当前,虽然许多人在进