天地学習競争のローンデフォルト予測-タスク2データ分析

天地学習競争のローンデフォルト予測-タスク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))
  • データセット内のフィーチャの欠損値、一意の値などを表示します
  1. 欠損値を表示
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")

おすすめ

転載: blog.csdn.net/xylbill97/article/details/108668454