Kaggle房价预测竞赛——Pandas数据预处理

数据集

California House Prices
Predict California sales prices
https://www.kaggle.com/c/house-prices-advanced-regression-techniques

1 导入数据

(1) 读取数据

test_data = pd.read_csv('test.csv')
train_data = pd.read_csv('train.csv')
print(train_data.shape, test_data.shape)

(1460, 81) (1459, 80)

(2)查看前五条数据中的四个特征以及后三个特征

print(train_data.iloc[0:5, [0, 1, 2, 3, -3, -2, -1]])

iloc
(3) 去掉“Id”列,拼接 train_data & test_data

all_features = pd.concat((train_data.iloc[:, 1:-1], test_data.iloc[:, 1:])) 
all_features.shape

(2919, 79)

2 描述性统计

(1) 特征的非空数、均值、标准差、最小值、最大值…

all_features.describe()

describe()

(2) 特征的类型

all_features.dtypes # type(all_features.dtypes)==pandas.core.series.Series

在这里插入图片描述

Kaggle竞赛中Data栏目可以看到更详细的数据描述性统计
在这里插入图片描述

3 处理数值型数据

填充缺失+归一化

#(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())
all_features[numeric_features] = all_features[numeric_features].fillna(0)
print(len(numeric_features))

4 处理非数值型数据

看一下非数字的object都有哪些并且他们大概有多少个不同的类别

for in_object in all_features.dtypes[all_features.dtypes=='object'].index:
    print(in_object.ljust(20),len(all_features[in_object].unique()))

在这里插入图片描述

one-hot 编码,“Dummy_na=True”将“na”(缺失值)视为有效的特征值,并为其创建指示符特征。特征数由71个扩展至331个。

print(all_features.shape)
all_features_expand = pd.get_dummies(all_features, dummy_na=True)
print(all_features_expand.shape)

在这里插入图片描述

5 划分训练集特征、测试集特征、训练集标签

n_train = train_data.shape[0]
train_features = torch.tensor(all_features_expand[:n_train].values,dtype=torch.float32)
test_features = torch.tensor(all_features_expand[n_train:].values,dtype=torch.float32)
train_labels = torch.tensor(train_data.SalePrice.values.reshape(-1,1),dtype=torch.float32)
print(train_features.shape,"\n", test_features.shape, "\n", train_labels.shape)

在这里插入图片描述

参考

【沐神课程 - 动手学深度学习】实战一详解之 Kaggle比赛:预测房价

D2L 4.10. 实战Kaggle比赛:预测房价

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值