これまでに挑戦したKaggleコンペ + 参考書籍

これまでに挑戦したKaggleコンペと予測に使ったモデル・精度向上に役立った手法や参考書書籍を挙げてみることにしました。随時更新します。

# Titanic - Machine Learning from Disaster
https://www.kaggle.com/c/titanic

教師あり分類。乗客の情報を元に生き残ったかどうかを予測するデータセットです。

### Kaggleスタートブック
https://www.amazon.co.jp/%E5%AE%9F%E8%B7%B5Data-Science%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-Python%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8BKaggle%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%E3%83%96%E3%83%83%E3%82%AF-KS%E6%83%85%E5%A0%B1%E7%A7%91%E5%AD%A6%E5%B0%82%E9%96%80%E6%9B%B8-%E7%A5%A5%E5%A4%AA%E9%83%8E/dp/4065190061

予測には「Kaggleスタートブック」で行われている **特徴量エンジニアリングとSVM** を使いました。今のところ平均的な予測値をちょこっと上回るというレベル。学習して身についたのはこんなところです。

>- 説明変数の分析と特徴エンジニアリングに`pandas_profiling`を使う
>- 目的変数への寄与率の可視化に`plot_feature_importances`を使う
>- 質的変数はラベルエンコーディング・ワンホットエンコーディングする。性別はラベルエンコーディング、順序なしの質的変数はワンホットエンコーディングする



# House Prices - Advanced Regression Techniques
https://www.kaggle.com/competitions/house-prices-advanced-regression-techniques

教師あり回帰。アイオワ州エイムズ市の住宅価格を回帰予測する学習用コンペです。目的変数は連続値になります。 **説明変数が79列、学習データが1460行、テストデータが1459行** というスケールのデータです。評価は平均2乗誤差(Root mean Squared Error)で算出されます。

### Kaggleデータ分析入門

https://www.amazon.co.jp/Python%E3%81%A7%E5%8B%95%E3%81%8B%E3%81%97%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81Kaggle%E3%83%87%E3%83%BC%E3%82%BF%E5%88%86%E6%9E%90%E5%85%A5%E9%96%80-%E7%AF%A0%E7%94%B0-%E8%A3%95%E4%B9%8B-ebook/dp/B08FDHX4PL/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=15Z7EJ1CQP00J&keywords=Kaggle%E3%83%87%E3%83%BC%E3%82%BF%E5%88%86%E6%9E%90%E5%85%A5%E9%96%80&qid=1688970684&sprefix=kaggle%E3%83%87%E3%83%BC%E3%82%BF%E5%88%86%E6%9E%90%E5%85%A5%E9%96%80%2Caps%2C143&sr=8-1

質的変数をラベルエンコーディング、 **LightGBMと交差検証** を使うことで上位25%にランクイン。次回はEDA・特徴量エンジニアリングを駆使して精度向上を目指します。

![キャプチャ13.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/337578/83d92581-4da0-928f-8500-9bef41e4cc51.png)

## Kaggleで学んでハイスコアをたたき出す
https://www.amazon.co.jp/Kaggle%E3%81%A7%E5%AD%A6%E3%82%93%E3%81%A7%E3%83%8F%E3%82%A4%E3%82%B9%E3%82%B3%E3%82%A2%E3%82%92%E3%81%9F%E3%81%9F%E3%81%8D%E5%87%BA%E3%81%99-Python%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92-%E3%83%87%E3%83%BC%E3%82%BF%E5%88%86%E6%9E%90-%E3%83%81%E3%83%BC%E3%83%A0%E3%82%AB%E3%83%AB%E3%83%9D/dp/4798061867

**歪度が0.75以上の量的な説明変数は値をネイピア数を底とする対数とする** 、**XGBoostとラッソ回帰をアンサンブル学習する** という手法で上位10%にランクイン。Kaggleを始めて以来初の快挙です！住宅価格の予想をする問題ではこの手法をセオリーにして見ようと思います。

![スクリーンショット 2023-07-14 124059 (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/337578/db8bb228-b206-0588-c447-23cc3c653b11.png)

![スクリーンショット 2023-07-14 131428.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/337578/958cb116-3f1a-f7e9-bc05-78c00ba18e57.png)
> 歪度の高い値を対数化するとRMSEを求めるのに適した前処理となる

# Home Credit Default Risk

https://www.kaggle.com/c/home-credit-default-risk

教師あり分類。銀行口座の利用者が債務不履行者か否かを予測するコンペです。データが複数に分かれていてキー結合を要する場合の前処理、 **説明変数が100次元以上ある場合の教師あり分類** の手法を学習できます。

### "Introduction to Manual Feature Engineering"

https://www.kaggle.com/code/willkoehrsen/introduction-to-manual-feature-engineering

"Home Credit Default Risk"の特徴量エンジニアリングの指南コードです。現在学習中。


# House Prices - Advanced Regression Techniques

https://www.kaggle.com/competitions/digit-recognizer

Digit RecognizerはMINISTデータを教師あり分類する学習用コンペです。0~9の手書き文字の数字を28x28ピクセルのグレースケール画像にし分類するタスクで、60,000枚の訓練用画像と10,000枚の評価用画像が含まれます。

![Digit01.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/337578/1a78f299-e1d5-d651-b98d-8bf07d8608e7.png)


Digit Recognizerの分類に使ったモデルは初歩的なニューラルネットワークです。 **入力が784、隠れ層が128、出力が数値の可能性を表す10個の値、パラメータ数は約10万** と尻すぼみな形状のニューラルネットですね。これで汎用精度は **0.97389** を出せました。

今のところスコアは  **1113 / 1627位** と下位のほうに（笑）入っています。PCAを使った前処理やハイパーパラメータの調整などを使って精度を向上させる方法を学ぶほか、「Kaggleで学んでハイスコアをたたき出す」のCNNを使う方法を試す予定です。(2023/07/17)

→HyperOptを使ったハイパーパラメータのチューニングで精度は **0.98114**、順位は **939 / 1627位** にランクイン。次回は前処理やCNNを使った手法に挑戦します。(2023/07/17)