AutoMLを使って30分でSignate-Intermediateへ昇格


まえがき

Signateではコンペティションの成績で7段階で称号が割り当てられていますが、1つ上げるだけでもかなりハードルが高いものだと思っていました。レベルが高いのはもちろんのこと、コンペが数多くあるわけではないので昇格するのに時間がかかるものだと決めつけていましたが、意外とそうではありませんでした。
称号付きコンペやSOTA Challengeなど、昇格する機会を設けてくれており、運営の方々には感謝です。
試しに称号付きコンペに参加をし、初手でAutoMLを使ってみた所、案外すんなり閾値を超えることができ、Intermediateに昇格しました。
30分かからずにできたのでせっかくと思い、記事を作成しました。

↓SignateHPから引用(https://signate.jp/users/rankings/help)

参加コンペティション

2021年10月のみ開催されているコンペです。

コード

ライブラリのインポート

import pandas as pd
!pip install pycaret
from pycaret.classification import *

データの読み込み

train_data = pd.read_csv("train.csv")
train_data

test_data = pd.read_csv("test.csv")
test_data

学習データの正解ラベルの割合

len(train_data[train_data["loan_status"]==1])/len(train_data)

Pycaret

model = setup(data=train_data, target="loan_status")

compare_models()

個人的にLightGBMが好きなので、とりあえず使っています。

model = create_model("lightgbm")

F1スコアが最適になるようにパラメーターをチューニング

tuned_model = tune_model(model, optimize="F1")

※Accuracy Ver.

evaluate_model(tuned_model)

とりあえず、学習データの正解ラベルの割合を閾値として採用

test_pred = predict_model(tuned_model, probability_threshold= 0.2148, data=test_data)
test_pred

提出

sample = pd.read_csv("submit.csv", header=None)
submission = sample.drop(columns=[1])

submission[0] = test_pred["Label"]
submission.to_csv("submission.csv", header=None)

あとがき

Intermediateに昇格したことによって自己アピールにつながればいいなと思っています。
次は、AdvancedやExpertに昇格できるようにSOTA Challengeに参加してメダル獲得できるように頑張りたいと思います。