分類分析

LogitBoostの解析

関連記事: NGBoost CatBoost LightGBM      目次 1. LogitBoostの概要 __1.1 LogitBoostとは __1.2 LogitBoostのライブラリ 2. 実験・コード __2.1 環境の準備 __2.2 ライブラリのインポート __2.3. データロード __2.4. データ加工 __2.5. モデル学習 __2.6. モデル評価 1. LogitBoostの概要 1.1 LogitBoostとは LogitBoostは、バイナリまたはマルチクラス分類アルゴリズムの一つになります(一応回帰も可能です)。LogitBoost と AdaBoost は、どちらも加法ロジスティック回帰を行うという点で似ています。違いは、AdaBoost が指数損失を最小化し、LogitBoost がロジスティック関数の損失関数を最小化するように学習する事です。 1.2 LogitBoostのライブラリ 下記のようにScikit-learnライクに使う事ができます。 logitboost.LogitBoost(base_estimator=None, n_estimators=50, weight_trim_quantile=0.05, max_response=4.0, learning_rate=1.0, bootstrap=False, random_state=None) パラメータの意味です。 base_estimator (object, optional (default=None)) classifierまたはregressorを指定することができます。 base_estimatorが指定されていない場合は、decision stump(分ける時に2値のフラグでわけます)が使用されます。 n_estimators …

LogitBoostの解析 Read More »

LiteMORTの解説

関連記事: Xgboost、LightGBM 今回の記事はヒストグラムベースの特徴の新たなLiteMORTを解説します。         目次: 1.  LiteMORTとは 2.  LiteMORTの特徴 3. 実験・コード __3.1 データ読み込み __3.2 LiteMORT xgboost lightGBM __3.3 モデル評価 4. まとめ 1.  LiteMORTとは LiteMORT(A memory efficient gradient boosting tree system on adaptive compact distributions)は、分割の際にヒストグラムを用いていきます。ノイズの多い特徴をよりコンパクトで堅牢に評価します。このアルゴリズムにより、速度が向上し、メモリ使用量が大幅に削減され、精度が維持されます。 LiteMORTの論文 LiteMORT: A memory efficient gradient boosting tree system on adaptive compact distributions  2. LiteMORTの特徴 2.1 適応的なサイズ変更されたビンでの機能の分布。 ヒストグラムのビンは、実際にはさまざまな変数の分布を計算する基礎です。 より洗練されたビンを使用すると、より良い分布パラメーターを取得できます。 一部のビンがより重要な場合は、そのサイズを縮小するか、2つのビンに分割します。 …

LiteMORTの解説 Read More »

NGBoostの解説

Stanford ML Groupは予測の不確かさを扱える新しい勾配ブースティング「NGBoost」を発表された。今回の記事はNGBoostを解説と実験したいです。 関連記事: 決定木分析、ランダムフォレスト、Xgboost、LightGBM 目次: 1.  NGBoostとは 2.  NGBoostの特徴 3. 実験・コード __3.1 データ読み込み __3.2 Xgboost、LightGBM、NGBoost __3.3 モデル評価 __3.4 可視化 4. まとめ 1.  NGBoostとは 勾配ブースティング(Gradient Boosting)は、いくつかの弱学習器(または基本学習器)が加法アンサンブルで結合されています。NGBoostアルゴリズムは、ブースティングを使用して条件付き確率分布のパラメーターを推定する、確率的予測のための教師あり学習方法です。 NGBoostの論文:  NGBoost: Natural Gradient Boosting for Probabilistic Prediction https://arxiv.org/abs/1910.03225 https://stanfordmlgroup.github.io/projects/ngboost/ アルゴリズムには3つの構成要素があります。 Base learner (f) Parametric probability distribution (Pθ) Proper scoring rule (S) Base Learner 決定木などのアルゴリズム Probability Distribution 出力する確率分布、正規分布、ラプラス分布などの分布設定 Scoring rule MLE, …

NGBoostの解説 Read More »

エクストラツリー(ExtraTree)の解説

