Web3時代のつよつよビジネスパーソンを目指すブログ

Web3という大きな波に会社員エンジニアはどう対峙すべきか。クリプト、NFT、DeFi、メタバース…多様な情報に触れ思考したことを発信します。どこにでもいる会社員だからこその、日々の気づき、ビジネスTipsも発信します。

【SIGNATEコンペ】日本取引所グループ ファンダメンタルズ分析チャレンジ 記録

signate.jp

挑戦するにあたり、もろもろをメモしていきます。

まずは、株式分析チュートリアル | 日本取引所グループを読み込むところから。

2.2.1. 銘柄情報: stock_list にて

Size (New Index Series)
TOPIXニューインデックスシリーズ規模区分
とはなんだろう・・?

用語集 | 日本取引所グループ

TOPIXニューインデックスシリーズ(とぴっくすにゅーいんでっくすしりーず)
東京証券取引所市場第一部全銘柄を対象に、(1)流動性(売買代金)、(2)時価総額の観点から区分した、規模別株価指数です。
TOPIX Core30、TOPIX Large70、TOPIX 100(大型株)、TOPIX Mid400(中型株)、TOPIX 500、TOPIX Small(小型株)、TOPIX 1000、TOPIX Small500の8指数により構成されます。

2.2.2. 株価情報 : stock_price にて

累積調整係数(EndOfDayQuote CumulativeAdjustmentFactor)は過去のある日時点では知り得ない未来の情報を含んでいる。
特徴量に用いてしまうと、学習、評価データでは良い結果になっても、
最新データでは期待した結果が得られない場合あり。

累積調整係数は、その日以降に、株式分割または株式併合があったことを示している。
最新データでは、累積調整係数のデータは存在せず、特徴量として役に立たないから。

気づいたこと

前回の終値 と 前回の取引所公式終値
前回の終値が発生した日 と 前回の取引所公式終値が発生した日
これらは重複しており、どちらかは特徴量から削除でよいのではないか?
5つほど(だけだが)データを見た感じ、まったく同一の値となっている。

反対に、これら値が異なる時とは、どういう状況なのだろう??

2.5.6. 複数の株価データを同時にプロット にて

ヒストリカルボラティリティが上がってくると、下落の兆候?
f:id:EternalBlueBullet:20210315180539p:plain

"" Windows`で投稿用にzip圧縮するコマンド
Powershellで実行する。
Compress-Archive -Path .\model\,.\src\,.\requirements.txt -DestinationPath ../submit.zip -Force

これでよいと思ったが、エラー


エラーが発生しました。内容は以下の通りです。

                                                                                                                              • -

zipファイルが解凍できませんでした。

                                                                                                                              • -

Runtime計測に失敗しました。402: Traceback (most recent call last): File "./download", line 40, in download_s3_files utils.unzip("/tmp/archive.zip", workspace_path) File "/opt/program/lib/utils.py", line 115, in unzip raise ValueError(process.stderr.read().decode('utf8').strip()) ValueError: warning: /tmp/archive.zip appears to use backslashes as path separators

パスのセパレータがバックスラッシュになってしまう問題かもしれない。
note.kiriukun.com

結局、普通に右クリック→送る からzip圧縮して、提出してみる。

チュートリアルで、どうもエラーが出ていた箇所はこう変えた

TypeError: 'DataFrame' object is not callable
が発生していた。
list型への変換の作法が、どうも違うよう。
以下で、エラーは無くなった。(Anaconda promptでのデバッグにて)

# 学習用データセット定義
columns = {
"fundamental_only": fundamental_cols,
"return_only": returns_cols,
"technical_only": technical_cols,
# "fundamental+technical": list(fundamental_cols) + list(technical_cols),
"fundamental+technical": fundamental_cols.tolist() + technical_cols,
}

しかし、やはり投降後のエラーは変わらず・・エラー結果返ってくるのは、投稿後3H以上かかるし・・。

エラーが発生しました。内容は以下の通りです。

                                                                                                                              • -

Runtime システムエラーが発生しました。再度、ご投稿ください。

                                                                                                                              • -

zipファイルの圧縮の方法が悪いのでは?と思い、zipコマンドを導入

qiita.com


結果、zip圧縮の方法を「Lhaplus」にしたら解決した

Sign In | SIGNATE - Data Science Competition

公式のフォーラムで質問させていただき、助言もあってなんとかsubmit,推論終了まで成功。

ご質問させていただいていた者です。

無事、解決してsubmit、その後の推論まで成功しました。

当方Windows 10 環境でzip圧縮していたのですが、その際、

以下の方法のzipコマンドを使っていたことが原因のようです。

https://qiita.com/Shi-nakaya/items/83d2b2e2b34b897d3df8Windowsだと定番ツールの「Lhaplus」で圧縮することで、正常終了までいきました。

私の見立てでは、上記方法のzipコマンドで圧縮したファイルの場合、

predictor.py のimportにすら到達する前に、ランタイムが固まってしまう?(その後3Hほどかかりやっとエラーが返る)ようでした。同じ状況でお困りの方は少ないと思いますが、ご参考までに。