#数据预处理
import os
#创建人工数据集,存在CSV文件
#os.makedirs(os.path.join('..','data')) #创建文件地址,即文件夹:D:\Research\Python\data
data_file = os.path.join('..','data','house_tiny.csv') #创建一个文件名,叫house_tiny
with open(data_file,'w') as f:
f.write('NumRooms,Alley,Price \n') #列名, 房间名,进门的alley,房子卖多少钱
f.write('NA,Pave,127500 \n') #每行表示一个数据样本,一共五行,写了4个房子,NA是未知的数
f.write('2,NA,106000 \n')
f.write('4,NA,178100 \n')
f.write('NA,NA,14000 \n')
#读取刚刚创建的csv文件
import pandas as pd
data = pd.read_csv(data_file)
print(data)
#处理缺失的数据,一般考虑插值或者删除,这里我们用插值
#iloc是index location,位置索引
inputs,outputs = data.iloc[:,0:1],data.iloc[:,1] #input里面放所有行[:],还有第0列和第1列的所有数据;output里是所有行,和最后一列的数据
inputs = inputs.fillna(inputs.mean()) #fillna,是所有Not number的数据(即表格里的NaN),在这里填上去除所有NaN值以后得到的平均值(mean) = 3
print(inputs)
#处理str特征的缺失数据,先把str数据变成一个特征,在这里只有pave和NaN
#pd.get_dummies相当于onehot编码,常用与把离散的类别信息转化为onehot编码形式。one-hot的基本思想:将离散型特征的每一种取值都看成一种状态,若你的这一特征中有N个不相同的取值,那么我们就可以将该特征抽象成N种不同的状态,one-hot编码保证了每一个取值只会使得一种状态处于“激活态”,也就是说这N种状态中只有一个状态位值为1,其他状态位都是0。举
inputs = pd.get_dummies(inputs,dummy_na=True) #如果值是pave,则变成1;如果是NaN,就变成0
print(inputs)
#现在所有的值都变成了数值,没有str,就把这个表格变成tensor(这里用pytorch)
import tensorflow as tf
数据预处理
于 2022-01-23 06:19:42 首次发布