🌊

#3 学びアウトプット【今年中にKaggleでメダルを取る男】

2024/03/09に公開

xlimとは

僕が今勉強している「PythonではじめるKaggleスタートブック」にはxlimの説明として「x軸の範囲を示す」って書かれていたんですけど、よくわからなかったのでサンプルコードをいじってみました。

サンプルコード

plt.hist(train.loc[train['Survived'] == 0, 'Fare'].dropna(),
         range=(0, 250), bins=25, alpha=0.5, label='0')
plt.hist(train.loc[train['Survived'] == 1, 'Fare'].dropna(),
         range=(0, 250), bins=25, alpha=0.5, label='1')
plt.xlabel('Fare')
plt.ylabel('count')
plt.legend(title='Survived')
plt.xlim(-5, 250)
plt.show()

出力

plt.xlim(-5, 250)というのはx軸は-5から250までということらしいのです。なんじゃらほい?って感じでした。
なので「plt.xlim(-500, 250)」で実行してみました。
すると、おぉぉぉぉぉぉぉぉーー!こういうことだったのかぁぁぁぁーーー!と理解できました。めでたしめでたし。

再現性

データ分析は再現性が大事なんだそう。KaggleでいえばAという予測が70%だったら、100回Aを実行しても100回とも全て70%という予測結果が出る必要があるということ。そうでないとたえ特徴量エンジニアリングとかで予測性能向上をはかったところで毎回予測結果が変わってしまっては予測性能が向上したか否かわからないからだそう。

+1している理由

以下のコードがありました。なんで+1をしているのでしょうか。

import seaborn as sns


data['FamilySize'] = data['Parch'] + data['SibSp'] +1#なんで+1してんの?
train['FamilySize'] = data['FamilySize'][:len(train)]#
test['FamilySize'] = data['FamilySize'][len(train):]
sns.countplot(x='FamilySize', data = train, hue='Survived')

それは「自分自身も数としてカウントするため」です。どういうことかというと、

Parch:同乗している親・子供
SibSp:同乗している兄弟姉妹らと配偶者

となっており、Parch、SibSpは「同乗している〜」であって、自分自身は含まれていなんです。なので、自分自身が含まれるようにするため、+1をしているのです。

Discussion