解析手法

kaggle1位の解析手法 「Home Credit Default Risk 債務不履行の予測」③モデル作成

前回はkaggleコンペの「メルカリにおける値段推定」の1位の解析手法を話しました。内容が長いなので、3つの記事に分けました。今回は「Home Credit Default Risk 債務不履行の予測」のモデル作成について書きます。 目次 1.  Home Credit Default Riskのコンペの概要 ___1.1 コンペの概要 ___1.2 データセットの概要 ___1.3 データの理解 2.  1位の特徴量エンジニアリング ___2.1 特徴量生成 ___2.2 カテゴリカル特徴量の処理 ___2.3 特徴量選択 3.  1位のモデル作成 ___3.1 3.1 Base Models ___3.2 アンサンブル学習(Ensemble learning) ___3.3 その他 3.1位のモデル作成 3.1 Base Models モデル評価はStratifiedKFold, with 5-folds交差検証(Cross Validation)を利用しました。Stratified 普通のk-foldとも比較したが今回は大きな差はありません。 交差検証 (Cross Validation) 交差検定では、用意したデータをK個に分割して、1回目はそのうちの一つをテストデータ、それ以外を学習データとして、学習・評価します。2回目は1回目と異なる別のデータをテストデータとして使い、3回目は1,2回目と異なるデータで評価をします。そして、各回で測定した精度の平均を取ります。 交差検証の説明はこちらです。 ・LightGBM, XGBoost, FastRGF, FFM を使ったがCVは良くなかった。 …

kaggle1位の解析手法 「Home Credit Default Risk 債務不履行の予測」③モデル作成 Read More »

kaggle1位の解析手法 「Home Credit Default Risk 債務不履行の予測」②特徴量エンジニアリング

前回はkaggleコンペの「メルカリにおける値段推定」の1位の解析手法を話しました。内容が長いなので、3つの記事に分けました。今回は「Home Credit Default Risk 債務不履行の予測」の特徴量エンジニアリングについて書きます。 目次 1.  Home Credit Default Riskのコンペの概要 ___1.1 コンペの概要 ___1.2 データセットの概要 ___1.3 データの理解 2.  1位の特徴量エンジニアリング ___2.1 特徴量生成 ___2.2 カテゴリカル特徴量の処理 ___2.3 特徴量選択 3.  1位のモデル作成 ___3.1 3.1 Base Models ___3.2 アンサンブル学習(Ensemble learning) ___3.3 その他 2.  1位の特徴量エンジニアリング 1位のコメントにより、特徴量設計をまとめます。 https://www.kaggle.com/c/home-credit-default-risk/discussion/64821 この競争に適したモデルを構築するには、次の2つのことが重要です。 1. 賢くて正しい特徴量セット。 2.多様なアルゴリズムベース 2.1 特徴量生成 ・データが異質であり、異なる期間のデータや多くのデータソースなので、かなりの前処理が必要です。 ・様々な特徴量はManyToOneの結構で集計しての表を作成しました。約700の特徴量になりました。 ・複数の特徴量を試しまして、EXT_SOURCE_3でapplicationを割ったのは効果がありました。 ・Previous_application.csvの最後の 3, 5番目の特徴量と最初の2, 4番目の特徴量のapplicationsについてそれぞれ集計は一番良いスコアになりました。 ・Installment_payments.csvの集計は、最後の2,3,5のpayments、NUM_INSTALMENT_NUMBER が …

kaggle1位の解析手法 「Home Credit Default Risk 債務不履行の予測」②特徴量エンジニアリング Read More »

kaggle1位の解析手法 「Home Credit Default Risk 債務不履行の予測」①データ理解

前回はkaggleコンペの「メルカリにおける値段推定」の1位の解析手法を話しました。内容が長いなので、3つの記事に分けました。今回は「Home Credit Default Risk 債務不履行の予測」のデータ理解について書きます。 目次 1.  Home Credit Default Riskのコンペの概要 ___1.1 コンペの概要 ___1.2 データセットの概要 ___1.3 データの理解 2.  1位の特徴量エンジニアリング ___2.1 特徴量生成 ___2.2 カテゴリカル特徴量の処理 ___2.3 特徴量選択 3.  1位のモデル作成 ___3.1 3.1 Base Models ___3.2 アンサンブル学習(Ensemble learning) ___3.3 その他 1. Home Credit Default Riskのコンペの概要 1.1 コンペの概要 http://www.homecredit.net/ Home CreditがKaggleでHome Credit Default Risk(債務不履行の予測)コンペを主催しました。 Home Credit社は、アジアの9か国で信用の積み重ねが足りずに融資を受けることができない顧客にも融資を行う会社です。 目的:個人のクレジットの情報や以前の応募情報などから、各データが債務不履行になるかどうかを予測する問題です。 賞金: 1位35,000米ドル、2位25,000米ドル、3位10,000米ドル 期間: 2018/05/18 ~ …

kaggle1位の解析手法 「Home Credit Default Risk 債務不履行の予測」①データ理解 Read More »

kaggle1位の解析手法 「メルカリにおける値段推定」(3) 1位の手法

