🌟

#4 list()関数とは、loc()関数、過学習【今年中にKaggleでメダルを取る男】

2024/03/12に公開

「PythonではじめるKaggleスタートブック」で出てきたコードでわからなかったところを思考整理がてらここに記述していきます。

list()関数

2.4の以下のコードのlist()関数がうまく理解できなかったのでChatGPTに聞いてみました。

clf.fit(X_train.drop('FamilySize', axis=1), y_train)

#FamilySize列を削除したテストデータを予測する。
y_pred_isalone = clf.predict(X_test.drop('FamilySize', axis=1))

#map()でy_pred_isaloneをint型に変え、てそれをDFのSurvived列に格納
sub['Survived'] = list(map(int, y_pred_isalone))
sub.to_csv('submission_isalone.csv', index=False)

sub.head()

そこで以下のコードが返ってきました。

# 整数型のリストを作成
integers = [1, 2, 3, 4, 5]

# list()関数を使って整数型のリストを新しいリストにコピーする
integers_copy = list(integers)

# 文字列をリストに変換する
string = "hello"
string_list = list(string)

# タプルをリストに変換する
tuple_values = (1, 2, 3)
tuple_list = list(tuple_values)

print(integers_copy)  # [1, 2, 3, 4, 5]
print(string_list)    # ['h', 'e', 'l', 'l', 'o']
print(tuple_list)     # [1, 2, 3]

ただリスト括弧([]←これ)に格納するってことでした笑。

loc()関数

以下のコードがよくわからなかったので、コメントで説明を加えた。

#DFにIsAloneという列を追加し、その値を全て0に設定する
data['IsAlone'] = 0

#data['FamilySize'] = data['Parch'] + data['SibSp'] +1
#FamilySizeが1である行を特定してそれらをIsAlone列の1に設定する
#つまり家族の数が1っていうのはIsAloneです(1)ってこと
data.loc[data['FamilySize'] == 1, 'IsAlone'] = 1

#DFにあるIsAlone列を最初からtrainデータのとこまで指定する。
train['IsAlone'] = data['IsAlone'][:len(train)]

#DFにあるIsAlone列をtrainデータから最後まで指定する。
test['IsAlone'] = data['IsAlone'][len(train):]

過学習

過学習:手元のデータはすごくいー感じに分析できていても、予測のデータに対してはうまく予測できない。

Discussion