本文开始前要求你得掌握基本python语法和具备一定的深度学习理论,完整源代码在文章末尾
目录
1、下载数据集
首先大家先注册好kaggle账号,并找到房价预测的比赛,下面的是对应的网址https://www.kaggle.com/competitions/house-prices-advanced-regression-techniques/overview
找到data下的test.csv和train.csv并下载到你project包的data包内
2、数据预处理
先导入必要的一些包
import numpy as np
import pandas as pd
import torch
from torch import nn
from d2l import torch as d2l
先用两个变量接收训练集和测试集,然后再把两个集合的特征提取出来进行操作。主要是将特征归一化,用特征减去均值再除以标准差,得到一个服从正态分布(0,1)的特征集;然后将特征里的缺失值置为0,方便后面计算;最后处理非数值型的特征,调用pandas的get_dummies()方法将其转化为独热编码。
处理完特征之后,就可以转为tensor张量的类型方便后面训练模型,从而得到train_features, train_labels, test_features三个张量
train_data = pd.read_csv('data/train.csv')
test_data = pd.read_csv('data/test.csv')
# print(train_data.iloc[0:4, [0, 1, 2, 3, -3, -2, -1]])
all_features = pd.concat((train_data.iloc[:, 1:-1], test_data.iloc[:, 1, ]))
# 数据预处理
numeric_features = all_features.dtypes[all_features.dtypes != 'object'].index
all_features[numeric_features] = all_features[numeric_features].apply(
lambda x: (x - x.mean()) / (x.std())
)
# 在标准化之