秃姐学AI系列之 :实战Kaggle比赛:预测房价

目录

使用pandas读入并处理数据

 数据预处理

训练

 设置Adam优化器

K折交叉验证

 返回训练和验证误差的平均值


使用pandas读入并处理数据

%matplotlib inline
import numpy as np
import pandas as pd
import torch
from torch import nn
from d2l import torch as d2l

DATA_HUB['kaggle_house_train'] = (  #@save
    DATA_URL + 'kaggle_house_pred_train.csv',
    '585e9cc93e70b39160e7921475f9bcd7d31219ce')
 
DATA_HUB['kaggle_house_test'] = (  #@save
    DATA_URL + 'kaggle_house_pred_test.csv',
    'fa19780a7b011d9b009e8bff8e99922a8ee2eb90')

train_data = pd.read_csv(download('kaggle_house_train'))
test_data = pd.read_csv(download('kaggle_house_test'))
print(train_data.shape)
print(test_data.shape)
print(train_data.iloc[0:4, [0, 1, 2, 3, -3, -2, -1]])

 数据预处理

1、去除数据集中第一列无用的ID

all_features = pd.concat((train_data.iloc[:, 1:-1], test_data.iloc[:, 1:]))
  • .iloc[:, 1:-1]:表示选择所有行(:)和从第1列到倒数第二列的列(1:-1)。这里的索引是基于位置的,第一列的索引是0,所以1:-1表示跳过第一列,同时也不包括最后一列(因为iloc()函数左闭右开),因为这里的最后一列是labels。
  • test_data.iloc[:, 1:]test_data中选择了除了第一列之外的所有列和行。.iloc[:, 1:]同样是基于位置的索引,表示选择所有行(:)和从第1列到最后一列的所有列(1:)。这里也是跳过了第一列,但是包括了最后一列。

这样的操作常见于数据预处理阶段,当你想要统一处理训练集和测试集中的特征时,你可以先将它们合并起来,进行必要的处理,然后再分开为训练集和测试集。 


2、在数据预处理阶段处理数值型特征:首先,它将这些特征标准化(即让数据符合均值为0、标准差为1的分布),然后处理缺失值,将它们设置为0。 

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()))
# 在标准化数据之后,所有均值消失,因此我们可以将缺失值设置为0
all_features[numeric_features] = all_features[numeric_features].fillna(0)
  • all_features.dtypes:获得每一列数据的类型进行返回 
  • all_features.dtypes != ‘object’:判断各列数据是否不为object对象。不为则返回True,是则返回False
  • all_features.dtypes[all_features.dtypes != ‘object’]:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值