- 1. みんかぶの予想株価を収集するためのPythonプログラム
- 2. Kaggle Titanic Score-80.8%までの道のり
- 3. KaggleのJPXコンペをエラーで終えて
- 4. Dockerがやっぱり苦手(vオプション)
- 5. curlの代わりにHTTPieを使う
- 6. PowerShellでPython3.1.5をインストールするスクリプト
- 7. 【個人メモ】VSCODEでpythonスクリプトを実行できなかった時の対処法
- 8. pydanticを用いて堅牢な型を作成する
- 9. PDMによるPythonのプロジェクト管理
- 10. AWS CDK Python を使ってみる
- 11. YOLOv5を利用した学習と物体検出
- 12. 露出過多と露出不足を機械学習モデルで一度に解決
- 13. Kaggle データ処理まとめ
- 14. Kaggle American Express – Default Prediction 日記
- 15. 霧を消す機械学習モデルDehazeFormer
- 16. GitHubActionsクイックスタート
- 17. GPMLの線形回帰モデルをnumpyで学ぶ
- 18. 3がつく数字と3の倍数でアホになる関数② (小学生高学年向け・python)
- 19. ディープラーニングモデルの軽量化ツールPCASの使い方 (4) ー画像分類ライブラリtimmとの連携編ー
- 20. 動作環境以外で収集した画像を学習データとして判別対象を認識する
みんかぶの予想株価を収集するためのPythonプログラム
“`
# -*- coding: utf-8 -*-
#
# みんかぶの目標株価、理論株価、個人投資家の予想株価、
# 証券アナリストの予想株価、予想人数内訳を左から順に
# 自動で収集するためのPythonプログラム
#def myfunc(num):
from bs4 import BeautifulSoup
from urllib.request import urlopen
code=str(num)
urlname = “https://minkabu.jp/stock/”+code+”.html”html = urlopen(urlname)
data = html.read()
html = data.decode(‘utf-8’)
temp=[]# HTMLを解析
soup = BeautifulSoup(html, ‘html.parser’)
id = soup.select_one(“#stock-for-securities-company”)
Kaggle Titanic Score-80.8%までの道のり
#はじめに
Kaggleのtitanicコンペに挑戦しました。
最初は、右も左もわからず平均スコア(75%)でしたがコードを改善し、80.8%までスコアアップさせることができました。**今回は、スコア80.8%までの道のりをデータ同士の関係を見ながら、どのようにスコアを上昇させたのかを紹介します。**
<記事の流れ>
– データ分析の流れを紹介
– 80.8%のコードをグラフなどを使用して説明
– 全体のコード紹介
– ベースラインからどのように改善したのか
– 精度改善にどんな手法が有効、もしくは無効だったのか
– 今後取り組むべき課題
– まとめこの記事では、xgboostをメインにモデルを実装していくので、importする前にxgboostのインストールを行ってください。インストール方法は、OSに応じて、以下のコードを実行してください。
![スクリーンショット 2021-08-18 091706.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1280657/fe859a0a-f5a1
KaggleのJPXコンペをエラーで終えて
エラー出ましたね。
Privateで参加者の4割程度がエラーとなっており、自分も御多分に洩れずその一員となっています。エラーが頻出した原因として、デリストの可能性が指摘されています。自分も、**毎回のイテレーションで受け取るデータの銘柄数が2000より少なくなった場合はエラーが出る**と思います(これが原因ではないかもしれませんが)。というか、そもそも受け取るデータによってエラーが出る可能性が高いだろうということは、サブミ前に分かっていたんですね。
### なぜ対策しなかったか?
サブミでエラーが出なかってので、「まあええやろ」と手を抜いてしまったんですね。
本来であれば、何回もアップデートしてくれたsupplementalファイルをカットしてイテレートし、Privateを模擬して本当にエラーが出ないか確認すべきでした。### なぜ対策しなかったのか??
ええ、そう、面倒くさかったんです。コンペの過程では、誰しもどこかで妥協の悪魔と出会います。このデータは多分効かないから検証しなくていいやろ。うーん、こっちもやったほうがいいけど面倒やなぁ。
でもこういうのって、コンペ
Dockerがやっぱり苦手(vオプション)
というお話です。
ぶっちゃけ慣れてる人からすると「なんだあ、てめぇ」案件でしょうが私は本気で苦手です。
苦手なのですぐ頭が忘れようとするため、残す意味合いで書きます。## dockerの-vオプションが使えなく困った
簡単にまず、vオプションの概要を説明(間違っているかもしれない)をすると
` docker上で管理しているフォルダ(の対象部分)をローカルのフォルダと対応させる `
感じだと思います。
別にvオプションじゃなくてもDockerfileに書き込んでおけば、立ち上げ時に自動でつながるそうですが…(セッシャヨクワカラナイ)という事で今回の目標はvオプションを使った動機です。
## 結局何で詰まったの?
私、windows用のdockerを用いておりまして、windowsだとフォルダを指定するときに、区切りは \ であらわされます。
ここで詰まっておりました。## 構成
“`
APP
|-docker-compose.yml
|-Dockerfile
|-requirements.txt
“`
場所はどこでもよいです。
“`Dockerfile:Docke
curlの代わりにHTTPieを使う
Linuxだとほぼ標準でcurlが入ってるけど、Windowsだとインストールがちょっと面倒くさい。なのでよく使うのがHTTPieです。
Pythonが入っている環境だとインストールはとっても簡単。`pip install httpie`
JSONをリクエストボディに入れてPOSTする場合は下記のようにする
`http POST http://xxxx/xxx foo=10 bar=20`
こうするとリクエストボディは下記のように解釈される。
“`json: sample
{
“foo”: 10,
“bar”: 20
}
“`複雑な構造をもつJSONもファイルにしておけばもちろんPOST可能。
“`sh:sample
# For Bash
$ http POST http://xxx/xxx < req.json # For Powershell $ Get-Content req.json | http POST http://xxx/xxx ```
PowerShellでPython3.1.5をインストールするスクリプト
# 概要
PowerShellでPythonをインストールし、WindowsでPythonの実行環境を構築するスクリプトを書いたので備忘録として投稿。
InstallALlUsersでインストールしているため利用する場合は管理者権限で実行してください。* インストールされるバージョン:`3.10.5`
* インストール先: `C:\Program Files\python310`## スクリプト
“`PowerShell
#Python3.10.5 インストーラダウンロード
Write-Host “Pythonインストーラをダウンロードします”
Invoke-WebRequest -Uri “https://www.python.org/ftp/python/3.10.5/python-3.10.5-amd64.exe” -OutFile $env:temp\python.exe
if(!(Test-Path $env:temp)){
$Host.UI.WriteErrorLine(“ダウンロードに失敗しました。”)
exit 1
}#Python3.10.5 イ
【個人メモ】VSCODEでpythonスクリプトを実行できなかった時の対処法
## 事象
Pythonのインストールと、vscodeにpython拡張機能をインストールした状態でpythonスクリプトを実行したところ、
以下エラーメッセージが出た。“`powershell
PS C:\WebApp\portfolio\0030_scraping> & %PythonPath% c:/WebApp/portfolio/0030_scraping/Scraping.py
& : 用語 ‘%PythonPath%’ は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラム
の名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はその
パスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:3
+ & %PythonPath% c:/WebApp/portfolio/0030_scraping/Scraping.py
+ ~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (%PythonPath%:String) []
pydanticを用いて堅牢な型を作成する
## 概要
下記の記事の続きです。https://qiita.com/mh_flan/items/971c227d7f74c14d874b
堅牢な型が現時点で5つしかなく、結局`__post_init__`などでバリデーションを行う必要があるのは面倒と感じていましたが、なんと`pydantic`では型を自分で作ることが出来ます!
ただの型の作成であれば、下記のQiita記事や[ドキュメント](https://pydantic-docs.helpmanual.io/usage/types/#custom-data-types)を参照すれば作ることが出来ます。
https://qiita.com/kikuchi-yzrh/items/175d6dfd01fd2a3db17a
今回はこれの堅牢な型バージョンです。
## 型の作成方法
めちゃくちゃ簡単です。
1. 作成する型のクラスを作成し、大元の型を継承させる。
1. `__get_validators__`を定義して、次で作成する`validate`関数を呼び出す
1.
PDMによるPythonのプロジェクト管理
# PDMとは
[PDM](https://pdm.fming.dev/latest/)はPythonのプロジェクト、依存関係のマネージメントツールです。私は以前まで[Poetry](https://python-poetry.org/)を利用していましたが以下の点からPDMに乗り換えました。
1. `pyproject.toml`を利用する点はPoetryと同じだが、よりPEP準拠になっている。
1. Poetryよりも依存解決が速い
1. Poetryはいつまで経ってもv1.2がリリースされない。
1. 単体でタスクランナー機能を有している。(Poetryはプラグインが必要)
1. 指定したファイルの`__version__`を読み込んでくれる。
1. プロジェクトごとにvenvを作るが、インストールされるライブラリは中央管理されていてシンボリックリンクを張ることでディスク容量を節約でき、インストールも速い。特に私が一番気に入っているのは最後のインストールキャッシュ機能で、例えばDebian 11にてPoetryでNumPyだけをインストールした場合、`.venv`のサイズ
AWS CDK Python を使ってみる
## 準備
必要なツール類の確認
“`
$ node -v
v16.16.0
$ cdk –version
2.32.1 (build 79cbe95)
$ python –version
Python 3.7.10
“`ディレクトリ(cdk)を作成し、移動する。
“`
mkdir cdk && cd cdk
“``cdk init` コマンドでプロジェクトを作成する。
“`
cdk init sample-app –language python
“`仮想環境のアクティベート化。
“`
source .venv/bin/activate
“`aws-cdk-lib と construct
YOLOv5を利用した学習と物体検出
# 目的
– `YOLOv5`について、入門までとはいかないが、門の前に立てる程度の知識を身につける。
– `YOLOv5`を利用して学習から物体検出(今回はサングラス)を行い、最低限の使い方を身につける。# 背景
チュートリアルでもよくある、自前でモデルの作成、学習、分類を行ったりしたことはあったが、`YOLO`等の物体検出アルゴリズムを利用したことがなかったため、試しに利用し、知識を得たかった。
# YOLOv5とは
`YOLOv5`とは物体検出アルゴリズムで、`You Only Look Once`の頭文字をとっています。
処理速度が非常に速いのが特徴で、リアルタイムに物体検出を行うことも可能です。
`YOLOv5`は`Pytorch`をベースに作られています。自身でpythonコードを書かずに(もちろん書くこともできます)、`YOLOv5`が用意している処理を実行するだけで、学習や物体検出を簡単に行うことができます。
– YOLOv5のGitHub
https://github.com/ultralytics/yolov5
– YOLOv5の公式ドキュメン
露出過多と露出不足を機械学習モデルで一度に解決
# 明るすぎるところと暗すぎるところの混在する画像をきれいにしたい
既存の露出補正用の機械学習モデルは、露出過多と露出不足のどちらか一方しか補正できないものが多かったです。# LCDPNetで一発解決
![1d5bddbe-9256-46d4-b74b-d70106423da9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/7a98ecd0-819d-48d5-ad01-8662b611d1cd.png) ![a1135-050716_214208__I2E4324.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/3bf6d66d-32af-5c1f-5412-d344121b40c7.png)
LCDPNetは画像内の明るすぎる部分と暗すぎる部分を特定して、それぞれ補正してくれます。
これにより、明るい部分が過剰になることなく暗い部分が補正されます。https://github.
Kaggle データ処理まとめ
Kaggle
データ処理まとめ
データ処理の基本的なコードをまとめていきたいと思います
import
“`import.python
import matplotlib
import matplotlib.pyplot as plt
matplotlib.style.use(‘ggplot’)
import seaborn as snsimport numpy as np
import pandas as pd
“`
データ確認
“`read_data.python
data = read_csv(“ここにパス入れる”)
data.shape
data.head(10)
data.info
df_train.describe()
“`“`.python
“`
Kaggle American Express – Default Prediction 日記
American Express – Default Predictionの日記になります
一日目
データ確認
データ処理
コードは以下“`php:hello.php
function hello(){
return “hello world!”;
}
“`
霧を消す機械学習モデルDehazeFormer
# 霧で見えにくい画像がくっきり
https://github.com/IDKiro/DehazeFormer
霧を消すモデルです。
# 使い方
リポジトリをクローンして、提供されているweightのパスを指定して実行します。
“`python
git clone https://github.com/IDKiro/DehazeFormer.git
cd DehazeFormer/
pip install -r requirements.txt
python predict.py –data_dir path_to_images –save_dir path_to_saved_models –folder ./
“`
GitHubActionsクイックスタート
# 概要
[GitHubActions](https://github.co.jp/features/actions)はCI/CDツールとして後発にも関わらず、デファクトスタンダードと言っていいほど定着しており気になっていた。
***関連記事は山ほどあるが、クイックスタートするという観点では情報不足であったり、初心者(ワイ含む)には難しくてちょうどいい記事がないなと*** 。
#### 「それじゃ、とりあえず触ってみて初心者の速習用にワイが記事を投稿してやるぜ!」ということで、まとめてみました。マトリックスビルドまでできた?❗#GithubActions https://t.co/7f6pRpaDUE
&mdash
GPMLの線形回帰モデルをnumpyで学ぶ
GPML第2章前半の線形回帰の部分を、自分なりに解釈しつつnumpyで実装します。
“`python
import numpy as np
import matplotlib.pyplot as plt
“`# 単純な線形回帰モデル
まずは、バイアスを含む単純な線形回帰モデルを実装してみます。
## 元の関数
もとの関数は、入力ベクトル\$\boldsymbol{x}\$と重みベクトル\$\boldsymbol{w}\$
“`math
\boldsymbol x
=
\begin{bmatrix}
1 \\ x_1 \\ x_2 \\ \vdots \\ x_D
\end{bmatrix},
\quad
\boldsymbol w
=
\begin{bmatrix}
b \\ w_1 \\ w_2 \\ \vdots \\ w_D
\end{bmatrix}
“`を用いて、
“`math
f(\boldsymbol x) = \boldsymbol x^\mathsf{T} \boldsymbol w
“`と書けるような関数であるとします。特に、\$
3がつく数字と3の倍数でアホになる関数② (小学生高学年向け・python)
# 3がつく数字と3の倍数でアホになる関数②
この記事は、岩手県八幡平市のプログラミング教室「アクセルキャンプ」の公開教材です。
[アクセルキャンプ(フリースペースプラウド)のリンク](https://freespaceproud.com)
教材の作成依頼等も承っております。ご意見等は、リンク先の問い合わせ欄からお願いします。
教材の転用・利用等は自由です。
***## 前回のまとめ
前回は3の倍数でアホになる関数と、3のつく数字でアホになる関数を別々に作りました.①3の倍数でアホになる関数
“`python
def baisuu(number):
if number % 3 == 0: #余りを求めるのは%
print(“アホ!”)
else:
print(number)baisuu(3)
“`②3のつく数字でアホになる関数
“`python
def sanno_tsukukazu(number): #3のつく数で超アホになる関数
if “3” in str
ディープラーニングモデルの軽量化ツールPCASの使い方 (4) ー画像分類ライブラリtimmとの連携編ー
本記事は、[ディープラーニングモデルの軽量化ツールPCASの使い方 (3) ーモデル変換と性能評価 (CPU/VPU) 編ー](https://qiita.com/ymmt833/items/da6e40e9b61865097fe8) の続編です。
前回の記事では、モデル軽量化ツールPCAS(以下、PCASツール)を使用して軽量化したVGG10モデルを例に、OpenVINO形式(IR形式)への変換を行い、AE2100・汎用PC上で推論速度の実測評価をしました。
今回は、使用するモデルやデータ拡張、損失関数などに [pytorch-image-models (timm)](https://github.com/rwightman/pytorch-image-models) の実装を利用したいと思います。
## 本記事の要約
* PCASツールと画像分類ライブラリtimmの連携方法を解説します。
* 「Vegetable Image Dataset + MobileNetV2」を例題に、モデルの軽量化を行います。
* AE2100と汎用PC上での推論速度を実測し、軽量化効果を確認しま
動作環境以外で収集した画像を学習データとして判別対象を認識する
# やりたいこと
以下のテキストでは、AIを用いた画像認識により対象物を分類し、ロボットアームにより仕分けを行っています。
– [DOBOT Magician AIx画像認識xロボットアーム制御](https://afrel.co.jp/product/dobot/education-product/)上記テキストでは、仕分けを行う環境上で判別する対象物の学習データの収集を行っていますが、AIによる画像識別では、実動作環境以外で収集した画像データを学習に含めることもあると思います。
今回は、スマホのカメラで撮影した実動作環境ではない画像を学習データとし、判別が可能かを検証しました。
:::note
前提条件
– 以下の記事で修正したプログラムを使用し、カメラ画像全体を学習済モデルに入れて、判別結果を出力する形式を取っています。
– [カメラ画像全体から判別対象を認識する](https://qiita.com/shimamotosan/items/d3a06e834d332b914973)
– 対象物を置く位置(=DOBOTが対象物を拾いに行く座標)は固定
※ 切