< kaggle1位の解析手法 「メルカリにおける値段推定」2.可視化 前回は過去kaggleコンペでメルカリが「メルカリにおける値段推定」(Mercari Price Suggestion Challenge)のデータ可視化を解説します。今回は1位の手法を解説したいと思います。   (3) 1位の解法 ___3.1 1位の解法の概要 ___3.2 1位の解法の特徴 ___3.3 1位の解法のコード (3) 1位の解法 Paweł and Konstantinのチームが終了後解法を公開しました。1位解法は非常にシンプルなNNで構成されており、多様性の出し方やモデリング方法など必見です。 いろいろ試行錯誤した結果から、最終的な解法は12個のMLPのアンサンブルになりました。最終的なモデルは同じデータで異なるモデルを学習させるよりも、異なるデータを同じモデルに学習させたほうが多様性を表現できることに気づき、モデルはMLPと決めたそうです。計算時間制約を考えてもMLPは都合が良かったとのこと。 1位解法の特徴 ・MLPは2種類に大別できます。一つは損失をHuber lossとした回帰モデルで、もう一つが分類モデルを経由した回帰モデルです。分類モデルは、過剰適合が少ないため、それ自体でより良いスコアができました。 ・学習/推論の直前で特徴量を全て2値化(非ゼロか否か)する処理を加えてると、スコア改善は見られなかったようです。 ・1層目にL2正則化を加えることは効果的だったようです。RELUよりもPRELUが効果的だったそうです。 ・最終的に選択した2つのsubmitはtensorflowとMXNetそれぞれで実装したモデルにしたそうです。MXNetモデルは高速でしたが、より多くのメモリを使用し、信頼性が低くになります。 1位解法のコード import os; os.environ[‘OMP_NUM_THREADS’] = ‘1’ from contextlib import contextmanager from functools import partial from operator import itemgetter from multiprocessing.pool import ThreadPool import time from typing import List, …

kaggle1位の解析手法 「メルカリにおける値段推定」(3) 1位の手法 Read More »

kaggle1位の解析手法 「メルカリにおける値段推定」2.可視化

< kaggle1位の解析手法 「メルカリにおける値段推定」1.データ概要 > kaggle1位の解析手法 「メルカリにおける値段推定」3. 1位の手法 前回は過去kaggleコンペでメルカリが「メルカリにおける値段推定」(Mercari Price Suggestion Challenge)のデータ概要を解説します。今回はデータ可視化を解説したいと思います。 2. Kaggleメルカリのデータ ___2.1 データの概要 ___2.2 データ可視化 ___2.3 データの前処理 2. Kaggleメルカリのデータ データは2stageになります。2stageコンペでは、配布されたテストデータの全量がpublic LB用の評価データ(stage 1)、競技者には非公開のテストデータがprivate LB用の評価データ(stage 2)となります。 では、データを確認しましょう。 train = pd.read_csv(f'{PATH}train.tsv’, sep=’\t’) test = pd.read_csv(f'{PATH}test.tsv’, sep=’\t’) print(train.shape) print(test.shape) (1482535, 8) (693359, 7) train.head() 目的変数: Price train.price.describe() count 1.482535e+06 mean 2.673752e+01 std 3.858607e+01 min 0.000000e+00 25% 1.000000e+01 50% 1.700000e+01 75% 2.900000e+01 …

kaggle1位の解析手法 「メルカリにおける値段推定」2.可視化 Read More »

kaggle1位の解析手法 「メルカリにおける値段推定」1.データ概要

過去kaggleコンペでメルカリが「メルカリにおける値段推定」(Mercari Price Suggestion Challenge)を開催されました。今回の記事はkaggle1位の解析手法をまとめたいと思います。データ概要、可視化、1位の手法の3つの記事を分けています。今回はデータ概要を解説します。 目次 1. Kaggleメルカリコンペの概要 ___1.1 コンペの概要 ___1.2 コンペの目的 ___1.3 コンペのルール   1. Kaggleメルカリコンペの概要 1.1 コンペの概要 Kaggleでメルカリコンペは株式会社メルカリが主催した、商品の適正な販売価格予測コンペです。訓練データとして、ユーザーが投稿した商品情報、商品の状態、ブランド名などデータによって、販売価格を予測するモデル作成が課題です。テーブルデータですが文章データも含まれているためNLPの知識が必要になります。kernel only コンペなので実験環境と実行時間に制限があります。   1.2 コンペの目的 目的:フリマアプリ「メルカリ」は、誰でも簡単に売買ができるフリマアプリで、出品時に売り手が商品の価格設定をする必要があります。価格を相場以上にすると売れませんし、相場以下にすると損をしてしまいます。適正な販売価格と設定のために、相場を調べておけば解決できますが、手間がかかります。そのため、販売者が投稿した情報を基に「適正な販売価格」を予測するシステムを目的とします。   1.3 コンペのルール 賞金: 1位60,000米ドル、2位30,000米ドル、3位10,000米ドル 期間: 2017/11/22 ~ 2018/02/22 参加チーム数:2,382 環境:kernel only kernelの環境は 4cores / 16GB RAM / 1GB disk / GPUなし で計算時間を60分未満です。 評価:RMLSE Root Mean Squared Logarithmic Error 定義は RMLSEスコアが低ければ低いほど、小さい誤差で値段を推定できます。 詳細:https://www.kaggle.com/c/mercari-price-suggestion-challenge/overview > kaggle1位の解析手法 「メルカリにおける値段推定」2.可視化