当前位置:   article > 正文

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

随机森林eda

“本文通过 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.8027198504206918, 0.5432097226550328, 0.8027198504206918, 0.9371293237768775, 0.9371293237768775, 0.9371293237768775, 0.93712932

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/237126
推荐阅读
相关标签
  

闽ICP备14008679号