- 1. 年利30%超え!!!!!LightGBMを用いたトヨタ株自動売買シミュレーション
- 2. inquirerpy で対話形インタフェースを作成してみよう
- 3. 【学習記録】入力の配列による保持 (paizaランク D 相当)
- 4. pandasで複数CSVファイルを読み込んで、結合する
- 5. Geopyで2点間の距離を測定する方法
- 6. (保存版)Djangoチートシート
- 7. 【相場分析】フィボナッチ・リトレースメントをPythonで可視化する
- 8. PythonとGraphvizでグラフを描く_2
- 9. ABC190 C – Bowls and Dishes から学んだ
- 10. ABC213 C – Reorder Cards が解けて歓喜
- 11. Anacondaを使わずにFaceSwapを使う話
- 12. タスクランナー Doit を使ってみよう
- 13. Python で Azure の リソースグループ単位で日々の使用料金を取得し、ローカルファイルに保存してみました
- 14. 【Python + Excel】テスト仕様書の選択肢を色付けして読みやすくする
- 15. 2021年版 Pythonでword2vecの実装と利用
- 16. webdriver-manager で Chrome webdriver を自動更新する
- 17. Azure の使用料金を Teams の チャネル に POST してみました 【ResourceGroup-Monthly編】
- 18. フィボナッチ数列を行列を使ってO(log(n))で計算する
- 19. 【Flaskエラー】TypeError: exceptions must derive from BaseExceptionが出た時
- 20. 割り込み処理
年利30%超え!!!!!LightGBMを用いたトヨタ株自動売買シミュレーション
胡散臭いタイトルですがガチです。
(シミュレーション方法等間違っていたらコメントで教えてください)# TL;DR
* LightGBMを用いて翌日のトヨタ株の終値が予測実行日の終値よりも、上がる or 下がるの二値分類を実施
* 上がる場合は株を買う、下がる場合は株を売る、という処理を毎日実施
* 2020/01/01~2020/12/31の実績を用いて売買のシミュレーションを行ったところ、年利30.2299%のプラスとなった# 背景
仕事をサボりながらネットサーフィンをしていたら[面白そうな論文](https://irdb.nii.ac.jp/00926/0001748489)を発見。当論文は2008年の発表で、予測モデルはSVMを使用している。
そこで、2008年以降に発表されたモデル(今回はLightGBM)で予測する実験を行う。
また、該当論文では、日経平均株価を予測対象としているが、今回は実際の取引を想定して、トヨタ自動車株式会社の株価を予測対象とする。
# 実験環境
* Google Colab# 使用データ
* トヨタ自動車株式会社の株価
* 日
inquirerpy で対話形インタフェースを作成してみよう
# inquirerpy について
[inquirerpy](https://pypi.org/project/inquirerpy/) は NodeJS での[inquirer.js](https://github.com/SBoudrias/Inquirer.js/) に触発されて開発された、会話形アプリケーションを作成するための拡張モジュールです。
類似のモジュールには [python-inquirer](https://github.com/magmax/python-inquirer) や、(PyInquirer https://github.com/CITGuru/PyInquirer) があります。
python-inquirer も [node.js](https://nodejs.org/ja/) の [inquirer.js](https://github.com/SBoudrias/Inquirer.js) に触発されてほぼ同じ実装をPython で実現できるように開発されました。しかし、残念ながら Windows では一部うまく動作しないことが確認されています
【学習記録】入力の配列による保持 (paizaランク D 相当)
## 目次
– 問題文
– 書いたコード
– 解答例
– 学んだこと
– 振り返り背伸びしてチャレンジしたらBランクの問題が解けた…!!
のですが、時間かけすぎて?ランク認定されず。
悔しいのと、基本的な型や関数の理解がボロボロ抜けてるいうことが分かったので、スキルチェックではなく解答例が見れるpaizaラーニングでもう少し基礎を固めます。### 問題文
[詳細はコチラ](https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_std_in_out_step4)>整数 n と n 個の数 a_1, …, a_n が改行区切りで与えられます。与えられた a_1, …, a_n の中で最も大きい数を出力してください。
>入力値
n
a_1
…
a_n>解答例
3
20
19
2>出力例
20要約すると、n個整数が与えられてその中から大きい値を出力せよ、という問題。
## 書いたコード
“` main.py
count = int(input())
ans = 0while
pandasで複数CSVファイルを読み込んで、結合する
“`ruby:python
#ゲットファイルリスト
path = ‘testData/’
files = os.listdir(path)
train_csv = list(filter(lambda x:(x[0:6] == ‘train_’ and x[-4:] == ‘.csv’),files))#ゲットCSVデータ
data_list = []
for fileitem in train_csv:
tmp = pd.read_csv(path + fileitem,header=0)
data_list.append(tmp)#結合
dataset = pd.concat(data_list,ignore_index = False)
“`
Geopyで2点間の距離を測定する方法
GPS等の位置情報(緯度,経度)データを扱う中で、2つの位置情報間の距離を算出する方法をまとめました。
今回`python`の`Geopy`というライブラリを活用しています。特定の緯度経度同士の距離を出す方法は巷にあふれているのですが、複数の位置情報データを利用した算出方法を見つけられなかったため、記事を書くことにしました。お役に立てると幸いです。
私は`Google Colaboratory`を利用しています。PythonのVerは`Python 3.7.12`でした。
#Geopyのインストール方法
`Google colaboraory`はデフォルトで`Geopy`がインストールされていますので、以下手順はスキップしてください。“`
pip install geopy
“`#データフレームの準備
緯度経度情報のあるデータフレームを準備します。“`
list = [[35.68142790460516, 139.76714625616972], [34.702714709994204, 135.49593986965132],[31.601693966235
(保存版)Djangoチートシート
##はじめに
Django初学者でもすんなりと学べるようDjangoのインストールからアプリケーションの作成&認識まで解説します。
ってのは建前で、
本音は、いちいち入力するのが面倒なので一覧作っておきます
##Pythonのインストール
Pythonの公式ページのダウンロードページに行き、ダウンロードしてください。https://www.python.org/downloads/
ターミナルやコマンドプロンプト上で
“`
$ python3 –version
Python 3.8.10
“`等が表示されればインストールできています。
##Djangoのインストール
Macであればlinuxはもともと入っているので大丈夫だとは思いますが、WindowsではUbuntuを入れてlinuxコマンドを使えるようにしてください。Ubuntuの入れ方は以下を参考に。
https://netwiz.jp/how-to-install-ubuntu-20-04-lts-on-windows10/
Djangoはpipコマンドでインストールします。
(仮想環境上でも同様)
【相場分析】フィボナッチ・リトレースメントをPythonで可視化する
![Fibonacci.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/688854/e59b5272-58db-7442-2457-05f686a2125c.png)
## 概要
記事タイトル通り、フィボナッチ・リトレースメントをPythonで計算してみます。
## フィボナッチ・リトーレスメントとは
株だろうが為替だろうが仮想通貨だろうが、価格チャートを一度でも見た事のある方はわかると思いますが、相場というのは必ず上下に「波」を描きながら進行していきます。
片時も休みなくどちらか一直線に傾き続けるという事はありません。
その金融商品を買った(売った)人は利確や損切りのために必ずどこかのタイミングで売ら(買わ)なければなりませんし、ある程度トレンドの勢いが弱まったタイミングで逆張りを仕掛けてくる勢力が常に居たりするからですね。
そういった動きの事を金融業界では
– [綾押し](https://www.daiwa.jp/glossary/YST0037.html)
– 相場が上昇傾
PythonとGraphvizでグラフを描く_2
# 前回までのおさらい
前回ではコミックの登場人物を題材に有向グラフを描いてみました。
今回はこのグラフをより詳しくしていきます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/186560/97946982-480e-4e60-1330-4b8eedfd436d.png)
## とりあえずノードを増やす
“`python:example2.py
import graphvizdot = graphviz.Digraph(format= ‘png’,
comment = “今世は当主になります ~2話まで 人物相関図”)
dot.attr(‘node’, fontname = ‘Meiryo UI’)
dot.attr(‘edge’, fontname = ‘Meiryo UI’)dot.node(‘L’, ‘ルーラック・ロンバルディ\n現当主’)
dot.node(‘F’, ‘フィレンティア・ロンバルディ\n主人公’)
dot.node(‘G’, ‘ギャラハン・ロ
ABC190 C – Bowls and Dishes から学んだ
https://atcoder.jp/contests/abc190/tasks/abc190_c
![abc190_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/de758cc7-4009-1508-b710-58cb643bd3a4.png)
![abc190_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/8142cf19-9a85-896f-be4c-8f0b8f733a1b.png)
![abc190_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/4c516677-7f51-1fe4-8b4f-30cf5ababfc6.png)
![abc190_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/
ABC213 C – Reorder Cards が解けて歓喜
https://atcoder.jp/contests/abc213/tasks/abc213_c
![abc213_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/0917c7b0-87ef-a4d8-3177-b3b3285db10e.png)
![abc213_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/096de8fb-14aa-4643-52c2-4ee481921d15.png)
![abc213_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737344/8cb27342-4954-d236-e10d-f037a8b36a73.png)
![abc213_4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/
Anacondaを使わずにFaceSwapを使う話
##初めに
初めてのQiitaの為、至らぬ点が多々あるとは思います不完全だとは思いますが一旦公開します
markdownの記法にも乏しいため見づらいかもしれません
適当に修正していきます#本題
[faceswap](https://github.com/deepfakes/faceswap)(https://github.com/deepfakes/faceswap)
を実行するにあたってAnacondaをインストールしてほしくなかったた
Anacondaを使わない方法を模索した失敗について記述すると冗長になるので要点のみ纏めます
faceswapの詳細、Pythonのインストール等については他の方が書いているものが相当数あるので割愛
####環境
OS: Windows10
CPU: Ryzen 3700X
GPU: RTX3070
Python 3.8.6####1,公式ドキュメントに従ってgit clone
“`console:cmd
git clone –depth 1 https://github.com/deepfakes/faceswap.gi
タスクランナー Doit を使ってみよう
# はじめに
タスクランナー doit のドキュメントを抄訳したものです。
この資料を読んで、「少し試してみようか」と思ってもらえることを意識して章立ても少し変えています。# doit について
![doit-logo.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/182364/3698d4cb-fea9-b1db-3489-69bebf93f5d1.png)doit は Python で実装された、タスクを簡単に定義することができ、プロジェクトに関連するすべてのタスクを、使いやすく、発見しやすい方法で統一して整理することができるツールです。
次のような特徴があります。
* doitは、ビルドツールであらゆる種類のタスクを実行する、というアイデアから生まれました。doitは、アドホックなタスクを簡単に定義できるシンプルなタスクランナーとして使用することができ、プロジェクトに関連するすべてのタスクを使いやすく、発見しやすい方法で整理することができます。
* doitは、ビルドツールのよう
Python で Azure の リソースグループ単位で日々の使用料金を取得し、ローカルファイルに保存してみました
## 概要
Azure SDK for Python を利用して、テナントに紐付いているサブスクリプション毎にリソースグループ単位での日々の使用料金を取得し、そのデータをローカルファイルに保存するための Python プログラムです。### 実行環境
macOS Big Sur 11.1
python 3.8.3### 実行プログラム
“`python:GetCostDetail_to_LocalFile.py
import time
import json
import argparse
from tabulate import tabulate
from azure.identity import AzureCliCredential
from azure.mgmt.resource import SubscriptionClient
from azure.mgmt.costmanagement import CostManagementClient
from datetime import datetime
import pandas as pd# 接
【Python + Excel】テスト仕様書の選択肢を色付けして読みやすくする
# 概要
以下のようなテスト仕様書の各種選択肢を、
以下のように色付けし、1つ上のセルと比較して変更されている項目を分かりやすくしたい。
# Python バージョン
3.8.2
# 実行手順
1. venv などで仮想環境を構築
2. `pip install -r requirements.txt`
3. 対象とする Excel ファイルを開く
4. `python main.py`# コード
## requirements.txt
“`
x
2021年版 Pythonでword2vecの実装と利用
# Install
環境:Jupyter Lab
pip で簡単にインストールできます.“`python
!pip install gensim
“`# 利用
ここのtxtファイルは既にわかち書き済みのデータなので,ご注意ください.
昔のバージョンのsizeはvector_sizeに変更し,iterはepochsに変更しました.
“`python
# Ref: https://teratail.com/questions/131715
# Ref: https://radimrehurek.com/gensim/models/word2vec.html#gensim.models.word2vec.Text8Corpus
# data training# vector_size : ベクトルの次元,いわゆるニューロンの数
# min_count : 出現頻度が〇〇以下の語を無視
# window : 対象単語を中心とした前後の単語数
# epochs : epochs数from gensim.models import word2vec
sente
webdriver-manager で Chrome webdriver を自動更新する
#問題
* PythonでChrome webdriverを使っていると、Chrome本体とのバージョンの不整合で、頻繁にアップデートが必要になる。“`
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 90
Current browser version is 94.0.4606.71 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
“`* 面倒くさいので自動化したい。
#解決方法
* モジュール `webdriver-manager` を用いることで自動化できる。##インストール
$ pip install webdriver-manager#コードの改変
* 元のコードの例“`python
import c
Azure の使用料金を Teams の チャネル に POST してみました 【ResourceGroup-Monthly編】
## 概要
[この記事(Python で Azure の リソースグループ毎に日単位で使用料金 を取得してみました)](https://qiita.com/turupon/items/ab7b41694e6787a8004b) のPythonプログラムを Azure Functions に登録して自動実行させ、その結果を会社の情報共有ツールとして利用している Temas のチャネルに POST し、少しでもAzureの使用料金削減につながれば、、、、、、と。### 実行環境
macOS Big Sur 11.1
python 3.8.3
Azure CLI 2.28.0
Azure Functions Core Tools 3.0.3785
Azure Function Runtime Version: 3.2.0.0—
## 事前の準備
### 実行するプログラム用の ServicePrincipal の作成
[この記事](https://jpazureid.github.io/blog/azure-active-directory/azuread-clien
フィボナッチ数列を行列を使ってO(log(n))で計算する
以下のような例題を解くためにフィボナッチ数列を高速で計算する方法はないかと探していたら[「行列累乗でフィボナッチ数列を計算する」](https://qiita.com/flour/items/9f8a20112f45f0ee5f71)という投稿が見つかりました。これを参考にしてPythonのプログラムを書いてみました。
**例題. フィボナッチ数列を$f(n)$としたとき$f(10^{14})$をmod 100007で求めよ**
これをループや再帰関数で求めるのはできないので以下の行列の累乗を使って求めるようにしました。
式はWikipediaの[フィボナッチ数](https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%9C%E3%83%8A%E3%83%83%E3%83%81%E6%95%B0)にも載っています。> $\large \begin{pmatrix} F_{n+1} & F_n \\\ F_n & F_{n-1} \end{pmatrix}
= \begin{pmatrix} 1 & 1\\\ 1 & 0 \e
【Flaskエラー】TypeError: exceptions must derive from BaseExceptionが出た時
## 環境
Python 3.9.0
Flask 2.0.1## エラーに詰まったのでメモ
Flaskで**flask run**すると下記のエラーが発生
“`
TypeError: exceptions must derive from BaseException
“`エラーをみても例外処理がどうのこうの言われていて全く心当たりがなかった。
## 解決方法
“`
flask run –eager-loading
“`
本来は遅延読み込みに関する実行方法らしいがこれで本来のエラーが表示されるようになった。## 原因
調べてみるとFlaskのバグらしいので次のバージョンでは修正される模様
割り込み処理
#はじめに
pythonで赤外線センサの情報を受け取ってイベントを発火したいってなったときに出てきた割り込み処理。
なんのこっちゃ分らんかったから備忘録的に調べてみる。—
##割り込み処理(割り込み)とポーリング
—
###割り込み
割り込み(わりこみ)とは、コンピュータがその周辺機器などから受け取る要求の一種である。現在の多くのCPUは、割り込みを処理するための機能を備えている。###ポーリング
通信やソフトウェアにおいて、競合を回避したり、送受信の準備状況を判断したり、処理を同期したりするために、複数の機器やプログラムに対して順番に定期的に問い合わせを行い、一定の条件を満たした場合に送受信や処理を行う通信及び処理方式のことである。—
##どっちでもセンサの情報受け取って処理できんじゃん
—
でもポーリングは駄目らしい
割り込み処理実装しろって言われた。
なんでー?—
##割り込み処理の方がいい理由
—
###1.CPU資源の有効利用
周辺機器の速度はCPUの処理速度より格段に遅いため、周辺機器が処理を行っている間、CPUが