• pytorch 深度学习之数据预处理


    读取数据集

    创建数据,写入到 CSV 文件中:

    import os
    
    os.makedirs(os.path.join(".","data"),exist_ok=True)
    data_file = os.path.join(".","data","house_tiny.csv")
    
    with open(data_file,"w") as f:
        f.write("NumRooms,Alley,Price\n") # 列名称
        f.write("NA,Pave,127500\n") # 每行表示一个数据样本
        f.write("2,NA,106000\n") 
        f.write("4,NA,178100\n") 
        f.write("NA,NA,140000\n") 
    

    从创建的 CSV 文件中加载原始数据集,我们导入 pandas 包并调用 read_csv 函数。该数据集有四行三列。其中每行描述了房间数量(“NumRooms”)、巷子类型(“Alley”)和房屋价格(“Price”):

    import pandas as pd
    
    data = pd.read_csv(data_file)
    print(data)
    
       NumRooms Alley   Price
    0       NaN  Pave  127500
    1       2.0   NaN  106000
    2       4.0   NaN  178100
    3       NaN   NaN  140000
    

    处理缺失值

    “NaN”项代表缺失值。 为了处理缺失的数据,典型的方法包括插值法和删除法, 其中插值法用一个替代值弥补缺失值,而删除法则直接忽略缺失值。
    将 data 分成 inputs 和 outputs, 其中前者为 data 的前两列,而后者为 data 的最后一列。 对于 inputs 中缺少的数值,我们用同一列的均值替换“NaN”项:

    inputs,outputs = data.iloc[:,0:2],data.iloc[:,2]
    inputs = inputs.fillna(inputs.mean())
    print(inputs)
    
       NumRooms Alley
    0       3.0  Pave
    1       2.0   NaN
    2       4.0   NaN
    3       3.0   NaN
    

    由于“巷子类型”(“Alley”)列只接受两种类型的类别值“Pave”和“NaN”, pandas可以自动将此列转换为两列“Alley_Pave”和“Alley_nan”:

    inputs = pd.get_dummies(inputs, dummy_na=True)
    print(inputs)
    
       NumRooms  Alley_Pave  Alley_nan
    0       3.0           1          0
    1       2.0           0          1
    2       4.0           0          1
    3       3.0           0          1
    

    转换为张量格式

    现在 inputs 和 outputs 中的所有条目都是数值类型,它们可以转换为张量格式:

    import torch
    
    x,y = torch.tensor(inputs.values),torch.tensor(outputs.values)
    x,y
    
    (tensor([[3., 1., 0.],
             [2., 0., 1.],
             [4., 0., 1.],
             [3., 0., 1.]], dtype=torch.float64),
     tensor([127500, 106000, 178100, 140000]))
  • 相关阅读:
    【Quartz】常用方法的使用方式(三)
    【Quartz】实现接口封装化(二)
    【Quartz】定时器初步实验(一)
    数据库和ado连接语句的使用总结
    PMP 德尔菲技术
    java 事务解释。
    防盗链--解释
    java月利率计算(等额本息贷款)
    java 日志的数据脱敏
    MDC 输出线程信息帮助定位问题
  • 原文地址:https://www.cnblogs.com/xiaojianliu/p/16150223.html
Copyright © 2020-2023  润新知