LoginSignup
2
0

More than 1 year has passed since last update.

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

Last updated at Posted at 2021-11-01

まえがき

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

↓SignateHPから引用(https://signate.jp/users/rankings/help)
img-tier-pyramid@2x.png

参加コンペティション

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

コード

ライブラリのインポート

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

データの読み込み

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

スクリーンショット 2021-10-07 21.27.55.png

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

スクリーンショット 2021-10-07 21.28.22.png

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

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)

スクリーンショット 2021-10-07 21.38.46.png

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

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

スクリーンショット 2021-10-07 21.39.07.png

提出

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に参加してメダル獲得できるように頑張りたいと思います。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0