Python関連のことを調べてみた

Python関連のことを調べてみた

Transformerで重回帰

重回帰問題を解くのに、ちょいとTransformerなんか使っちゃおうかなと思ったら、簡単な情報が意外と見つからなかったので、今更な内容ですが書いてみました。

# 前提
– 入力はCSVファイルです
– 全部数値データです
– Pytorchを使います

# コード説明
解説を入れながら、実際のコードを説明していきます。
“`python
import pandas as pd
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader, TensorDataset
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
“`
使用するモジュールをインポートします。
まぁそういうものだと思ってください。

“`python
# デバイス設定
device = torch.device(‘c

元記事を表示

Ngrok,ChatGPT API,Pythonをもちいて名刺から会社名を抜き取るLINEBOTを作る

名刺の情報を手作業でうちこむ人を見て,そんなのはいやだな…と思い,自動でCSVに打ち込んでもらえるまではいかなくても,情報を抜き取るくらいはできるんじゃないかと思い立ち,これを作った。LINEBOTにしたのはLINEならだれでも使ってもらえると考えたからだ。

また,この記事は初学者によるもので出来たらなんでもいいやという精神でやっているので,コードの汚さや無駄さなどは目をつむってほしい。
## 紹介しないもの
### LINEのBOT作成
LINE側でBOTの作成をする必要がある。ただ,簡単だし無料なので安心してほしい
LINEの公式アカウントの作り方やAPIキーの取得方法などは適宜ほかのサイトを参照してほしい。
### Ngrok
Ngrokはよくわからないけどローカルサーバーを無料でやってくれるてきなやつ。これも簡単だし無料。
これらはこの記事を見ればすぐできると思う。

https://qiita.com/NaruNeko/items/482ed8dadc919d85f658
### OCR
pyocrをつかうには,事前にダウンロードが必要なので注意。

早速だがコードの全文は

元記事を表示

【Django】チュートリアル奮闘記~チュートリアル7 プロジェクト テンプレートをカスタムする編~

`
さて、templates の中に admin という名前のディレクトリを作りましょう。Django 自体のソースコード内にある、デフォルトの Django admin テンプレートディレクトリ (django/contrib/admin/templates) を探して、 admin/base_site.html というテンプレートを、新しく作ったディレクトリにコピーします。
`

苦戦…。
やっとコピーしてできたと思ったら、サイト開けずエラーメッセージ…

“`
このサイトにアクセスできません
127.0.0.1 で接続が拒否されました。