前回の記事はランダムフォレスト(Random Forest)について解説しました。今回はランダムフォレストに似ているExtraTreesについて解説します。 関連記事: 決定木分析、ランダムフォレスト、Xgboost、CatBoost、LightGBM 目次: 1.  エクストラツリー ExtraTreesとは 2.  エクストラツリー ExtraTreesの特徴 3.  SklearnのExtraTreesのパラメーター 4.  実験・コード __4.1 データ読み込み __4.2 決定木、ランダムフォレスト、ExtraTrees __4.3 モデル評価 1.  エクストラツリー ExtraTreesとは ExtraTrees とは Extremely Randomized Treesの略称です。ExtraTreesClassifierは、基本的に決定木に基づくアンサンブル学習方法です。RandomForestのようなExtraTreesClassifierは、特定の決定とデータのサブセットをランダム化して、データからの過剰学習をランダムフォレストよりも少なくすることを想定されています。 論文はこれになります。 Extremely randomized trees Pierre Geurts · Damien Ernst · Louis Wehenkel https://link.springer.com/content/pdf/10.1007/s10994-006-6226-1.pdf 2.  エクストラツリー ExtraTreesの特徴 決定木とランダムフォレストとExtraTreesを比較します。 決定木 通常、単一の決定木はめ、学習元のデータに対してオーバーフィッテングになりやすいです。通常、ランダムフォレストのほうが精度高い事が多いです。 ランダムフォレスト ランダムフォレストモデルは、複数ツリー(n_estimators)を作成し、過学習を減らす事が出来ます。 Extra Trees Extra Treesはランダムフォレストに似ています。複数のツリーを構築する所は、一緒ですが、木のノード(葉)を分割する所の特徴量(ジニ係数、エントロピー)のどちらかをランダムに選びます。 3.  SklearnのExtraTreesのパラメーター class …

エクストラツリー(ExtraTree)の解説 Read More »

kaggle1位の解析手法 「Cdiscountの画像分類チャレンジ」3 モデルの解説

前回記事の過去のkaggleコンペの「Cdiscountの画像分類チャレンジ」のデータ概要と環境準備を話しました。今回の記事はCdiscountの1位の解析モデル作成と解説します。 目次 1.  「Cdiscountの画像分類チャレンジ」のコンペの概要 ___1.1 コンペの概要 ___1.2 データセットの概要 ___1.3 データの理解 2.  1位の解説の環境準備とデータ処理 ___2.1 特徴量生成 ___2.2 解析方法のサマリー ___2.3 大きなデータセットの準備 3.  1位のモデルの解説 ___3.1 学習済みモデルの調整 ___3.2複数枚の画像データセットを利用 ___3.3 OCRデータの追加 ___3.4そのたの方法 ___3.5 restnetモデルのコード 3.1 学習済みモデルの調整 Resnet34で実験を開始しました。 実験の結果: 1.ほとんどすべての学習済みモデルのネットワーク構造は、1000ラベルのイメージネット用ですが、今回のコンペは5270ラベルがあります。それを直接使用すると、ネットワークのボトルネックが発生します。 2. SGD(Stochastic Gradient Descent)よりADAM Optimizerはエポックの学習が速いと変わりました。 restnet34に1×1カーネルコンボリューションレイヤーを追加しました。チャネルが512から5270になり、FC(完全接続)が5270 * 5270になります。 Adamを追加ました。エポックを増やしたから、Learning rateを小さいくなります。 lr = 0.0003 if epoch > 7: lr = 0.0001 if epoch …

kaggle1位の解析手法 「Cdiscountの画像分類チャレンジ」3 モデルの解説 Read More »

kaggle1位の解析手法 「Cdiscountの画像分類チャレンジ」2 解説の環境準備とデータ処理

