【タイタニック】AutoTrainで2値分類

# AutoTrain🚂🚂🚂とは

ノーコードでテキスト分類や要約や構造化データの機械学習などがstate-of-the-artできるサービスです。本日より構造化データもサポートされました🎉
AutoNLPだとググラビリティが低かったのではなく、構造化データもサポートしたかったから名称変更したようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208363/455f097f-30c1-c7f0-050f-5907ae43f968.png)

https://huggingface.co/autotrain

https://twitter.com/julsimon/status/1514630305293996041

# データ準備
沈没する船の乗客が生存できたかどうかの2値分類をします。
CSVファイルをダウンロードしましょう。
```bash
wget https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv
```


## プロジェクトの作成

**Tabular Data Classification (Binary)** を選択し、プロジェクトを作成します。

https://ui.autonlp.huggingface.co/new

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208363/090e6beb-18d4-ea25-5609-43b74aeb9be2.png)


## csvファイルをアップロード
jsonlでもアップロードできます。
今回はcsvファイルをドラッグ・アンド・ドロップし、`target:Survived`カラムを選択し、プロジェクトに追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208363/f5813ef0-14d8-b8a8-137f-a4b9af940c64.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208363/4d2a5e0b-2f7c-7927-0408-d0642585479b.png)


**Go to trainings**をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208363/88558d93-9680-15c9-ac49-d54171d79476.png)





# 学習
**Start models trainings**をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208363/51c7b207-6c26-5577-2cc0-74aed397e62e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208363/f12eb3f6-4057-7b32-caae-40356509cca9.png)


# 推論
83%の精度で分類できました。modelをクリックし、model hubで推論できます。
Kaggleであれば、上位1.5%以内のレベルです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/208363/907122d9-3bf1-435c-b092-53aa6b62192f.png)

https://qiita.com/shiroino11111/items/bc3889fa38ff32d46c13

https://huggingface.co/vabadeh213/autotrain-titanic-744222727


## モデルをダウンロード

モデルをダウンロードすることでオフラインで推論できます。

https://colab.research.google.com/drive/16rmsJTBelh2vIWVxt9ncFEJmU7cEdUsE?usp=sharing

### モデルをダウンロード
```python
!curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
!sudo apt-get -qq install git-lfs
!git lfs install
#!git clone "https://$USERNAME:$PASSWORD@huggingface.co/vabadeh213/autotrain-titanic-744222727" # set username/password for private model
!git clone https://huggingface.co/vabadeh213/autotrain-titanic-744222727
```

### joblibで推論

```python
import json
import joblib
import pandas as pd

model = joblib.load('model.joblib')
config = json.load(open('config.json'))

features = config['features']
df = pd.read_csv('titanic.csv')
X = df[features]
X.columns = X.columns.map(lambda x: 'feat_' + x)

predictions = model.predict(X)  # or model.predict_proba(data)
df['predicted'] = predictions
df
```
|   Survived |   Pclass | Sex    |   Age |   SibSp |   Parch |    Fare | Cabin   | Embarked   |   predicted |
|-----------:|---------:|:-------|------:|--------:|--------:|--------:|:--------|:-----------|------------:|
|          0 |        3 | male   |    22 |       1 |       0 |  7.25   | nan     | S          |           0 |
|          1 |        1 | female |    38 |       1 |       0 | 71.2833 | C85     | C          |           1 |
|          1 |        3 | female |    26 |       0 |       0 |  7.925  | nan     | S          |           1 |
|          1 |        1 | female |    35 |       1 |       0 | 53.1    | C123    | S          |           1 |

# まとめ
- クレカ登録しない限り無料で使えてとても便利
- 誰でも上位1.5%以内になれる