次をお試しください
接続を確認する
プロキシとファイアウォールを確認する
ERR_CONNECTION_REFUSED
“`

##### 結論
**開発サーバーの起動**をしたら上手くいきました。
コードが間違っていたわけではなかった…(喜)

(以下参考:開発サーバー起動方法「[Djangoチュートリアルその2](https://docs.djangoproject.com/ja/3.2/intro/tutorial02/#introd

元記事を表示

【Django】チュートリアル奮闘記~チュートリアル2 Database の設定編~

データベース設定とはなんぞや。
DjangoはSQLiteなら特に設定いじらなくて大丈夫そう。
今回はこちらの参考サイト様:「[Django のチュートリアルメモ[書きかけ]](https://note.com/mega_gorilla/n/n256a33c01afb#6bde440b-57d2-46a4-acf6-a2d05f0da031)」
のお陰で、6B,6C,6Eを設定できました。

## 6.データベースの設定とマイグレーション
#### 6A.データベースの設定
Djangoプロジェクトでデータベースを設定するには、mysite/settings.pyファイルでデータベースの設定を行います。このファイルはDjangoプロジェクトの構成情報を保持し、データベースの設定もその一部です。

#### 6A-1.SQLiteの利用:

#####  設定方法:
DjangoのデフォルトデータベースはSQLiteです。設定はすでにmysite/settings.pyの中のDATABASES設定に書かれています。通常、このデフォルト設定でそのまま使用できます。

#####  設定例:

元記事を表示

MoviePyを使った動画自動編集

# はじめに
Qiitaで記事を書くのは、何かのシステムとか技術について書くわけですが、文字だけでなく画像で説明することがあります。さらに、動画で説明したいこともあって、どうしようかなーと思ったところがきっかけです。

YouTubeとかの動画配信とかまでは完全に不要で、ちょっとしたのが必要です。狭い領域、短い時間の動画。動画編集ソフトでできるんだろうとは思うんですが、費用がかかるとかインストールがめんどくさいとかPCがそんなにいいやつじゃないとか、、、結局、そんなに大きなものは必要じゃないというところがネックで、採用に踏み切れません。

ということで、PythonのMoviePyにたどり着き、この記事です。

MoviePyの公式HP、ドキュメンテーションなどはこちら。

https://zulko.github.io/moviepy/

今回、私が作ったのソースはこちら。全部下に書いてるから、見るまでもないか。でも一応載せておこう。

https://github.com/yo16/moviepy_prac

できたgifアニメファイルがこういうの。内容はいいとして、Windows

元記事を表示

RAG/LLMの前処理:PyMuPDF4LLMを使用してPDFをMarkdownへ変換する

PDFに対するRAGやLLM解析の前処理としてPDFからのテキスト抽出を試してきましたが、単純に抽出を行うと表形式の構造化情報が失われてLLMの解析性能に依存するしかないのが気になります。

https://qiita.com/cyberBOSE/items/142cdf91e0ee20b3114f

https://qiita.com/cyberBOSE/items/175dc0710aa03a06249d

https://qiita.com/cyberBOSE/items/f69caa3a3a8278905b0b

単純なテキスト抽出でも性能が良かったPyMuPDFのラッパーとして、Markdown形式に変換するライブラリがあるので動作を確認します。
PyMuPDF4LLMというそのままの名前で、MuPDFと同じ会社が開発しているようです。リプライ飛んできました。これはありがたいエゴサ

https://x.com/artifex/status/1795483808093139017

# 参考ページ

https://pymupdf4llm.readthedocs.io/ja/

元記事を表示

機械学習のためのマルチラベル+カテゴリデータの変換方法まとめ

## はじめに
交通・建設業界の官公庁から株式会社onerootsにデータアナリストとして転職し、実務にて機械学習業務に携わっています。そこで初学者が実務でぶつかった課題とどう解決したかについて、主観的な流れで共有したいと思います。未経験や今後データアナリストを目指している方に向けて少しでも参考になればと思います。(※本記事は教わりながら進めているものです。)

## 概要
マルチラベル+カテゴリデータの変換方法として **『横持ち変換』** **『縦持ち変換』** があります。今回はこれらの変換を行いながら『情報発信サービスにおける閲覧数を予測する』機械学習を行いました。今回のデータには「マルチラベルのカテゴリ変数が多数存在」、「学習データが少ない」といった課題がありました。そこで三つの方法で試行し、結果として「縦持ち変換後、LightGBMで予測」する方法が一番良い精度となりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3

元記事を表示

gpt-4oAPIを利用してアーキテクチャ図からCFNテンプレートを生成してみる

# はじめに
株式会社TechoesインフラチームのTです!
今回は、5/13にリリースされたばかりのgpt-4oを使用してAWSのCFNテンプレートを生成する手順を解説していこうと思います。
# 実行環境
– Windows: 11 Home
– Python: 3.11.4
– モデル: gpt-4o
– openai: 1.30.1

# Chatgpt APIとは
OpenAI社が提供しているChatGPTをPython等のプログラムから呼び出すためのインターフェースです。
Pythonなどのプログラミング言語からAPIを呼び出すことでアプリやサービスにテキストを生成する機能や理解する機能を実装することが可能になります。

### 料金について
ChatGPT APIは処理するテキスト量によって料金が決まる**従量課金制**となっています。このテキスト量を計測する単位が**トークン**です。
トークンは入力トークンと出力トークンの2種類があり「1000トークンあたり、いくら」という料金設定になっています。具体的な費用は使用するGPTモデルによっても変化します。
– 入力トークン

元記事を表示

ポリゴンを重複・隙間なく分割する方法

# はじめに
はじめまして!データサイエンティストの渡邊です。株式会社GEOTRA(@GEOTRA )にてGIS(Geographic Information System:地理情報システム)データを用いた分析を行っています。

本記事ではgeopandasでポリゴンを任意の形状に分割する方法を紹介します。

# 背景
– すでに存在するポリゴンで表現されるエリアを、新たに複数個のエリアに分割して各エリア間の移動人数を調べたい
– そのために隙間なく綺麗に分割されたポリゴンを作成する必要がある
– 一方で、分割後のポリゴンの頂点が多かったり、そもそもの分割数が多くなったりすると、手作業でポリゴンを作成するのは大変

# 考え方
– クッキー生地を型でくり抜いていくイメージ
– 元のポリゴンがクッキー生地、分割するためのポリゴンが型
– 元のポリゴン$P$を分割するためのポリゴン $P_{1}, …, P_{n}$ を用意する
– $P_{1}, …, P_{n}$ は大雑把に作って良い
– 重複はいくらあってもいいが隙間は作らないように注意

元記事を表示

faissで総当たりコサイン類似度検索実装

ANN(Approximate Nearest Neighbor)のPythonパッケージである [**faiss**](https://github.com/facebookresearch/faiss)でコサイン類似度での検索をインデックス`IndexFlatIP`で実装しました。少しだけ面倒だったので、記録しておきます。

公式の方法に準拠しています。

https://github.com/facebookresearch/faiss/wiki/MetricType-and-distances#how-can-i-index-vectors-for-cosine-similarity

以前の関連記事です。

https://qiita.com/FukuharaYohei/items/5beceec0d2c6023ab129

# 環境
Google Colabで動かしています。`pip`で`faiss-cpu`をインストールしています。

|種類|バージョン|備考|
|:-:|:-:|:–|
|Python|3.10.12||
|faiss-cpu|1.8.0|CPUで動か

元記事を表示

Swaggerでエンドポイントを分類したい!

# 概要
FasAPIにはSwaggerUIという便利な機能が付いており、エンドポイントを簡単に叩くことができるため、開発にと手も便利です。
ですが、エンドポイントが増えてくると目的のエンドポイントが見つからなかったり、カテゴリごとに表示して可読性を高くしたいなんてことがあると思います。

今回は、Swaggerでエンドポイントを分類して表示する方法について記載していきます。

# BeforeとAfter
– Before
作成したエンドポイントが並んでいるが、ぱっと見でどれがどんな機能を持っているのかがわかりにくい。
![スクリーンショット 2024-05-29 0.39.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2987584/73ae72f8-771c-2f7b-13cb-60f9ff5ebb09.png)

– After
各エンドポイントにタグをつけることで、分類して表示することができる。また、各エンドポイントの説明もあるため、どのような動きをするのかがわかりやすい。
![スクリー

元記事を表示

筋トレの予定をとあるメンズコーチにコーチングしてもらう

# この記事は何?
Google Calendarの予定をMessagingAPIを使用して、とあるメンズコーチ風に通知する方法を記した記事。

## 概要
最近筋トレさぼってない?厳しいって。
LINEグループに招待して、メンズコーチをメンションすると、GoogleCalendarの予定からグループのメンバーにご指導をいただけるよ。
![ジョージBOTサンプル.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3086181/1fe65c14-c76d-862f-3758-8c2442527b3b.png)

## Google Calendar から予定を取得する
1. GCPのコンソールに移動し、Google CalendarのAPIを有効化
2. 自分のカレンダーに移動し、1で作成したbotのメールアドレスにカレンダーを共有

詳しくは以下の記事を参照。
https://www.coppla-note.net/posts/tutorial/google-calendar-api/

Goog

元記事を表示

customtkinterでGUIアプリ作成した話

# customtkinterでGUIアプリ作成した話

Pythonを利用する場合、データ処理に活用するのでjupyterで開いて、セル単位で実行みたいな人が多いと思います。
ただ、PythonでもGUIのツールが作成できるし、人に使ってもらうために配るならこの形式の方がとっつきやすいと思います。

というわけで、今回はGUIのツールをcustomtkinterを使用して作成してみました。

題材は、最近TeraTermでの作業が必要になったのでTeraTerm経由でのサーバアクセスを補助するツールです。

# 今回作成したツールのリポジトリ

https://github.com/ardnico/ForTeraterm

# 大まかな構成

今回お世話になったのは「Akascape」さんの[CTkMenuBar](https://github.com/Akascape/CTkMenuBar)です。

ツールっぽく見せられるかつ、編集も楽で使い勝手が良かったです。

まずは画面上部のメニューを大項目としてとらえて、
大項目単位でフォルダを作成しました
※命名規則は”Window”

元記事を表示

機械学習はどんなふうに分類しているか

機械学習の分類と一言で言っても色々な分類へのアプローチがあります。
そこで、縦横0から1までを細かくデータにして分類をどのようにしているか可視化してみます。
# 関数
“`Python3
from sklearn import preprocessing
import matplotlib.pyplot as plt
import numpy as np
def showline_clf(x, y, model, modelname, x0=”x0″, x1=”x1″):
fig, ax = plt.subplots(figsize=(8, 6))
X, Y = np.meshgrid(np.linspace(*ax.get_xlim(), 1000), np.linspace(*ax.get_ylim(), 1000))
XY = np.column_stack([X.ravel(), Y.ravel()])
x = preprocessing.minmax_scale(x)
model.fit(x, y)
Z = model.pre

