- 1. はじめに
- 2. 離散分布と連続分布
- 3. 二項分布と正規分布
- 3.0.1. 【langchain】BM25Retrieverの高速化 v0.0.3
- 3.0.2. TCP/IP の通信待ちのサーバーで、毎日、決まった時刻になったら他のタスクを実行するサンプル
- 3.0.3. LSTM(attention機構)で、為替予測してみた。
- 3.0.4. Pythonで大文字小文字を考慮したソートが意外と簡単にできる
- 3.0.5. 【Python】メンテナンスしているプロジェクトが壊れないように`cpython`にテストをコントリビュートしたお話
- 3.0.6. GitHub Universe 2024 現地会場!! GitHub カンファレンスレポート at サンフランシスコ [2024/11/29~2023/11/30]
- 3.0.7. 初心者向け:コードを改変して学ぶ効果的な方法
- 3.0.8. Pythonで〇×ゲームのAIを一から作成する その128 ラッパー関数を作成して返り値として返す高階関数とクロージャーの仕組み
- 3.0.9. Anacondaを使いこなそう! よく使うコマンドとその活用術
- 3.0.10. Pythonでデータを正規化する方法
- 3.0.11. Pythonでデータを正規化する方法と注意点
- 3.0.12. 外れ値が含まれるデータセットの扱い方
- 3.0.13. IQR法を使用した外れ値検出の手法とPythonでの実装
- 3.0.14. Pythonによるデータ処理結果のグラフ表示方法
ROSでimage_viewの動画が保存できないとき
# image_viewで動画が保存できない
ROSを使っていて、カメラ画像をsubして、何かをしてpubしたときに、
その画像をRvizやimage_viewで見られるのに、なぜが、image_view video_recorderで保存しようとすると、できない。aviはできてるけど、開くと見れない。ってときは、headerを確かめてください。frame_idありますか?stampありますか?
なければ、プログラム中でtopicをpubするまえに、“`
topic名.header.frame_id = ‘なんか良い感じのID’
topic名.header.stamp = rospy.Time.now()
“`こんな感じで、両者を追加すると解決するかも。
3時間ハマッた…。
Ollamaによるチャンクサイズとモデル精度の関係を検証
![S__6569997.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3784222/8dfd70c1-a4f9-d1cb-d7b9-216d6d9a6d51.jpeg)
# はじめに
@SNAMGNさんより「チャンクサイズ」が回答精度に影響する可能性があるとのご指南をいただき、貴重なアドバイスをもらいました。この場を借りてお礼申し上げます!また、前回の記事の公開後、「1か月以内に新しい記事を出す」と宣言していたので、何とかまとめることができてよかったです。
**前回の記事:**
https://qiita.com/ogi_kimura/items/695d0d067b62501b753f
実は、今回は自分のPCの**GPU**をフル活用して処理を高速化する予定でしたが、残念ながらうまくいかず、結局**CPU**のみでの処理となっています。
**GPU利用に失敗した記事:**
https://qiita.com/ogi_kimura/items/d5ea9b9cf377dcbfe21
日本オラクルと協創!企業内のあらゆる業務データを元に回答する”生成AIエージェント”とは? – (Part 3)
## はじめに
こんにちは、株式会社日立製作所の [Lumada Data Science Lab.](https://www.hitachi.co.jp/products/it/lumada/about/ai/ldsl/index.html) の渡邉です!
株式会社日立製作所(以下、日立)と日本オラクル株式会社(以下、オラクル)で3か月の協創プロジェクトを実施しました。
協創プロジェクトで実施した内容は以下の通りです!
1. [ユーザーの質問文から次のアクションをLLMに考えさせるAgentアーキテクチャの実装 (本記事Part 1で説明)](https://qiita.com/wtnbrs/private/cbf6a70e7051e687c2c7)
2. [めんどうなベクトル化処理不要!今ある業務DBに活用したいテキストデータを組み合わせるだけのOracle Database構築 (Part 2で説明)](https://qiita.com/wtnbrs/private/5977126b84e5f831ebba)
3. 自然言語からSQL文へ!便利なSelect AI機能と
日本オラクルと協創!企業内のあらゆる業務データを元に回答する”生成AIエージェント”とは? – (Part 2)
## はじめに
こんにちは、株式会社日立製作所の [Lumada Data Science Lab.](https://www.hitachi.co.jp/products/it/lumada/about/ai/ldsl/index.html) の渡邉です!
株式会社日立製作所(以下、日立)と日本オラクル株式会社(以下、オラクル)で3か月の協創プロジェクトを実施しました。
協創プロジェクトで実施した内容は以下の通りです!
1. [ユーザーの質問文から次のアクションをLLMに考えさせるAgentアーキテクチャの実装 (本記事Part 1で説明)](https://qiita.com/wtnbrs/private/cbf6a70e7051e687c2c7)
2. めんどうなベクトル化処理不要!今ある業務DBに活用したいテキストデータを組み合わせるだけのOracle Database構築 (本記事Part 2で説明)
3. [自然言語からSQL文へ!便利なSelect AI機能とAI Vector Search機能 (Part 3で説明)](https://qiita.com/wtn
日本オラクルと協創!企業内のあらゆる業務データを元に回答する”生成AIエージェント”とは? – (Part 1)
## はじめに
こんにちは、株式会社日立製作所の [Lumada Data Science Lab.](https://www.hitachi.co.jp/products/it/lumada/about/ai/ldsl/index.html) の渡邉です!
株式会社日立製作所(以下、日立)と日本オラクル株式会社(以下、オラクル)で3か月の協創プロジェクトを実施しました。
協創プロジェクトで実施した内容は以下の通りです!
1. ユーザーの質問文から次のアクションをLLMに考えさせるAgentアーキテクチャの実装 (本記事Part 1で説明)
2. [めんどうなベクトル化処理不要!今ある業務DBに活用したいテキストデータを組み合わせるだけのOracle Database構築 (Part 2で説明)](https://qiita.com/wtnbrs/private/5977126b84e5f831ebba)
3. [自然言語からSQL文へ!便利なSelect AI機能とAI Vector Search機能 (Part 3で説明)](https://qiita.com/wtnbrs
【Python】確率分布とプログラム実装
はじめに
今回は、初学者向けに二項分布や正規分布などの確率分布関連の基本知識とそれらに関するPythonでの実装方法について説明していきます!
離散分布と連続分布
まず、初めに離散分布と連続分布について説明します。
基本的に、多くの統計データはこれらの二つのカテゴリーに分類される。
- 離散分布:データが特定の離散的な値を取る分布 → ある程度値が決まっているイメージ
- 例:二項分布・ポワソン分布
- 使用例:コインの表裏・サイコロの出目(1~6)・不良品の数 (何個中何個が不良品)
- 連続分布:データが連続的な値を取る分布 → 細かく値を刻んでるイメージ
- 例:正規分布・一様分布・指数分布
- 使用例:身長・体重(165.5cm, 57.1kg)・気温 (23.4℃)・時間(6.4秒)
今回は二項分布と正規分布をメインに説明していきます!
二項分布と正規分布
<
【langchain】BM25Retrieverの高速化 v0.0.3
# はじめに
langchainのBM25Retrieverの高速化に関する2024/10/29時点でのメモです。
高速化したBM25Retrieverの使い方と評価結果を記載しています。評価では、検索およびマージ速度、検索結果が既存のものと大きく異ならないことなどを検証しています。コードは以下のリポジトリで公開しています。
https://github.com/jiroshimaya/fast-langchain-sparse-retrieverなお本記事は以下の記事の続きです。以下の記事の執筆時から、実装および評価コードに更新があったため改めて内容をまとめました。
[【langchain】BM25Retrieverの高速化(rank_bm25使用) v0.0.2](https://qiita.com/shimajiroxyz/items/77be6d54ba01683c9e50)# 想定される利用シーン
本実装は以下のようなケースで有効な可能性が高いです。– **検索速度の向上**: langchain.BM25Retrieverを使用しており、検索速度を向上したい
TCP/IP の通信待ちのサーバーで、毎日、決まった時刻になったら他のタスクを実行するサンプル
### 開発を行った動機
AI で Web 上に検索結果などを表示するシステム、index.html から client.php に検索要求を送信し、client.php が TCP/IP 通信で python のサーバーに検索要求を伝えるという検索サーバーserver.pyを作っていました。検索サーバーは、検索の元ネタファイルを読み込んで、検索要求を待っています。元ネタファイルを読み込むのに5分以上かかるので、この index.html, client.php, server.py という配置にしました。どういうことかというと、server.py は一度元ネタファイルを5分かけて読み込んで、あとは通信で検索要求を待っていれば、タイムラグなく検索要求に答えられるからです。検索の元ネタのファイルは、別のプログラムで毎晩24時に更新されます。すると、通常は、検索要求を待っている server.py は、24時になったことを検出できなければなりません。通常の TCP/IP のネットワークサーバーでは、
socket→bind→listen →
while True
LSTM(attention機構)で、為替予測してみた。
(下書き)
## イントロダクション
- **はじめに**
- トレードは自己責任でお願いします。
- なぜ、為替予測なのか?
- データが手に入りやすい。
- 数値データなので、前処理が楽。
- 精度の高いモデルを作ることができれば、利益に直結するから(モチベ)
- **LSTM((attention機構)の採用理由**
- LSTMは、時系列データを扱うのに、優れているから(ゲート機構により、過去のデータを保持できるから)
- 為替予測では、最新のデータの方が重要性が高いです。そのため、Attentionを取り入れることで、最新のタイムステップに対して重みをつけることができるから。
- **開発環境**
- Google Colaboratory
- **使用ライブラリ**
- torch, scikit-learn, pandas, numpy, matplotlib ,backtesting
```python
# Google Colaborator
Pythonで大文字小文字を考慮したソートが意外と簡単にできる
# Pythonのソートの基本
[公式チュートリアル](https://docs.python.org/ja/3/howto/sorting.html)を見ると大変わかりやすくまとまっているが、最低限の特徴としては、
- 組み込み関数[sorted()](https://docs.python.org/ja/3/library/functions.html#sorted)とリストのメソッド[list.sort()](https://docs.python.org/ja/3/library/stdtypes.html#list.sort)があるが仕組みや応用の仕方は同じ
- キーワード引数*key*に[キー関数](https://docs.python.org/ja/3/glossary.html#term-key-function)を設定することでいろいろなソートを実現できる# 今回の目標
```python
['aB', 'A', 'ab', 'AB', 'a', 'Ab', 'b', 'B']
```
が
```python
['A', 'a', 'AB', 'Ab', 'aB
【Python】メンテナンスしているプロジェクトが壊れないように`cpython`にテストをコントリビュートしたお話
## 概要
私はPure PythonでWindowsのCOMとやり取りするためのパッケージである[`comtypes`](https://pypi.org/project/comtypes/)をメンテナンスしています。
このパッケージはPythonの標準ライブラリ[`ctypes`](https://docs.python.org/ja/3/library/ctypes.html)に依存しています。
Python 3.13から`ctypes`に変更が加えられ、`comtypes`はPython 3.12まで動いていた実装では動かなくなってしまいました。
`comtypes`のコード変更により、Pythonバージョン間の互換性を保って動くようにすることができましたが、`ctypes`の変更によってまたこの実装が壊れてしまうことが予想されました。
そこでリグレッションを防止することを目的に、Pythonの本家である[`cpython`リポジトリ](https://github.com/python/cpython)にテストを追加するコントリビュートを行いました。
この記事ではこの顛末と、
GitHub Universe 2024 現地会場!! GitHub カンファレンスレポート at サンフランシスコ [2024/11/29~2023/11/30]
Software enginnerのmagisystemです。明日からサンフランシスコで`Github Universe 2024`が開かれます
https://reg.githubuniverse.com/flow/github/universe24/attendee-portal/page/livestream?tab.day=20241029
今年は、10th anniversaryということで、かなり2023年から予告してたのもあり港を1つ貸し切る規模で行われ会場は、`FoRT MASON`というゴールデンゲートブリッジがよく見える場所で行われるみたいです。
![IMG_3719 2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1466470/541648f1-76b2-6e5f-6733-1119b31ba397.jpeg)
去年とは違い、Ticketがプラスチックになっていました。(去年は紙だった)
![github-ticket.png](https://qiita-imag
初心者向け:コードを改変して学ぶ効果的な方法
## 初心者向け:コードを改変して学ぶ効果的な方法
プログラミングを学び始めるとき、書かれたコードをただ模写するだけでは、深い理解に繋がりにくいことが多いです。そこで、実際にコードを少しずつ改変して、どう動作が変わるかを確認しながら学習する方法が非常に効果的です。この記事では、コードの改変を通じてプログラムの仕組みを理解するための具体的な手順を紹介します。
---
### 1. **変数の値を変更してみる**
変数はプログラムの中でさまざまなデータを保持しています。変数の値を変えることで、出力がどう変わるのかを確認してみましょう。次の例を参考にして、コードの中の変数の値を変更してみてください。
```python
# 元のコード
x = 10
y = 5
result = x + y
print(result) # 出力: 15# 改変例
x = 20 # 新しい値に変更
y = 5
result = x + y
print(result) # 出力がどう変わるか確認
```**目的**: 変数に新しい値を入れることで結果がどう変化するかを確認します。これにより
Pythonで〇×ゲームのAIを一から作成する その128 ラッパー関数を作成して返り値として返す高階関数とクロージャーの仕組み
# 目次と前回の記事
https://qiita.com/ysgeso/items/2381dd4e3283cbed49a0
https://qiita.com/ysgeso/items/1ce7ecc51ae323b64bee
## これまでに作成したモジュール
以下のリンクから、これまでに作成したモジュールを見ることができます。
| リンク | 説明 |
|:--|:--|
| [marubatsu.py](https://github.com/ysgeso/marubatsu/blob/master/128/marubatsu.py) | Marubatsu、Marubatsu_GUI クラスの定義|
| [ai.py](https://github.com/ysgeso/marubatsu/blob/master/128/ai.py) | AI に関する関数 |
| [test.py](https://github.com/ysgeso/marubatsu/blob/master/128/test.py) | テストに関する関数 |
| [util.py]
Anacondaを使いこなそう! よく使うコマンドとその活用術
Anacondaは、データサイエンスや機械学習で必須のPythonパッケージをまとめた、パワフルなプラットフォームです。
本記事では、Anacondaを使い始めるにあたって知っておきたい基本的なコマンドから、日々の作業を効率化する便利なコマンドまでご紹介します。
**1. 環境構築と管理**
- **conda create**: 新しい仮想環境を作成します。
```
conda create -n <環境名> python=<バージョン>
```- 例: `conda create -n myenv python=3.8`
- **conda activate**: 作成した仮想環境をアクティブ化します。```
conda activate <環境名>
```- **conda deactivate**: アクティブな仮想環境を非アクティブ化します。
- **conda env list**: 作成済みの仮想環境の一覧を表示します。(conda info -e でもできる)
-
Pythonでデータを正規化する方法
# Pythonでデータを正規化する方法
データの正規化は、異なるスケールのデータを共通の範囲(通常は0から1)にスケーリングし、機械学習モデルの性能を向上させるための重要な前処理です。本記事では、Pythonでのデータ正規化の一般的な手法について解説し、それぞれのPython実装例を紹介します。
---
## 目次
1. [Min-Max 正規化](#min-max-正規化)
2. [Z-score 標準化](#z-score-標準化)
3. [カスタム正規化関数](#カスタム正規化関数)
4. [正規化手法の選択と考慮点](#正規化手法の選択と考慮点)
5. [参考文献](#参考文献)---
## 1. Min-Max 正規化
Min-Max正規化は、データを0から1の範囲にスケーリングする最も一般的な方法です。以下の式で計算されます:
\[
\text{normalized\_value} = \frac{\text{value} - \text{min\_value}}{\text{max\_value} - \text{min\_value}}
\]##
Pythonでデータを正規化する方法と注意点
# Pythonでデータを正規化する方法と注意点
データの正規化は、異なるスケールの特徴量を統一して機械学習モデルの性能を向上させる重要な前処理です。Pythonにはデータ正規化のための便利なライブラリが豊富に提供されていますが、正しい手順と注意点を理解して正規化を行う必要があります。本記事では、Pythonでのデータ正規化手法とそれに関する注意点について解説します。
---
## 目次
1. [データ正規化の重要性と注意点](#データ正規化の重要性と注意点)
2. [Pythonでの一般的な正規化手法](#Pythonでの一般的な正規化手法)
- Min-Max 正規化
- Z-score 標準化
- Robust Scaling
3. [実装例](#実装例)
4. [まとめ](#まとめ)
5. [参考文献](#参考文献)---
## 1. データ正規化の重要性と注意点
### 外れ値の影響
Min-Max正規化などの手法では、外れ値に対して非常に敏感です。極端な数値が存在すると、他のデータが0や1の付近に集中し、分散が少なくなります。そのため
外れ値が含まれるデータセットの扱い方
# 外れ値が含まれるデータセットの扱い方
データ分析において、外れ値(アウトライアー)の存在は、モデルの精度や信頼性に影響を与えることがあります。外れ値が分析結果に悪影響を及ぼす場合、その特定と処理が必要です。本記事では、外れ値の検出や処理方法について、Pythonでの実装例を交えながら説明します。
---
## 目次
1. [外れ値の検出方法](#外れ値の検出方法)
- Zスコア法
- IQR (四分位範囲) 法
2. [外れ値の処理方法](#外れ値の処理方法)
- 削除
- 変換
- 補完
- トリミング
3. [統計的手法の選択](#統計的手法の選択)
4. [データの性質の考慮](#データの性質の考慮)
5. [可視化による確認](#可視化による確認)
6. [統計的検定による客観的判定](#統計的検定による客観的判定)
7. [ドメイン知識の活用](#ドメイン知識の活用)
8. [外れ値に強いモデリング手法](#外れ値に強いモデリング手法)
9. [まとめ](#まとめ)
10. [参考文献](#参考文献)---
#
IQR法を使用した外れ値検出の手法とPythonでの実装
# IQR法を使用した外れ値検出の手法とPythonでの実装
IQR(四分位範囲)法は、データセットの分布に基づいて外れ値を特定するための手法で、データの四分位数を計算し、通常の範囲から大きく外れたデータポイントを検出します。本記事では、IQR法を用いた外れ値検出の手順とPythonでの実装例について詳しく解説します。
---
## 目次
1. [IQR法による外れ値検出の手順](#iqr法による外れ値検出の手順)
2. [Pythonでの実装例](#pythonでの実装例)
3. [注意点と考慮事項](#注意点と考慮事項)
4. [まとめ](#まとめ)---
## IQR法による外れ値検出の手順
IQR法は、四分位範囲(IQR)を利用して外れ値を検出します。以下の手順に基づいて、データから外れ値を見つけることができます。
1. **データの四分位数(Q1, Q2, Q3)を計算する**
- Q1(第1四分位数)はデータの下位25%点です。
- Q2(第2四分位数)は中央値(データの中央の値)です。
- Q3(第3四分位数)はデータの上位25%点です
Pythonによるデータ処理結果のグラフ表示方法
### Pythonによるデータ処理結果のグラフ表示方法
本記事では、Pythonを使用してデータ処理結果をグラフで視覚化する手順を説明します。グラフの種類やカスタマイズ方法についても触れ、データの可視化を簡単に行えるようになることを目指します。
---
### 目次
1. [はじめに](#はじめに)
2. [Pythonでのグラフ作成の準備](#pythonでのグラフ作成の準備)
3. [Matplotlibの基本的な使い方](#matplotlibの基本的な使い方)
- 3.1. 折れ線グラフ
- 3.2. 散布図
- 3.3. 棒グラフ
- 3.4. ヒストグラム
4. [グラフのカスタマイズ](#グラフのカスタマイズ)
5. [複数のデータセットの表示](#複数のデータセットの表示)
6. [グラフの表示と保存](#グラフの表示と保存)
7. [実装例: 処理結果の時系列データのグラフ化](#実装例-処理結果の時系列データのグラフ化)
8. [まとめ](#まとめ)
9. [参考文献](#参考文献)---
### 1. はじめに
データの視覚