如何用套索和RobustScalar建立预测函数?

我试图弄清楚如何在不使用Sklearn提供的.predict函数的情况下使用LASSO回归来预测值。这基本上只是为了扩大我对套索内部工作原理的理解。我在Cross Validated上问了一个关于套索回归如何工作的问题,其中一条评论提到了预测函数的工作原理与线性回归中的相同。正因为如此,我想试着用我自己的函数来做这个。在

{I>在使用不同的输出时,{I>可以成功地使用cd2>函数。在这个例子中,Sklearn的预测值是4.33,我自己的函数是6.18。我错过了什么?我不是在最后正确地反变换了预测吗?在

import pandas as pd
from sklearn.preprocessing import RobustScaler
from sklearn.linear_model import Lasso
import numpy as npdf = pd.DataFrame({'Y':[5, -10, 10, .5, 2.5, 15], 'X1':[1., -2.,  2., .1, .5, 3], 'X2':[1, 1, 2, 1, 1, 1], 'X3':[6, 6, 6, 5, 6, 4], 'X4':[6, 5, 4, 3, 2, 1]})X = df[['X1','X2','X3','X4']]
y = df[['Y']]#Scaling 
transformer_x = RobustScaler().fit(X)
transformer_y = RobustScaler().fit(y) 
X_scal = transformer_x.transform(X)
y_scal = transformer_y.transform(y)#LASSO
lasso = Lasso()
lasso = lasso.fit(X_scal, y_scal)#LASSO info
print('Score: ', lasso.score(X_scal,y_scal))
print('Raw Intercept: ', lasso.intercept_.round(2)[0]) 
intercept = transformer_y.inverse_transform([lasso.intercept_])[0][0]
print('Unscaled Intercept: ', intercept) 
print('\nCoefficients Used: ')
coeff_array = lasso.coef_
inverse_coeff_array = transformer_x.inverse_transform(lasso.coef_.reshape(1,-1))[0]
for i,j,k in zip(X.columns, coeff_array, inverse_coeff_array):if j != 0:print(i, j.round(2), k.round(2))#Predictions
example = [[3,1,1,1]]
pred = lasso.predict(example)
pred_scal = transformer_y.inverse_transform(pred.reshape(-1, 1))
print('\nRaw Prediction where X1 = 3: ', pred[0])
print('Unscaled Prediction where X1 = 3: ', pred_scal[0][0])#Predictions without using the .predict function 
def lasso_predict_value_(X1,X2,X3,X4): print('intercept: ', intercept)print('coef: ', inverse_coeff_array[0])print('X1: ', X1)preds = intercept + inverse_coeff_array[0]*X1print('Your predicted value is: ', preds)lasso_predict_value_(3,1,1,1)

受过训练的^{cd1>}没有任何信息,无论给定数据点是否缩放。因此,您手动进行预测的方法不应该考虑到它的缩放方面。

如果我删除您对模型效率的处理,我们可以得到sklearn模型的结果


example = [[3,1,1,1]]
lasso.predict(example)# array([0.07533937])#Predictions without using the .predict function 
def lasso_predict_value_(X1,X2,X3,X4): x_test = np.array([X1,X2, X3, X4])preds = lasso.intercept_ + sum(x_test*lasso.coef_)print('Your predicted value is: ', preds)lasso_predict_value_(3,1,1,1)# Your predicted value is:  [0.07533937]

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/31733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ESG撑不起波司登的“出海野心”

文 | 螳螂观察 作者 | 青月 ESG(环境、社会和企业治理)这把“火”,烧的是越来越“旺”了。 在“双碳”目标和市场的双重驱动下,各大企业这几年都不约而同的开始关注起ESG,特别是在二级市场上,不少上市公…

竞赛项目 深度学习的水果识别 opencv python

文章目录 0 前言2 开发简介3 识别原理3.1 传统图像识别原理3.2 深度学习水果识别 4 数据集5 部分关键代码5.1 处理训练集的数据结构5.2 模型网络结构5.3 训练模型 6 识别效果7 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习…

Die2Die(D2D)和chip2chip(C2C)之间的高速互联接口

随着chiplet的兴起,Die2Die的高速互联越来越重要,相比于传统的C2C(chip2chip)的互联,D2D的片间距离很近(10mm量级),且这些小的chip(裸片)最终形成一个封装【多芯片模块(MCM)】。所以D2D的互联信道短&#x…

python中字符串内建函数篇4

一、ljust() 语法:str.ljust(width,[fillchar]) 参数说明: width – 指定字符串长度。 fillchar – 填充字符,默认为空格。 返回值:返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于原字符串…

什么是Selenium?使用Selenium进行自动化测试

什么是 Selenium?   Selenium 是一种开源工具,用于在 Web 浏览器上执行自动化测试(使用任何 Web 浏览器进行 Web 应用程序测试)。   等等,先别激动,让我再次重申一下,Selenium 仅可以测试We…

如何将视频转换成音频mp3格式?试一下这几种转换方法

MP3格式是一种被广泛使用的音频格式,可以在几乎所有音频播放器和设备上播放。此外,由于视频文件通常包含大量图像信息,因此其文件大小通常比相应的音频文件要大得多。将视频转换为MP3格式音频可以大大减小文件大小,从而节省硬盘空…

深兰科技熊猫汽车牵手首恒出行,人工智能技术提升商用车运营服务

8月8日,深兰科技集团旗下熊猫新能源汽车(上海)有限公司(下称熊猫新能源汽车)与河南首恒出行服务有限公司(下称首恒出行)在深兰科技总部举行签约仪式,首恒出行将向熊猫新能源汽车年定向采购10000台商用车,双方将在汽车后市场领域进行技术合作。…

12种不宜使用的Javascript语法

1. Javascript有两组相等运算符,一组是和!,另一组是和!。前者只比较值的相等,后者除了值以外,还比较类型是否相同。 请尽量不要使用前一组,永远只使用和!。因为默认会进行类型转换,规则十分难记。如果你…

使用公式与格式控制Excel快速实现计划甘特图

项目中都会遇到做任务计划的需求,有的客户要求需要有甘特图的形式本文介绍如何使用excel 单元格实现甘特图显示,调整任务时间自动填充单元格填色实现甘特图效果。废话不多说,先看效果。 准备工作先创建两列开始时间与完成时间,这…

使用KETTLE工具在Oracle和Dm8之间迁移数据

oracle 代码测试数据 CREATE TABLE PRODUCT_CATEGORY ( PRODUCT_CATEGORYID NUMBER(11,0) NOT NULL , NAME VARCHAR2(255) NOT NULL ENABLE, PRIMARY KEY (PRODUCT_CATEGORYID) )INSERT ALL into PRODUCT_CATEGORY(PRODUCT_CATEGORYID, NAME)VALUES(2,国学) into PRODUCT_CATEG…

uni——不规则tab切换(skew)

案例展示 案例代码 <!-- 切换栏 --> <view class"tabBoxs"><view class"tabBox"><block v-for"(item,index) in tabList" :key"index"><view class"tabItem":class"current item.id&…

华为新版ENSP PRO模拟器测评:性能表现与功能扩展一览

一、引言 在网络领域不断涌现的新技术和复杂的网络拓扑要求&#xff0c;推动了网络设备模拟器的持续发展和创新。华为作为一家领先的通信技术解决方案提供商&#xff0c;不断致力于为网络工程师和技术从业人员提供更优秀的仿真环境。最近&#xff0c;华为推出了ensp pro模拟器的…

Vue+SpringBoot项目开发:后台登陆功能的实现(二)

写在开始:一个搬砖程序员的随缘记录文章目录 一、SpringBoot项目的搭建二、数据库配置1、新建数据库2、新建用户表 三、SpringBoot项目的配置 一、SpringBoot项目的搭建 项目搭建传送门&#xff1a;从零开始&#xff0c;SpringBoot项目快速搭建 二、数据库配置 1、新建数据库…

通过Easy Excel导入数据

目录 &#x1f351;一、背景&#x1f351;二、开发验证&#x1f34a;2.1、引入easyexcel依赖&#x1f34a;2.2、创建表及基础代码&#x1f34a;2.3、处理类及接口&#x1f353;2.3.1、EasyExcel监听处理器&#x1f353;2.3.2、Controller接口&#x1f353;2.3.3、service调用监…

字节跳动推出公共DNS服务,将支持 DoH/DoT/DoQ 等协议

近日&#xff0c;字节跳动旗下的火山引擎正式上线 TrafficRoute 解析调度套件&#xff0c;其实质就是一套“公共 DNS”服务&#xff0c;目前仅支持免费版。该 DNS 后续将提供 DoH、DoT 和 DoQ 加密 DNS 查询协议。 火山引擎公共解析&#xff08;PublicDNS&#xff09;产品介绍&…

LeetCode算法递归类—验证二叉搜索树

目录 98. 验证二叉搜索树 题解&#xff1a; 代码&#xff1a; 运行结果&#xff1a;​编辑 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含…

Android Animation Made Easy

原文链接 Android Animation Made Easy 动画在任何一个GUI系统中都是一个非常重要的设计元素&#xff0c;它可以让交互变得优雅&#xff0c;让界面变得炫酷&#xff0c;让操作变得更加的舒畅&#xff0c;让状态过渡变得更加的顺滑&#xff0c;对视觉效果有极大的提升&#xff…

LeetCode热题100第49题----题目分享

给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 两个字符串互为字母异位词&#xff0c;当且仅当两个字符串包含的字母相同。同一组字母异位词中的字符串具备相同点&a…

Android Retrofit 源码分析

一、retrofit 是什么&#xff1f; Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装。 网络请求的工作本质上是 OkHttp 完成&#xff0c;而 Retrofit 仅负责 网络请求接口的封装。 1&#xff09;App应用程序通过 Retrofit 请求网络&#xff0c;实际上是使用 Retrofit 接口…

小红书投放流程是什么,达人选择注意事项!

很多人会发现有些笔记的内容并不是很出彩&#xff0c;但是偏偏就火了&#xff0c;自己想去模仿就平平无奇&#xff0c;其中包含了很多因素&#xff0c;有运气、也有选题和博主发文思路在里面&#xff0c;今天&#xff0c;来和大家分享下小红书投放流程是什么&#xff0c;达人选…