元記事を表示

Pythonで年初来安値一覧から利回りの高い株の銘柄を抽出する(Webスクレイピング)

## 概要
pythonの練習がてらWebスクレイピングを用いて株の銘柄を検索して表示する機能を作りました。

## 背景
2024年から新NISAとなり、個別株含めて投資熱が高まってきました。

しかし、日々仕事しながら株価見るのはしんどい、、、できれば買ったら放置したい、、、

ということで以下のターゲットを絞って株の銘柄を検索してみることにします。
* 株価が安くなっている
* 利回りが高い

上記2点を満たす銘柄として、年初来安値一覧の中から、利回り4%以上の銘柄を表示する機能を作ります。

## 実装
まずは必要なライブラリをインポートします
“`python
import requests
from bs4 import BeautifulSoup
“`
受け取ったURLから年初来安値一覧のテーブルを取得し、必要な情報を抽出して表示するメソッドを作成します。
今回はかぶたんの年初来安値一覧から抽出する前提で作成しています。
“`python
def main(url):
stocks = []
# ページをリクエスト
response = re

元記事を表示

GitHub APIを使って複数のリポジトリの活動を集計する

現在進めているサービスのシステム開発がひと段落したので、振り返りを行うにあたって定量的なデータを集めてみようと思い、その一環として、GitHub上の活動状況データを収集することにしました。

この記事では、GitHub APIを使って複数のリポジトリからユーザーごとのコミット数、プルリクエスト数、レビューコメント数を集計する方法について紹介します。

## GitHub APIを使うとどういった情報を取得できるか

GitHub APIを使うことで、以下の情報を簡単に取得できます。

– **コミット数**: 各ユーザーが行ったコミットの数
– **プルリクエスト数**: 各ユーザーが作成したプルリクエストの数
– **レビューコメント数**: 各ユーザーがプルリクエストに対して行ったレビューコメントの数

これらの情報を集計することで、チームメンバーごとの活動状況を把握し、開発の進捗を評価できます。
なお、イシューなどの情報も取得可能ですが、今回はプロジェクトでイシューを使用していなかったため除外しています。

## コード例

以下のPythonスクリプトでは、複数のリポジトリから

元記事を表示

LightGBMによるAI競馬予想(ランキング学習)

# ランキング学習(lambdarank)

:::note info
この記事を読む前に「[LightGBMによるAI競馬予想(準備編)](https://pc-keiba.com/wp/lightgbm/)」の記事を先に読んでください。その中には、機械学習の基礎知識や、学習データで使う説明変数の内容など、他のデータ分析方法と共通する説明が含まれています。
:::

二値分類や回帰分析が絶対的な「値」を求めるのに対して、ランキング学習はデータを相対的な順位に基づいて評価します。具体的な数値ではなく、順位情報を活用する特長があり、これが競馬予想などでの適用に向いている理由の一つです。

ここに公開するPythonのソースコードは「特徴量重要度」の可視化を実装しています。学習データを作るSQLで目的変数の項目名を「target」にすれば、オリジナルの学習データで分析する場合でもそのまま使えます。

:::note info
ソースコードは学習用と予測用に分けてます。
:::

:::note alert
欠損値(null)は、SQLで何らかの値(0など)に変換しておくことを前提にしてます

元記事を表示

LightGBMによるAI競馬予想(回帰分析)

# 回帰分析(regression)

:::note info
この記事を読む前に「[LightGBMによるAI競馬予想(準備編)](https://pc-keiba.com/wp/lightgbm/)」の記事を先に読んでください。その中には、機械学習の基礎知識や、学習データで使う説明変数の内容など、他のデータ分析方法と共通する説明が含まれています。
:::

「回帰分析」は数値を目的変数とする場合に使う方法です。競馬予想の場合、例えば走破タイムなど。

ここに公開するPythonのソースコードは「予測誤差」と「決定係数」の評価指標と「散布図」の作成を実装しています。学習データを作るSQLで目的変数の項目名を「target」にすれば、オリジナルの学習データで分析する場合でもそのまま使えます。

:::note info
ソースコードは学習用と予測用に分けてます。
:::

:::note alert
欠損値(null)は、SQLで何らかの値(0など)に変換しておくことを前提にしてます。欠損値についてPythonでは何もしてないってことです。
:::

# 学習用ソースコード

以下が

元記事を表示

LightGBMによるAI競馬予想(多クラス分類)

# 多クラス分類(multiclass)

:::note info
この記事を読む前に「[LightGBMによるAI競馬予想(準備編)](https://pc-keiba.com/wp/lightgbm/)」の記事を先に読んでください。その中には、機械学習の基礎知識や、学習データで使う説明変数の内容など、他のデータ分析方法と共通する説明が含まれています。
:::

「多クラス分類」は目的変数を多クラスに分類する方法です。「二値分類」の三値以上版みたいなイメージ。

ここに公開するPythonのソースコードは「正解率・適合率・再現率」の評価指標と「特徴量重要度」の可視化を実装しています。学習データを作るSQLで目的変数の項目名を「target」にすれば、オリジナルの学習データで分析する場合でもそのまま使えます。

:::note alert
目的変数が4値以外の場合、LightGBMハイパーパラメータ(num_class)の修正が必要です。
:::

:::note info
ソースコードは学習用と予測用に分けてます。
:::

:::note alert
欠損値(null)は、SQL

元記事を表示

LightGBMによるAI競馬予想(二値分類)

# 二値分類(binary)

:::note info
この記事を読む前に「[LightGBMによるAI競馬予想(準備編)](https://pc-keiba.com/wp/lightgbm/)」の記事を先に読んでください。その中には、機械学習の基礎知識や、学習データで使う説明変数の内容など、他のデータ分析方法と共通する説明が含まれています。
:::

「二値分類」は目的変数を0か1の二値に分類する方法です。

ここに公開するPythonのソースコードは「正解率・適合率・再現率」の評価指標と「特徴量重要度」の可視化を実装しています。学習データを作るSQLで目的変数の項目名を「target」にすれば、オリジナルの学習データで分析する場合でもそのまま使えます。

:::note info
ソースコードは学習用と予測用に分けてます。
:::

:::note alert
欠損値(null)は、SQLで何らかの値(0など)に変換しておくことを前提にしてます。欠損値についてPythonでは何もしてないってことです。
:::

# 学習用ソースコード
以下が「二値分類」で学習するPythonのソ

元記事を表示

OTHERカテゴリの最新記事