前回記事の過去のkaggleコンペの「Cdiscountの画像分類チャレンジ」のデータ概要を話しました。今回の記事はCdiscountの1位のやり方について解説していきます。 目次 1.  「Cdiscountの画像分類チャレンジ」のコンペの概要 ___1.1 コンペの概要 ___1.2 データセットの概要 ___1.3 データの理解 2.  1位の解説の環境準備とデータ処理 ___2.1 特徴量生成 ___2.2 解析方法のサマリー ___2.3 大きなデータセットの準備 3.  1位のモデルの解説 ___3.1 学習済みモデルの調整 ___3.2複数枚の画像データセットを利用 ___3.3 OCRデータの追加 ___3.4そのたの方法 ___3.5 restnetモデルのコード public leaderboardの1位はbestfittingさんです。 2020/02時点でbestfittingはKaggle Rankingsに一位になっています。3年前初めて参加しましたが、26個の金メダルを獲得しています。 1位のコメントにより、特徴量設計をまとめます。 https://www.kaggle.com/c/cdiscount-image-classification-challenge/discussion/45863 問題点としては、以下になります。 1.1500万以上の画像と5000以上のカテゴリを持つ大規模なデータセット。 2.一部の製品と1-4枚の画像 3.CD/BOOKは分類が非常に困難 4.全体の精度も最高で0.8になると推定しました。多くの方法を選択でき、改善する余地が大きいため、勝つのは非常に困難 解析方法のサマリー 全体の解析方法は下記になります。 1.大きなデータセットの準備 2.学習済みモデルの微調整(0.759 / 0.757、inception-resnet-v2,0.757 / 0.756 resnet50) 3.。 複数枚の画像データセットを利用(0.772 / 0.771 inception-resnet-v2および0.769 / 0.768 …

kaggle1位の解析手法 「Cdiscountの画像分類チャレンジ」2 解説の環境準備とデータ処理 Read More »

kaggle1位の解析手法 「Cdiscountの画像分類チャレンジ」1コンペの概要

今回のkaggle1位の解析手法のシリーズはKaggleでよく行われる画像分類コンペについて話したいと思います。過去のコンペの「Cdiscountの画像分類チャレンジ」の解析方法を解説します。最初の記事はCdiscountのコンペ概要とデータ理解を紹介します。 目次 1.  「Cdiscountの画像分類チャレンジ」のコンペの概要 ___1.1 コンペの概要 ___1.2 データセットの概要 ___1.3 データの理解 2.  1位の解説の環境準備とデータ処理 ___2.1 特徴量生成 ___2.2 解析方法のサマリー ___2.3 大きなデータセットの準備 3.  1位のモデルの解説 ___3.1 学習済みモデルの調整 ___3.2複数枚の画像データセットを利用 ___3.3 OCRデータの追加 ___3.4そのたの方法 ___3.5 restnetモデルのコード 1.  「Cdiscountの画像分類チャレンジ」のコンペの概要 1.1 コンペの概要 Cdiscountは1999年に設立され、2011年にはフランスで最大のeコマースプラットフォームとなりました。Cdiscountは生鮮食品の販売だけでなく、電気製品、衣料、家庭用品などのすべてのカテゴリを取り揃えています。このコンペは製品の画像をカテゴリ分類するアルゴリズムを作成したいです。 データセットの特徴: ・一つの製品は複数画像がある ・ほぼ900万の製品:現在のカタログの半分 ・180×180の解像度で1500万枚以上の画像 ・5000以上のカテゴリ 目的: このコンペの目的は、画像に基づいて製品のカテゴリを予測することです。 製品には、1つまたは複数の画像があります。 テストセットのすべての製品IDを正しいカテゴリを予測することです。 メトリック Accuracy(正しい製品の割合)で評価されます。 賞金: 1位20,000米ドル、2位10,000米ドル、3位5,000米ドル 期間: 2018/09/14 ~ 2018/12/14 参加チーム数:626 1.2 データセットの概要 BSON拡張子ファイル BSON拡張子はBinary JSONで、主にMongoDBのデータストレージ及びネットワーク転送フォーマットとして利用されている、データ交換フォーマットである。 train.bson …

kaggle1位の解析手法 「Cdiscountの画像分類チャレンジ」1コンペの概要 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 その他 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 »