数据预处理
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')#os.path.join('..', 'data'):生成一个路径字符串,表示当前目录的父目录下的data文件夹。
#os.makedirs(..., exist_ok=True):创建这个目录。如果目录已经存在,exist_ok=True参数会防止抛出错误。
# os.path.join('..', 'data', 'house_tiny.csv'):生成一个路径字符串,表示data文件夹下的house_tiny.csv文件。
# with open(data_file, 'w') as f:以写入模式打开文件。如果文件已存在,会被覆盖。
# f.write(...):向文件写入字符串。每行字符串表示一个数据样本,包括列名和数据。
从创建的csv文件中加载原始数据集
import pandas as pd
data=pd.read_csv(data_file)
print(data)
处理缺失数据,可以插值以及删除
# 插值
#对于每列中的缺失值,使用该列的平均值进行填充
inputs,outputs=data.iloc[:,0:2],data.iloc[:,2]
inputs=inputs.fillna(inputs.mean())
print(inputs)
#fillna方法填充inputs中的缺失值(NA)
#inputs.mean():计算inputs中每列的平均值
inputs=pd.get_dummies(inputs,dummy_na=True)
print(inputs)# pd.get_dummies(inputs):这个函数将inputs DataFrame中的分类变量转换为虚拟变量。对于每个分类变量的每个类别,
# 都会创建一个新的列,值为0或1,表示该类别是否存在于原始数据中。例如,如果Alley列有值Pave和NA,
# 则会生成两个新的列:Alley_Pave和Alley_NA。# dummy_na=True:
# 这个参数指示pd.get_dummies在处理缺失值(NA)时,也要将其视为一个单独的类别,并为其创建一个虚拟变量列。
# 例如,如果Alley列中有缺失值,dummy_na=True会创建一个额外的列(如Alley_NA),
# 并将缺失值所在行的该列值设为1,其他行设为0。
import torchx,y=torch.tensor(inputs.values),torch.tensor(outputs.values)
x,y