- docker
- docker-compose
cp project.env .env
docker-compose up -d --build
# python file を実行するときには docker の内部で
docker exec -it atmacup-10-jupyter bash
- data を保存するディレクトリを
.env
から変更できます (DATA_DIRをデータの入っているディレクトリに変更してください。デフォルトは./data
になっています) .env
はdocker-compose up
のタイミングでしか更新されません。編集をした場合はdocker-compose up
してください。
run src/exp__027.py
in docker container.
penguin@9e5324b534a4:/analysis$ python src/exp__027.py --h
usage: exp__027.py [-h] [--input INPUT] [--output OUTPUT] [--force] [--simple]
optional arguments:
-h, --help show this help message and exit
--input INPUT input directory (default: /analysis/data/inputs)
--output OUTPUT output directory (default: /analysis/data/outputs)
--force If add me, re-create all models. (default: False)
--simple if add me, create lightgbm model only. (skip other models)
(default: False)
FROM registry.gitlab.com/nyker510/analysis-template/cpu:1.0.4
RUN pip install -U pip && \
pip install \
python-vivid==0.3.3.4 \
shortuuid \
interpret \
pygam \
dataclasses_json \
texthero \
pip install git+https://gitlab+deploy-token-373496:JZxuUxVmg682HGji1Zfs@gitlab.com/atma_inc/anemone.git \
pandas==1.2.2
WORKDIR /home/penguin
RUN git clone https://github.com/facebookresearch/fastText.git && \
cd fastText && \
pip install . && \
rm -rf /home/penguin/fastText
名前とコード内の block 名の順で記載しています。
- CountEncoding
- TargetEncoding
- 文字列の長さ
- 作家の年齢や制作年度の差分等の年度情報 (MakerYaerBlock)
- color で一番 percentage の大きい色の rgb (MainColorBlock)
- rgb 意外の hsv / hls / yiq の情報 (OtherMainColorBlock / ConvertedMainColorBlock)
- importance では割と上位に位置していた
- sub_title に含まれる属性情報をパースして with / height などに展開 (ArtAttributeBlock)
- テキスト系カラムを Tfidf (TfidfBlock)
- tfidf -> truncated svd で圧縮
- 正規化の際にはオランダ語の stopword も含める
- Fasttext による埋め込みを使った SWEM (FasttextEmbeddingBlock)
- オランダ語の pretrained model を利用
- embedding は 100 次元に圧縮
- 今見たら stopword の除去やってないことに気が付きました。
- 外部に紐づくテーブルの
name
を one-hot encoding (One2ManyBlock) - 外部に紐づくテーブルのレコード数 (RelationCountBlock)
- material の名前ごとに年度のランク付け (DatingRankByMaterialBlock)
- 何年間かけて作成してるか (PaintingDurationBlock)
- 紐づく principal maker で出現する qualification / roles / productionPlaces の one-hot
- カウントベース: PrinciapMakerCountBlock
- カウントしたあとに全出現回数で正規化 (PrincipalMakerMetaBlock)
- 全 art_object で principal maker ごとの他のカラムのユニーク数・割合 (PrincipalMakerOtherFieldMetaBlock)
- 作家ごとに principal maker の情報を集約した特徴 (MakerCountBlock)
- 作家の誕生日が抜けているのを sorting date の最小値で穴埋めする (FilledMakerBirthBlock)
- 制作日と取得日の差分 (AcquisitionAndDatingBlock)
- single
- lightgbm x5 (objective=rmse / poisson)
- xgboost x5
- random forest
- ridge
- svm (Bagging 利用)
- stacking
- ridge
- lightgbm
- もとの特徴量と single model を混ぜた lightgbm
結局 lightgbm x5 が CV / LB ともに stakcing と同程度だったのでモデル部分はあまり多様性に寄与していないと思います。