利用中间特征和初始数据线性拟合

该代码段展示了如何利用ElasticNet和Lasso回归模型对中间特征进行线性拟合。首先加载初始数据和中间特征,然后按47个时间点为一组对数据进行分块拟合。实验中使用了弹性网络回归,但也可以选择Lasso回归。拟合后的系数被保存,并输出了系数的最小值和最大值。
摘要由CSDN通过智能技术生成

利用中间特征和初始数据线性拟合

import scipy.io as sio
import numpy as np
from sklearn.linear_model import ElasticNet
from sklearn.linear_model import Lasso
from sklearn.metrics import mean_squared_error, r2_score
source_save = '/要存储的路径/'
source='/初始数据地址/'
img=np.load(source+"初始数据")

path = '/生成的中间特征地址/'
hidden_mat = sio.loadmat(path + 'hidden_RNN.mat')#中间特征地址  这里存储的是.mat格式文件
a = hidden_mat['hidden']
a = a.squeeze(1)#根据自己的维度调整  一般是二维数据匹配二维数据,且有一维两个数据维度相同
l = a.shape[0]

ids = 0
for i in range(0,l,47):#这里是按片段拟合,每47个时间点作为一组进行拟合
    x=img[i*47:(i+1)*47,:]
    y=a[i*47:(i+1)*47,:]
    print(x.shape,y.shape)
    clf = ElasticNet(alpha=0.007, l1_ratio=0.05)#用的弹性网络回归,参数可以自己设置
    #clf = Lasso(alpha=0.00005)#这个是用lasso回归,参数可以自己设置
    clf.fit(x,y)
    #  clf.coef_   是生成的二维矩阵
    np.save(source_save + "/%d.npy"%ids,clf.coef_)#这里是按生成的顺序命名
    print("clf:",np.min(clf.coef_),np.max(clf.coef_))
    ids += 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值