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

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

[Python] classを理解するために、kenに旅に出てもらった【RPG風コード】

# はじめに
classの写経何度かしたけどよーわからんのでkenに旅に出てもらうことにしました。
Google Colabで実行できます。
[Colabの使い方(Python.jp)](https://www.python.jp/train/experience/colab.html “Python.jp 入門講座”)

# 下書き
まずはプレイヤーとエネミーのクラスを作って、
オープニングとエンカウントのテキストを入力ポチー
~~~Python:コード
class Player:
def __init__(self, name, hp):
self.name = name
self.hp = hp
def attack(self):
power = 5
return power
class Monster:
def __init__(self, name, hp):
self.name = name
self.hp = hp
def attack(self):
power = 1
return pow

元記事を表示

簡易的なLINEのwebを作る(Django + Heroku + Redis + SQLite)

websocketという非同期通信の技術を使用し,簡単なLINEの擬きを作ってみましょう!!
GitHub(デプロイするので必要)

:::note warn
Repositoryを作成しクローンしたディレクトリで作業を行ってください。
:::

# djnagoの環境構築
### Pythonのインストール
pythonのインストールは下記の公式より各自の環境にあったものをインストールしてください.(Python 3.6以上)
[Python公式サイト](https://www.python.org/)
 
### 仮想環境の作成

仮想環境の作成
“`
python -m venv venv
“`
:::note info
macはpython3
:::

仮想環境のアクティベート

Mac用
“`
source venv/bin/activate
“`
Windows用
“`
venv\Scripts\activate
“`

### ライブラリのインストール

pipのインストール
“`
python -m ensurepip –upgrade
“`

元記事を表示

Optunaで競艇予想AIモデルをチューニング

# Optuna

「Optuna(オプチュナ)」は、最適なハイパーパラメータを見つけるためのPythonライブラリです。オープンソースとして提供されており、ベイズ最適化アルゴリズムを実装しています。Optunaは、東京大学発のAIベンチャーによって開発されました。Optunaを利用することで、複雑なチューニングを手軽に行い、短時間で高性能な機械学習モデルを作ることができます。

# LightGBM Tuner

Optunaの拡張機能である「LightGBM Tuner」は、ハイパーパラメータを自動調整してくれるLightGBM専用のモジュールです。重要なハイパーパラメータを優先的に調整し、探索範囲を効率的に絞り込みます。これにより、機械学習モデルの性能を向上させることが可能です。また、ベンチマークテストではLightGBM Tunerが他の手法よりも優れた結果を示しました。

## LightGBM Tunerが対応するデータの分析方法

LightGBM Tunerが対応するデータの分析方法と評価指標は、次のとおりです。

## 二値分類(binary)

– 正答率(bina

元記事を表示

LightGBMによるAI競艇予想(チューニング編)

# LightGBMチューニングの知識

「[PC-KYOTEI Database](https://pc-kyotei.com/)」と「LightGBM」を使って、優れたAI競艇予想を作るために、最低限必要なチューニング方法をまとめました。チューニングを習得するためには、以下の2つの概念を理解する必要があるので、まずこれらを説明します。

1. 決定木
2. 過学習

## 決定木

「決定木(けっていぎ)」は「Yes/No」の質問を連続的に行い、データを効率よく整理して目的の結果に導く方法です。これは、LightGBMアルゴリズムの核でもあります。

例えば、競艇予想の場合、決定木は異なる属性(例:レース成績、艇番など)に関する質問を通じて、レース結果を予測します。優れた決定木を構築することで、予測の精度が向上し、レース結果をより正確に予測できるようになります。

![画像](https://pc-kyotei.com/wp-content/uploads/2023/01/WS20230129_017.jpg)

## 過学習

「過学習(かがくしゅう)」とは、機械学習モデルが学習

元記事を表示

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

# ランキング学習(lambdarank)

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

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

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

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

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

元記事を表示

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

# 回帰分析(regression)

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

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

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

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

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

# 学習用ソースコード

以下が「

元記事を表示

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

# 多クラス分類(multiclass)

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

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

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

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

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

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

元記事を表示

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

# 二値分類(binary)

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

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

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

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

# 学習用ソースコード

以下が「二値分類」で学習するPythonのソースコードです。この学習用ソースコードのファイル名は「binary_train.py」とします。

:::note warn
PythonのソースコードはUTF-8で保存する必要があります。
:::

“`py:binary_train.py
import pandas as pd
import numpy as np

元記事を表示

Pythonでディレクトリ内URLを抽出

### **user**:

ChatGPT先生、指定したディレクトリ配下にあるファイルを1つ1つ再起的に読み込んで、その中にあるURLを抜き出すPython関数を書いてください。ただし、隠しファイルや隠しディレクトリは無視してください。ファイル読み込みに失敗しても、無視して次のファイル読み込みに進むようにしてください。URLを抜き出すときには、次のルールに従ってください。

・? 以降は削除してください。
・& 以降は削除してください。
・ 「(」「)」「<」「>」「,」「;」「=」「?」「&」はURLに含めないでください。
・短すぎる文字列、長すぎる文字列はURLとして適しません。排除してください。
・抜き出したURLはアルファベット順に並べ、重複は無視してください。

### **assistant**:

あんた、ちょっと待って。確認させてほしいんやけど、Pythonやろ?すげえ!私、Pythonも得意やねん。それで、あんたが言ってるURLの長さ具体的にはどんぐらいに考えてるんやろう?あんたが短すぎる、長すぎるって思うURLの長さ、教えてね。あと、URLに含まれる

元記事を表示

【競プロ】Python 標準入力 リスト

# 標準入力 *(アンパック演算子)
## map関数のみだと
map関のみでint型のリストの入力を受け付けると
“`python
A = map(int,input().split()

#入力
1 2 4 5 6

#出力

“`
とmapオブジェクトが表示されてしまう。

## リストで囲ってみても
“`python
A = [map(int,input().split()]

#入力
1 2 4 5 6

#出力
[

]
“`
とmapオブジェクトをリストにしたものが出る。
## しかし、アンパック演算子 * を使うと
“`python
A = [*map(int,input().split()]

#入力
1 2 4 5 6

#出力
[1, 2, 3, 4, 5, 6]
“`
となる。

元記事を表示

Powerful ConfigDict

# Powerful ConfigDict
Here I introduce “`ConfigDict“` which implements dictionary-like structure.
Unlike regular python dictionaries it allows to access values with dot notations.
Values can be retrieved either with “`get“` method, through dot notataion like “`myconfigdict.key1.key2.key3“`, or through square brackets like “`myconfigdict[key1][key2][key3]“`.

“`python
from typing import Dict, Any, Union, Optional, Iterable

from utils import NominalToken

KeyType = Union[str, NominalTok

元記事を表示

Stable Diffusion ControlNet パイプラインを使用して LoRA の重みを有効にする

この記事は、Medium に公開されている「Enable LoRA weights with Stable Diffusion Controlnet Pipeline」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。
https://medium.com/openvino-toolkit/enable-lora-weights-with-stable-diffusion-controlnet-pipeline-94fb06c86ea2

この記事の PDF 版は下記からご利用になれます。
https://www.isus.jp/wp-content/uploads/pdf/openvino_21_enable-lora-weights-with-stable-diffusion-controlnet-pipeline.pdf

Low-Rank Adaptation (LoRA) は、ディフューザーと大規模言語モデル (LLM) の微調整の問題に対処するために導入された新しい手法です。Stable Diffusion の微調

元記事を表示

Pythonではじめる正規表現

[link-1]: https://docs.python.org/ja/3/library/re.html “reドキュメント”
[link-2]: https://docs.python.org/ja/3/howto/regex.html “正規表現HOW TO”
[link-3]: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Regular_expressions/Capturing_group “MDN Docs キャプチャグループ”
## はじめに
正規表現を勉強するときに、どこから手をつけていいのか分からなかったので、実際に使う上で生じた使い方や疑問をまとめました。

## 基本的な使い方
Pythonの標準モジュール`re`をインポートします。
“`python
import re
“`
以降はインポート文を省略します。
正規表現パターンには2通りの書き方があります。正規表現パターン(`pattern`)が文字列(`string`)にマッチするかどうかを調べる書き方は以下のようになります

元記事を表示

Macでのpython-axolotl-curve25519インストール時のエラー対処

#### 前置き
この前、MacBook Proでpython-axolotl-curve25519をインストールしようとしたら、エラーが出たので対処法を書き留めておく。
github: https://github.com/tgalal/python-axolotl-curve25519

### エラー内容
“`
DEPRECATION: Loading egg at /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/python_axolotl-0.2.3-py3.11.egg is deprecated. pip 24.3 will enforce this behaviour change. A possible replacement is to use pip for package installation.. Discussion can be found at https://github.com/pypa/pip/issues/12330
Collect

元記事を表示

Amazon Bedrock 全LLM 日本語能力比較(2024/5/31 ConverseAPI版)

BedrockにConverseAPIなるものが追加され、モデル毎のパラメータの差異を吸収してもらう事が出来る様です。

ということで、全LLMモデルに対してConverseAPIを呼んでみます。

https://aws.amazon.com/jp/about-aws/whats-new/2024/05/amazon-bedrock-new-converse-api/

https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/bedrock-runtime/client/converse.html#

# 作ったプログラム

I/Fが統一されたのでなんでもモデル呼出し関数を作って全モデルでそれを呼び出してみます。

“`Python
import boto3

prompt=”質問:日本における味噌汁の作り方を詳しく日本語で説

元記事を表示

外れ値があるか確認したいので箱ひげ図を使います。

# この記事について
データの分布を視覚的に把握したい時に、ヒストグラムもいいですが箱ひげ図をつかって外れ値を効果的に把握することができます。

簡単な説明とmatplotlibでの実装をまとめます。

僕が高校生の時と違って、今の高校生は数学で習うんですね。

# 箱ひげ図って何?
箱ひげ図はデータのばらつき具合を視覚的に把握したい時に活用できます。

特徴的なのは四分位数の表示です。

四分位数はデータを小さい順に並べて、小さいものから順位を付けた時に、

– 25%(全体の1/4の部分)=25パーセンタイル
– 50%(全体の2/4=1/2の部分)=50パーセンタイル
– 75%(全体の3/4の部分)=75パーセンタイル

となります。
ちなみに念のため言うと50%の部分は中央値です。

### 箱ひげ図の見方
今回matplotlibでの実装を載せつ都合で、下の図はmatplotlibで作成したものです。
ひげの表す値もデフォルトのものに合わせています。
それぞれの区間は同数のデータが入るので、下の例では第二四分位数から第三四分位数の間のデータは他に比べて密集していることがわか

元記事を表示

昔作ったCSVで3Dデータ

今はどこにデータがあるのか分からないのでrequestsライブラリを使ってデータを得る事が出来ないのですが、昔保存した上高地の地形データのCSVを表示するプログラムです。
“`Python3
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
import csv

f = open(“tikei.csv”)
reader = csv.reader(f)
data = []
tmp = []
for row in reader:
data.append(row)

data = np.array(data)
x = range(len(data[0]))
y = range(len(data))
x = np.array(x, dtype=float)
y = np.array(y, dtype=float)

X, Y = np.meshgrid(x, y)
Z = np.array(data, dtype=float)

fig = p

元記事を表示

graph_viz

“`python
import graphviz as gv

# ノードのリスト
text1 = ‘this is sample text \n hello’
nodes = [text1, ‘B’, ‘C’, ‘D’, ‘E’, ‘F’]

# Digraphオブジェクトを作成
graph = gv.Digraph(format=’svg’, filename=”output/mygraph.gv”,
graph_attr=dict(rankdir=’LR’, splines=’ortho’),
node_attr=dict(shape=’box’))

# ノードを5つずつ追加
graph.node(nodes[0])
graph.node(nodes[1])
graph.node(nodes[2])
graph.node(nodes[3])
graph.node(nodes[4])
graph.node(nodes[5])

# エッジを追加
graph.edge(text1, ‘B’)
graph

元記事を表示

Shopify APIを使用して他プラットフォームから注文を無料でインポートする方法

Shopifyの管理画面から他のプラットフォーム(例えばWixやWooCommerce)から注文をインポートするための方法を説明します。現在、Shopify上の多くのソリューションは高価ですが、このスクリプトを使えば無料で注文をインポートできます。

![1280px-Shopify_logo_2018.svg.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3801337/783c8638-8b68-3faf-fcfb-7c6f1058f749.png)

### 必要な準備

1. Shopify APIの資格情報を取得します。
2. インポートする注文データをCSV形式で用意します。

### スクリプトの説明

以下のPythonスクリプトを使用して、CSVファイルから注文データを読み込み、Shopify APIを介して注文を作成します。

“`
import csv
import requests

# Shopify APIの資格情報
API_KEY = ‘YOUR_API_KEY’

元記事を表示

PythonでリッチなCUIアプリケーションを作ってみた

## はじめに

Pythonには、CUIアプリケーションを作成するための様々なライブラリがある。その中でも、Richライブラリは、美しく洗練されたCUIアプリケーションを作成するための強力なツールである。

なんとなくリッチなCUIに興味があったから触ってみたが、長い処理を行っている場合などは、使うとユーザーフレンドリーでめちゃよさそうだと感じた。

本記事では、Richライブラリを使用して、タスク管理ツールを作成する過程を紹介する。

## Richライブラリの概要

Richライブラリは、CUIアプリケーションに色、スタイル、および高度なフォーマットを追加するためのPythonライブラリである。主な機能には以下のようなものがある。

– カラフルな出力
– テーブルの作成
– プログレスバー
– シンタックスハイライト
– マークダウンのレンダリング

Richライブラリを使用することで、ユーザーフレンドリーで視覚的に優れたCUIアプリケーションを簡単に作成できる。

## タスク管理ツールの作成

### GitHubのコード

https://github.com/koinu

元記事を表示

OTHERカテゴリの最新記事