- 1. 研究で使ったコード
- 1.0.1. いまさら解説する「データ加工」 §0
- 1.0.2. [AtCoder]Pythonのそれぞれの操作の計算量と代替案
- 1.0.3. 【 ChatGPT】生成AIを使ったデータ分析の記事まとめ
- 1.0.4. Sentence transformersをファインチューニング
- 1.0.5. Optunaでパラメータを指定して実行する,studyを継ぎ足す
- 1.0.6. SORACOM Harvest DataのデータをCSV形式で自動取得する(後編)
- 1.0.7. SORACOM Harvest DataのデータをCSV形式で自動取得する(中編)
- 1.0.8. SORACOM Harvest DataのデータをCSV形式で自動取得する(前編)
- 1.0.9. 特異値分解と低ランク近似
- 1.0.10. tkinterでカレンダー選択から日付情報を得るダイアログを作成する。
- 1.0.11. pythonでAWS Lambda のレイヤー機能を利用する
- 1.0.12. MIDIフットスイッチで本や漫画のページめくり
- 1.0.13. seleniumで自動ログインしたいのにHTMLを見てもidが見つからないとき
- 1.0.14. 【J-Quants】取引カレンダーAPIを用いた株価のバッチ取得
- 1.0.15. djangoで、一意制約を持ったカラムの値を入れ替える
- 1.0.16. python venvの仮想環境で構築する顔認証(face_recognition)windows環境
特徴量エンジンKaskadaリファレンス〜Pythonでのクエリ実行
# はじめに
先日、以下の記事を発表しました。
https://qiita.com/yoshiyuki_kono/items/7dc7bdad5e02ff986f5d
公式ドキュメントの学習過程の記録として、以下の記事をまとめてみました。
本稿情報のソースとして、下記ドキュメントを参照ください。
https://kaskada.io/docs-site/kaskada/main/developing/queries.html#querying-with-python
## Pythonでのクエリ実行
Pythonプログラムでは、以下のようにクエリを作成し、実行することができます。
“`python
from kaskada import compute
from kaskada.api.session import LocalBuildersession = LocalBuilder().build()
query = “””{
time: Purchase.purchase_time,
entity: Purchase.customer_id,
インポート “XXX” をソースから解決できませんでした(PylancereportMissingModuleSource)にサヨナラしよう
## 起きていること
VSCodeで拡張機能Pylanceを導入すると使用するパッケージの格納箇所によってはimport文で次のメッセージが表示されることがある。`インポート “XXX” をソースから解決できませんでした(PylancereportMissingModuleSource)`
このメッセージは実行可能であっても表示されることがある。今まで特に実行に影響ないためそのままだったがソースを開いていつも波線が出ているのは気持ちが悪いので対応しようと思う。
## 対応時の環境
Python 3.11.4
VSCode 1.80.2
Pylance v2023.7.40## 対応内容
今回仮想環境を導入していてフォルダ構成は次のようになっている。
関係のないディレクトリ、ファイルは省略している。“`
.
├── .vscode
│ └── settings.json
├── venv
│ └── Lib
│ └── site-packages
│ └── pandas
└── example.py
“`example
DiscordのWebhookを使ってテスト投稿を実行(Python)
DiscordのBOTを作る機会があったので備忘録代わりに残していきます。
他に良い方法があるのかもしれませんが、
ひとまずPythonとcronを使ってBOTを作ろうとしています。
# Discordのウェブフックを使ってテスト投稿する
コマンドプロンプトから直接実行
“`Python
import requestswebhook_url = “webフックURL”
def send_dummy_message():
message = “これはダミーのテスト投稿です。”
data = {
“content”: message
}
headers = {
“Content-Type”: “application/json”
}
response = requests.post(webhook_url, json=data, headers=headers)
if response.status_code == 204:
print(“ダミーの投稿に成功しました。”)
画像の白黒反転
研究で使ったコード
“`python
import cv2#画像読み込み
img = cv2.imread(image_path)#白黒反転
img = 255 – img#画像を表示
cv2.imshow(“image,img)“`
いまさら解説する「データ加工」 §0
今回から不定期に、データ加工についての基本技術を発信していこうと思います。
# 自己紹介
「お前、誰だよ」「どんだけ経験積んだん?」と言われそうなので、まず軽く自己紹介を。:angel:
(※はよ話せという人は飛ばしてどうぞ)・社会人経験6年目
・データサイエンス界隈には4か月くらい
・今までプログラミングはおろか、大学のパソコンの授業は一番下のレベルと、まあ要はド素人なわけですわ。そのド素人の私が、ここ数か月で学習したことをここでつらつらと発信していきますので、先輩データ分析ニキネキたちは生暖かい目で、後輩データ分析ニキネキたちは「なんやこいつ、こんなん俺でもできるわ」とにやにやしていてください。
# 記事の方向性
この記事では、以下のことを書いていこうと思います。・データ分析処理を行う上での心構え
・簡単なデータ分析の処理技術
・私の学習歴などなどを書いていきます。書いてほしいこととか、あれば教えてください。なんでもしま…:boy_tone5:
# 私の学習歴
現在私は以下のことをやっております。a) Signateを利用した学習
b) 書籍を活用した学習
[AtCoder]Pythonのそれぞれの操作の計算量と代替案
# はじめに
著者は水色コーダーで、pythonのみを用いてAtCoderに取り組んでいます。
競プロでコードを書く際に計算量がオーバーしないかは大切な指標です。
それぞれの操作の計算量については以下の記事で綺麗にまとまっています。
[Pythonistaなら知っておきたい計算量のはなし](https://qiita.com/Hironsan/items/68161ee16b1c9d7b25fb)ここでは、計算量ごとに水色問題(ABCのE問題程度)まででよく使う操作をまとめました。基本的に最悪計算量で記載しています。
また、計算量がオーバーしがちな操作の対処法や代替案を記載しております。基本的にAtCoderの問題では定数倍が原因となり計算量がオーバーすることは少ないです。
そのため同じ計算量で別の処理に書き換えるのでなく、O(N)をO(logN)にするなど、根本的な改良が求められるケースが多いです。## O(1)
基本的にこれらの操作は計算量として問題にならないです。
TLEの場合は他の操作が原因の可能性が高いです。### 一般
~~~Python
#数値の初期化、
【 ChatGPT】生成AIを使ったデータ分析の記事まとめ
ExcelやTableauに搭載予定の生成AIのデモ画面を見て、生成AIを使った分析ツールに可能性を感じたので、自分の勉強のために生成AIを使ったデータ分析の記事をまとめてみました。
もし、私以外にも生成AI×データ分析に興味がある人がいればぜひ読んでみてください!
# ChatGPT×LangChainで全自動データ分析ツールを作った話①
こちらの記事は、GMOインターネットグループの技術ブログで、ChatGPTのAPIとLangChainを使って、全自動分析ツールを作れるかを試した記事です。
アリババが発表した「ChatGPTがどれくらい優れたデータ分析者なのか?」を評価した論文を参考に、生成AI搭載のデータ分析ツールを作成しています。
この記事で作成しているのはかなり簡易的なアプリですが、実装方法の詳細もわかりやすく書かれているので、生成AIを使ってデータ分析アプリを作りたいと考えている人は必見です。
# ChatGPT×Lan
Sentence transformersをファインチューニング
# 概要
Sentence transformerを使って、ファインチューニングするためのコードを書きました。
例として、livedoorニュースデータを使っています。
sentence trasnformersと、ファインチューニングについて簡単に紹介した後、実装のコードを掲載します。Google Colabで実行できます。[コードはこちらです。](https://github.com/KENTAROSZK/fine_tune_sentence_transformer/tree/main)
# Sentence transformerとは何か?
BERT + pooling層の2層構造のモデルです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687015/958a4e6c-569d-aad5-ef4d-75faeddf51ae.png)
## 何ができるのか?
インプットをテキスト(文字)として、アウトプットはベクトルを出してくれます。
要は、テキストの埋め
Optunaでパラメータを指定して実行する,studyを継ぎ足す
ハイパーパラメータの自動最適化フレームワークである Optuna は目的関数を書くと自動で最適なハイパーパラメータを探索してくれます.
基本的にはアルゴリズムに任せるのが良いですが,ユーザー側でパラメータをいじるなど変なことをしようとすると少々面倒なのでまとめておきます.使用環境は
Python 3.9.16
Optuna 3.1.0例:LightGBM モデルのハイパーパラメータ調整(探索のターゲットや数値は適当です)
“`py
import optunaimport lightgbm as lgb
from sklearn.model_selection import train_test_split# データ読み込み
train_X = pd.read_pickle(“../data/train_X.pkl”).values
train_y = pd.read_pickle(“../data/train_y.pkl”).values
tra_x, val_x, tra_y, val_y = train_test_split(train_X, train_y,
SORACOM Harvest DataのデータをCSV形式で自動取得する(後編)
# 概要
SORACOM Harvest DataのデータをCSVで取得するシリーズ最終回です。
前編では環境構築、中編ではTalend Open Studio(以降TOS)を使ったJSONデータダウンロードとPythonによるCSV変換を説明しましたので、最終回では自動実行する方法を説明します。
[前編](https://qiita.com/ozk009/items/c880d234a4b91f4882d0)、[中編](https://qiita.com/ozk009/items/95eed592ff56813e6215)を読んでいない方は[前編](https://qiita.com/ozk009/items/c880d234a4b91f4882d0)から順にお読みください。# 前提
自動実行は**常時起動のWindowsサーバーで実行**することとします。
タスクスケジューラーを使い、1日前のデータを、午前0時経過後に実行することにします。# TOSの変更
TOSにはContext変数をいうものがあり、実行時にコマンドライン引数として渡すことが可能です。https://
SORACOM Harvest DataのデータをCSV形式で自動取得する(中編)
# 概要
SORACOM Harvest Dataのデータをダウンロードし、CSVで取得する中編です。
[前編](https://qiita.com/ozk009/items/c880d234a4b91f4882d0)を読んでない方は[前編](https://qiita.com/ozk009/items/c880d234a4b91f4882d0)からお読みください。# 取得するデータ
取得するデータは以下のレシピで取得できるGPSマルチユニットの温湿度データとします。https://soracom.jp/recipes_index/2962/
今回の手法でやる場合は[バイナリパーサー設定](https://users.soracom.io/ja-jp/docs/binary-parser/predefined-format/#gpsmultiunit)が必要となります。
SIMグループ設定画面で「SORACOM Air for セルラー設定」の「バイナリパーサー」をONにして、フォーマットを「`@gpsmultiunit`」として保存します。
![image.png](ht
SORACOM Harvest DataのデータをCSV形式で自動取得する(前編)
# 概要
SORACOMのサービスを使うと簡単にデータをクラウド(SORACOM Harvest Data)にアップロードできます。
アップロードしたデータはユーザーコンソールからCSVでダウンロードすることができますが、SORACOM CLIやSORACOM APIを使う場合はJSON形式しか選択できません。https://users.soracom.io/ja-jp/docs/harvest/download/
自動でCSVを取得したかったので、ETLツールのTalend Open StudioでAPIからJSONデータをダウンロードして、Python(pandas)でCSVに変換する方法で実現してみました。
前編では環境構築について説明します。
# 手順
## インストール
下記リンクを参考にツールをインストールします。
– [Talend Open Studio](https://qiita.com/ozk009/items/1ca40a4d6c12285632e2)
– [Python(pandas)](https://qiita.com/ozk009/items
特異値分解と低ランク近似
# はじめに
情報工学科出身なので、特異値分解は大学2,3年生の頃に履修しているのだが、就職して2年ほど統計・機械学習分野から離れていたため、今回の復習を備忘録として記録。参考書籍は[こちら](https://www.amazon.co.jp/Data-Driven-Science-Engineering-Learning-Dynamical/dp/1009098489)。
本稿では特異値分解の基礎および実際の画像を使った復元を実装してみる。# 概要
そもそも特異値分解(Singular Value Decomposition;SVD)とはなんだっけ、というところから理解を始める。
ずばりその目的は、**高次元データをシステマチックに低次元へ近似する**ことにある。
実際のデータは特徴量が多く、高次元ベクトルのデータ分析が求められることが常であるため、特異値分解はデータサイエンス領域において非常に重要な役割を担い、さまざまな技術の基礎となっている;動的モード分解、主成分分析、固有直交分解など。
また、次元圧縮以外にも劣決定性/優決定性問題や擬似逆行列などにおいても強力な応用を持つ。
tkinterでカレンダー選択から日付情報を得るダイアログを作成する。
# Abstract
pythonで簡単なGUIを作成する機会があり、その際に日付の入力欄を作る必要があった。要件としては、入力欄は基本的には手打ちだが、カレンダー選択による自動入力機能を付けてほしいとうことだった。Webのノリで簡単にできるだろうと高をくくっていたら意外とはまってしまったので、誰の役に立つかわからないが残しておくことにする。# 実装
~~~python: CalenderDialog.py
import tkinter
from tkinter.simpledialog import Dialog
from tkcalendar import Calendarclass CalenderDialog(Dialog):
date: str
def __init__(self, master: tkinter.Tk, title=None) -> None:
self.date = “”
super().__init__(parent=master, title=title)#//Ove
pythonでAWS Lambda のレイヤー機能を利用する
# はじめに
前回、pythonでAWS Lambda を業務利用で量産するにあたって、自分があると便利だと思うクラス構成の雛形を記事で公開しました。
今回は、その続編です。
(前回はこちら)https://qiita.com/Syoji_Yonemoto/items/7e8a7668358798656932
基底クラス達を、レイヤーに登録して複数Lambda関数から使いまわすと便利なので、レイヤー機能へ登録するためのメモ書きです。
# 公式ドキュメント
別言語(NodeJS)でもレイヤー機能を使ってるのですが、よくドキュメント迷子になるので、重要なページをメモ書き。
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-layers.html#configuration-layers-path
<抜粋>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281768/55deb790-40e6-
MIDIフットスイッチで本や漫画のページめくり
# 背景と課題
ギターの練習をしながらPCで本や漫画を読みたい、でも実際やってみるとページをめくるのに手を止めないといけないのでエクスペリエンスはイマイチ…という経験があるのは筆者だけではあるまい。この課題をクリアするため、筆者は以前 Tobii EyeX というアイトラッカーを使って視線によるページめくりシステムを実現・使用していたが、諸事情により現在は退役している。何か楽に作れる代替手段はないだろうか?
# ソリューション
辺りを見回すと、おお、筆者のPCには常時MIDIキーボードが接続されており、そのキーボードにはサスティンペダルとしてフットスイッチが繋がれている。このペダルを踏んだらページがめくられるようにスクリプトでも書けば、ギターを弾く手を止めずに次々と漫画のページをめくれるではないか。まっ/たく/簡/単/だ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/465152/cbfe8947-7888-6af5-1113-a0f5ff5c1329.png)
やりようはい
seleniumで自動ログインしたいのにHTMLを見てもidが見つからないとき
#検証ツールを開いてもidが見つからない
フィードバックお待ちしていますm(_ _)mseleniumを用いて、webサイトにメールアドレスやパスワードを自動入力するための記事です。
当方の環境: mac, visual studio code
※webページのログイン画面へのアクセスまではできていると仮定します。
それではいきましょう。
ログイン画面に到達したら、右クリック(もしくはダブルクリック)で”検証”というツールが出てくると思います。
そこでメールアドレス入力画面のHTMLを確認すると、(自分の参考にしていたUdemy動画では存在するはずの)id=”username”とかid=”password”みたいなのがが出てこない!
こんな問題に遭遇しました。
そこで書いたコードがこちら。
`elem_username = browser.find_element_by_name(‘mail’)`
`elem_password = browser.find_element_by_name(‘pass’)`ところが、ターミナルにてpython3 ファイル名
で実行
【J-Quants】取引カレンダーAPIを用いた株価のバッチ取得
## はじめに
はじめまして!J-Quants運営チームです。
個人投資家向けのAPIデータ配信サービスである[J-Quants](https://jpx-jquants.com/)を利用する上での、技術的なTipsなどの技術記事を投稿していきたいと思います!
この記事では、東証および大阪取引所の営業日・休業日・祝日取引(祝日取引は大阪取引所のみ)の有無を取得できる取引カレンダーAPIを用いて、株価を日次バッチで取得するPythonでの方法をご紹介します。
## (参考)J-Quantsとは
J-Quantsとは、ヒストリカル株価データ・財務データなどの金融データを取得できる、個人投資家向けのAPIデータ配信サービスです。投資にまつわるデータを分析しやすい形式で提供し、個人投資家の皆様がデータを活用して取引できるようになることを目的としております。
個人投資家がデータ分析を用いた投資分析を行う際の大きな障壁は、整形された金融データの取得が難しいことでは?という理由から、2022年7月にベータ版をリリースいたしました。ご好評の声を頂いたこともあり、2023年4月より正式にリリ
djangoで、一意制約を持ったカラムの値を入れ替える
# 結論
値を入れ替えたい2つの行情報のうち、1行の対象カラムを一時的に別の値に更新することでタイトルのことができます。# 解説
一意制約を持ったカラムは、一意であることが保証されています。そのため、いずれかの行と重複するような値に更新しようとするとエラーが発生します。ある2行に対して一意制約を持ったカラムの値を入れ替えたい場合、1行ずつ更新しようとするとどこかで一意制約にかかりエラーとなります。そこで、一方を一時的に別の値に更新し、入れ替えを行えるようにします。# サンプルコード
“`views.py
from django.db import transaction# viewとなる関数を作成している想定
# hogeFieldが一意製制約を持っているIntegerFieldと想定# エラーが起きた時にロールバックさせるため
@transaction.atomic
def hoge(request)
# …
# 値を交換したい行情報を取得
item1 = Item.objects.get(pk=0)
item2 = Item.o
python venvの仮想環境で構築する顔認証(face_recognition)windows環境
### ■ 概要
・Windows11。
・pythonの仮想環境venvで構築。
・モジュールは、opencv-python、face_recognition、configを使用。
・外部カメラ使用(USB WEBカメラ)
・物体検知で、ディレクトリ(image_jp)内にある画像と一致したら、パスワードを入力する。### ■ 完成画面
![スクリーンショット (762).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/ca843db6-6639-c6eb-12b2-154bae65a6dd.png)
### ■ ディレクトリ構成
![スクリーンショット (756).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478380/8f1ffc5c-b4e2-5997-14a9-5231775eb14b.png)
./app/以下
![スクリーンショット (757).png](https://qiita-im