天地学習競争のローンデフォルト予測-タスク2データ分析
数学的モデリング競技会との時間的葛藤により、このブログ投稿は主に公式チュートリアルを参考に複製しており、今後も改善していく予定です!
記事ディレクトリ
1.コンテンツ紹介
- データの全体的な理解:
- データセットを読み、元のフィーチャディメンションであるデータセットのサイズを理解します。
- 情報を通じてデータ型に慣れます。
- データセットの各機能の基本的な統計を大まかに表示します。
- 欠落した一意の値:
- データ欠損値を表示する
- 独自の価値特性を表示
- 詳細なデータビューのデータ型
- カテゴリーデータ
- 数値データ
- 離散数値データ
- 連続数値データ
- データ間の相関
- 機能と機能間の関係
- 特性とターゲット変数の関係
- pandas_profilingを使用してデータレポートを生成する
2、コード例
- データ分析と可視化プロセスに必要なインポートライブラリ
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import datetime
import warnings
warnings.filterwarnings('ignore')
- ファイルを読む
data_train = pd.read_csv('./train.csv')
data_test_a = pd.read_csv('./testA.csv')
- 一般的な理解
データセットのサンプル数と元の特徴の次元を表示する
data_test_a.shape
data_train.shape
data_train.columns
data_train.info()
data_train.describe()
data_train.head(3).append(data_train.tail(3))
- データセット内のフィーチャの欠損値、一意の値などを表示します
- 欠損値を表示
print(f'There are {data_train.isnull().any().sum()} columns in train dataset with missing values.')
There are 22 columns in train dataset with missing values.
上記で取得したトレーニングセットには、欠損値のある22列の特徴があります。欠損率が50%を超える欠損特徴を詳しく見てみましょう。
have_null_fea_dict = (data_train.isnull().sum()/len(data_train)).to_dict()
fea_null_moreThanHalf = {
}
for key,value in have_null_fea_dict.items():
if value > 0.5:
fea_null_moreThanHalf[key] = value
欠落している機能と欠落している率の特定のビュー
# nan可视化
missing = data_train.isnull().sum()/len(data_train)
missing = missing[missing > 0]
missing.sort_values(inplace=True)
missing.plot.bar()
- どの列が垂直に「ナン」を持っているかを知り、ナンの数を出力します。主な目的は、特定の列のナンの数が本当に大きいかどうかを確認することです。ナンが多すぎる場合は、この列のラベルへの影響を示します。効果はほとんどないため、削除することを検討できます。欠損値が非常に小さい場合は、通常、塗りつぶしを選択できます。
- さらに、水平方向に比較することもできます。データセット内で、一部のサンプルデータの列のほとんどが欠落しており、サンプルが十分な場合は、削除を検討してください。
ヒント:
ゲームキラーのlgbモデルは自動的に欠損値を処理でき、Task4モデルはモデルを学習してモデルを理解します。
トレーニングセットとテストセットの機能属性の値が1つだけの機能を表示する
one_value_fea = [col for col in data_train.columns if data_train[col].nunique() <= 1]
one_value_fea_test = [col for col in data_test_a.columns if data_test_a[col].nunique() <= 1]
one_value_fea
['policyCode']
one_value_fea_test
['policyCode']
print(f'There are {len(one_value_fea)} columns in train dataset with one unique value.')
print(f'There are {len(one_value_fea_test)} columns in test dataset with one unique value.')
There are 1 columns in train dataset with one unique value.
There are 1 columns in test dataset with one unique value.
- pandas_profilingを使用してデータレポートを生成する
import pandas_profiling
pfr = pandas_profiling.ProfileReport(data_train)
pfr.to_file("./example.html")
。
- pandas_profilingを使用してデータレポートを生成する
import pandas_profiling
pfr = pandas_profiling.ProfileReport(data_train)
pfr.to_file("./example.html")