实用 Kaggle 竞赛之 随机森林 Random Forest 的数据预处理、模型实现及可靠性评估EDA

本文介绍了如何在Kaggle竞赛中利用Python进行数据预处理,包括使用魔术工具加载库、预览数据、处理datetime特征和处理category。接着,文章详细展示了随机森林模型的实现过程,通过模型训练和调整参数评估模型表现。同时,讨论了模型的可靠性,包括评估每个estimator的预测一致性,并使用并行计算加速预测。最后,探讨了特征重要性,以理解模型中哪些特征对结果影响最大。
摘要由CSDN通过智能技术生成

“本文通过 Python 代码实现的方式来来介绍具体的实现。

以 Python 为基础,调用各种比较基础的库,其中穿插一些Kaggle处理的建议,用引号表示。“


1. 数据预处理

1.1 魔术工具及所需要包

魔术工具,python 的 notebook 可以自动的更新 py 文件里的 function。

%load_ext autoreload

%autoreload 2

%matplotlib inline

导入全部的 模块,如果需要安装包的,可以一次性检查一下。

import os

import math

from concurrent.futures import ProcessPoolExecutor

import numpy as np

import pandas as pd

from sklearn.ensemble import RandomForestRegressor

1.2 数据导入前的预览

有些竞赛的数据体量巨大,当我们读入 pandas 之后再处理,会大大增加数据处理的时间,因此我们可以选在在 terminal 里面先查阅一下文档的情况。在 notebook 里面使用 ! 可以直接在 cell 里面使用 terminal 的命令行。

!wc -l data/Train.csv

显示文档的长度

---

!shuf -n 1 data/Train.csv

显示文档中的任意一行

---

!head -1 data/Train.csv

显示文档的第 1 行

通过上述预览的方法,我们可以了解文档中各个 columns 的特征之后,来比较好的读取。当我们不告诉 pandas 数据的 types 的时候,他会选择 chunk 的方式来读取,这种方式会占用大量的内存,所以我们尽量指示适合的 types,来加速读取速度,也就是在 read_csv 时,设置 dtypes 参数来帮助 pandas 加速识别。

types = {'id': 'int64',

'item_nbr': 'int32',

'store_nbr': 'int8',

'unit_sales': 'float32',

'onpromotion': 'object'}

%%time df_raw = pd.read_csv(f'{PATH}train.csv', parse_dates=['date'], dtype=types, infer_datetime_format=True)

---

CPU times: user 1min 41s, sys: 5.08s, total: 1min 46s

Wall time: 1min 48s

1.3 nan数据情况及比例预览

list(df_raw.isnull().mean())

---

[0.0, 0.0, 0.0, 0.0, 0.0, 0.050198815830476785, 0.0, 0.6440885010906825, 0.8263907759426613, 0.0, 0.0, 0.0, 0.34201558117793707, 0.8581290121533188, 0.8207067622312246, 0.5254596447491431, 0.0, 0.0, 0.0, 0.0, 0.73982923028981, 0.0008102212527267062, 0.5211542536615769, 0.8027198504206918, 0.6295269554378311, 0.802

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值