浅析深度学习(二)--回归实战(新冠人数预测)

任务

过程:

一.调包

from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
import csv #读csv文件的
import numpy as np
import time
import matplotlib.pyplot as plt
import pandas as pd #分析数据的

from torch import optim
import torch.nn as nn
import torch
from torch.utils.data import Dataset,DataLoader

二.创建函数selectkbest--挑选重要参数

slectkbest原理:通过给特征进行打分,然后从高到底选取特征,要用到皮尔森系数和单变量线性回归,

皮尔森系数可以表明y与各个特征的相关度

单变量线性回归可以用来表明特征的回归效果

#selectkbest
def get_feature_importance(feature_data, label_data, k =4,column = None):
    """
    此处省略 feature_data, label_data 的生成代码。
    如果是 CSV 文件,可通过 read_csv() 函数获得特征和标签。
    这个函数的目的是, 找到所有的特征种, 比较有用的k个特征, 并打印这些列的名字。
    """
    model = SelectKBest(chi2, k=k)      #定义一个选择k个最佳特征的函数
    X_new = model.fit_transform(feature_data, label_data)   #用这个函数选择k个最佳特征
    #feature_data是特征数据,label_data是标签数据,该函数可以选择出k个特征
 print('x_new', X_new)
    scores = model.scores_                # scores即每一列与结果的相关性
    # 按重要性排序,选出最重要的 k 个
    indices = np.argsort(scores)[::-1]        #[::-1]表示反转一个列表或者矩阵。  argsort是从小到大排序
    # argsort这个函数, 可以矩阵排序后的下标。 比如 indices[0]表示的是,scores中最小值的下标。

    if column:                            # 如果需要打印选中的列
        k_best_features = [column[i+1] for i in indices[0:k].tolist()]         # 选中这些列 打印
        print('k best features are: ',k_best_features)
    return X_new, indices[0:k]                  # 返回选中列的特征和他们的下标。

X_new选择了k个最佳特征,用indices记录下标,并输出打印

x_new打印结果

三.创建类cobidDataset--数据集

通常包含三个任务

init--初始化(包括列表读取后转矩阵,取关键列,划分训练集和验证集,对数据的列进行归一化

getitem--返回值

len--返回长度

#数据集:完成三个工作:1.初始化 2.getitem返回x【idx】,y【idx】 3.返回x的长度
class covidDataset(Dataset):        
    d
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值