タグ

pythonと*dataに関するsh19910711のブックマーク (344)

  • BigQuery DataFramesを使ってみる | DevelopersIO

    このデータをBigQuery DataFramesで扱います。内容としては{project_id}.data_set_test.jp_weatherのデータを使ってPandasで行う一般的な分析操作を行います。コードは以下になります。 import os import bigframes.pandas as bpd bpd.options.bigquery.project = os.environ.get("GOOGLE_PROJECT_ID") bpd.options.bigquery.location = "asia-northeast1" df1 = bpd.read_gbq("{project_id}.data_set_test.jp_weather") # df1 = bpd.read_gbq("SELECT * FROM {project_id}.data_set_test.j

    BigQuery DataFramesを使ってみる | DevelopersIO
    sh19910711
    sh19910711 2024/04/03
    "BigQuery DataFrames: pandas互換のPythonic DataFrameのbigframes.pandasモジュールとscikit-learnライクのbigframes\.mlモジュール / Pandasと同じ関数を使って分析を行うことができ非常に便利" 2023
  • PolarsとPanderaで実現する高速でロバストなデータ処理

    CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again

    PolarsとPanderaで実現する高速でロバストなデータ処理
    sh19910711
    sh19910711 2024/03/31
    "データ品質: 想定外のデータや意図しない処理が誤った分析やモデルの性能劣化につながる / Pandera: データが満たすべき性質をスキーマとしてコードに定義 + どんなデータが入出力されるか?をコードをから読み取れる"
  • PanderaでPolarsのデータバリデーションを試す

    この記事は何? データバリデーションライブラリのPanderaがPolarsのサポートを開始したので、早速それを試してみるもの。基的なバリデーションのやり方を確認した上で、実行速度への影響を簡単な実験で確認した。 なお2024/3/16現時点では機能はベータ版という状態であるため、今後なんらかの大きな変更が発生する可能性がある。最新の情報を得たい場合は、公式のリリースやドキュメントを参照してほしい。 Beta release 0.19.0b0: Polars integration Data Validation with Polars 前提 Panderaとは? Panderaは、pandas.DataFrameのような2次元の表形式の構造を持つデータ(=データフレーム)に対するバリデーションを提供するライブラリである。事前にデータフレームに対して、各カラムの型や制約をスキーマとして

    PanderaでPolarsのデータバリデーションを試す
    sh19910711
    sh19910711 2024/03/18
    "PanderaがPolarsのサポートを開始 / Polarsのlazy APIによる遅延評価の仕組みを使っていたとしても、Panderaによる実行時バリデーションを行うタイミングで.collect()による評価が行われ"
  • PyAirbyteで始める簡単Data Injest Pipeline

    はじめに PyAirbyteがリリースされました。(2024/03/16時点ではBeta版なのでご注意を) PyAirbyteはExtractのコネクタ部分をPythonのライブラリとして提供してPandasに格納するという機能を提供しているらしい。 つまり、BigQueryのクライアントと合わせればExtractとLoadの部分を過疎結合にしつつ、スケジューラーでPythonを呼び出すだけのシンプルなData Injest Pipelineを作ることが可能なのでは!?ということで検証します。 個人的に考えるData Injestツールの抱える課題点 FivetranのようなSaaSを使い始める際は規約確認や、契約がとても面倒 Airbyteは契約関連の面倒な部分は無いが、運用工数が大きすぎる worker, sever, temporal, api, dbなどなど(ちゃんと拡張性を考えて

    PyAirbyteで始める簡単Data Injest Pipeline
    sh19910711
    sh19910711 2024/03/17
    "SaaSを使い始める際は規約確認や、契約がとても面倒 / Airflowでスケジューリング機能があって、Fivetranでもスケジューリング機能があって、Airflowの各種OperatorでELの機能があって、FivetranでELの機能があって"
  • 傾向スコアを用いてバイアス補正する方法 - Qiita

    となりそうな気がします。。。 当でしょうか? もちろんこれで十分な場合もあります。しかし、(1.1) では、広告以外の影響が紛れ込んでいることが多々あります。 例えば、普段からよく買い物をしてくれる優良ユーザにだけ広告が打たれていたとしたらどうでしょう。(1.1) 式の1項目は優良ユーザの購買額に大きく引きずられます。一方で、2項目は普段からあまり買い物をしてくれないユーザが集まり値が小さくなります。引き算をしているので、これも (1.1) の値を底上げする方向に働きます。以上の結果として、広告効果を過大評価してしまうことになるでしょう。 このようにデータには来は見るつもりのなかった偏りが忍び込んでくることが多々あります。この偏りをバイアスと呼び、広告効果を正しく評価するためには、バイアスをいかにして除去するかがカギとなります。 並行世界からの救済「反実仮想」 さて問題は、「バイアスを

    傾向スコアを用いてバイアス補正する方法 - Qiita
    sh19910711
    sh19910711 2024/03/13
    "同一のユーザに対して広告に接触した状態の購買額と、接触していない状態の購買額の差分を評価することができれば純粋な広告効果そのものを取り出せそう / バイアス: それを特徴づける何かが背後に隠れているはず" 2018
  • Streamlit Elements を使ってドラッグ・サイズ変更可能なダッシュボードを作ってみた

    この記事は、Retty Advent Calendar 2023、7日目の記事です🎄🎁 (1日遅れての投稿です > <) サマリ streamlit-elementsを使うと、ドラッグ・サイズ変換可能なダッシュボードを作ることができる Streamlitだと、データの集計対象の絞り込み・表示/非表示の出し分けのコントロールも行いやすい 実装した挙動はこんな感じ↓実際の挙動 ※記事の細かい実装内容はhttps://github.com/Igecchi/bq_streamlit/をご参照ください ↓試せるようにしました! ※ダークモードの場合、一部表示崩れがありますmm 📊こちらからアクセス📊 Streamlitとは? Streamlitは、Pythonで実装されたオープンソースのWebアプリケーションのフレームワークです。 このフレームワークを使うことで、フロントエンドの経験がなく

    Streamlit Elements を使ってドラッグ・サイズ変更可能なダッシュボードを作ってみた
    sh19910711
    sh19910711 2024/03/01
    "streamlit-elements: ドラッグ・サイズ変換可能なダッシュボードを作ることができる / 集計対象の絞り込み・表示/非表示の出し分けのコントロールも行いやすい / Snowflake: Streamlitアプリをデプロイできる" 2023
  • 階層ベイズで個性を捉える(PyMC ver.5.7.2) - Qiita

    はじめに あまりベイズモデリングを勉強していなかった私。 なんとなくどういった場面で使うべきか思いつかなかったから。 いくつかは持っていたが、積んだまま。 そんな時に以下の資料を見た。 GLMMの紹介 GLM→GLMM→階層ベイズモデル 階層ベイズによるワンToワンマーケティング入門 「え、個体ごとにパラメータ出せるんだ!?めっちゃええやん。」 特にOne-To-Oneマーケティングが可能ってことが魅力的だった。たまにマーケティング関連の分析をすることもあり、クラスタリングでマイクロマーケティングなら実践したことがあったので、いっちょ勉強してみっか!と動き出したのだった。 てか階層ベイズのお勉強して思ったが、SEMとかもやろうと思えばベイズモデル化できるんだよな、多分。 今回は仮想購買データを使って、階層ベイズモデルを構築し、個人ごとに良さげなパラメータが求められているか確認してみる。

    階層ベイズで個性を捉える(PyMC ver.5.7.2) - Qiita
    sh19910711
    sh19910711 2024/02/20
    "pymc 5.7.2: NumPyroによるMCMCを実行することができて、pymc3時代よりかなり速くなっているらしい / jaxで使用する論理プロセッサ数が指定した数だけあることを確認 / 指定せずにやってたらMCMCが遅すぎて途方に暮れてた" / 2023
  • Google Colab + Matplotlibを使ったデータの可視化における2つの流儀とPandasのDataFrameのplotの話 - Qiita

    Google Colab + Matplotlibを使ったデータの可視化における2つの流儀とPandasのDataFrameのplotの話matplotlibpandascolaboratoryGoogleColaboratory データ分析やデータ加工にGoogle Colabを使用するメリットの一つに、Matplotlibを使った可視化がやりやすい点があります。 Google Driveから読み込んだCSVやBigQueryでのクエリー実行結果から、最低限のコードで手軽にグラフを作ることができ、視覚的にデータの内容をチェックできます。 複数のグラフを並べてレイアウトしたり、seabornを使ってより高度な可視化をすることもできます。 Google Colab + Matplotlib + PandasのDataFrameを使ったデータの可視化はとても手軽で便利な一方で、 「流儀」 の問

    Google Colab + Matplotlibを使ったデータの可視化における2つの流儀とPandasのDataFrameのplotの話 - Qiita
    sh19910711
    sh19910711 2024/02/18
    "Matplotlib: Explicit(オブジェクト指向)とImplicit(MATLAB風)という二つの流儀 + 同じようなことをそれぞれの流儀で実装することができます / 「流儀」 の問題があるため、学習で躓きやすい" / 2022
  • 第2章「正直に回答しづらい違法行為の経験率の推定」のベイズモデリングをPyMC Ver.5 で|ネイピア DS

    この記事は、テキスト「たのしいベイズモデリング2」の第2章「正直に回答しづらい違法行為の経験率の推定」のベイズモデルを用いて、PyMC Ver.5で「実験的」に実装する様子を描いた統計ドキュメンタリーです。 テキストは第2章から第4章まで「間接質問法」の各種手法で「違法行為等の経験」の調査データを用いたベイズモデリングに取り組んでいます。 この章では、「アイテムカウント法」を用いて違法行為の経験率を推論します。 カウンター・数取器のイラスト:「いらすとや」さんよりテキストのモデル数式の解読は難しかったですが、なんとかPyMCモデルを構築できました。 そして「2」初の「無事の収束」と「結果の一致」を迎えることができました! さあ、PyMCのベイズモデリングを楽しみましょう。 サマリーテキストの概要執筆者   : 久保沙織 先生、豊田秀樹 先生、岡律子 先生、秋山隆 先生 モデル難易度: ★★

    第2章「正直に回答しづらい違法行為の経験率の推定」のベイズモデリングをPyMC Ver.5 で|ネイピア DS
    sh19910711
    sh19910711 2024/02/11
    "大学生の違法行為の経験率 / 間接質問法: 答えにくい質問の回答を得る場合に、回答者のプライバシーを守りつつ、分析に必要なデータを取得できる質問方法 / 「たのしいベイズモデリング2」の第2章"
  • LightweightMMMのモデルの解説 - Qiita

    1.Marketing Mix Modeling(MMM)とは MMMとは,複数の広告への投資がそれぞれKPIにどの程度影響するかを推定し,投資配分を最適化するための手法を指す. 例:アプリ広告・Web広告・雑誌広告がそれぞれ売上にどれぐらい影響するかを調べる. 歴史のある手法だが,各広告への支出とKPIのデータだけあればよく,個人情報を利用しないため,クッキーレスの流れに伴い近年注目されている. 様々なベンダーがサービスを提供しているのに加え,GoogleのLightweightMMM,MetaのRobyn,UberのOrbitなど,近年ビッグテック企業が相次いでパッケージを公開している. 手法としては,近年はベイジアン非線形時系列モデルが用いられることが多い. 2 LightweightMMM(Google)について 2.1 LightweightMMMとは GoogleがJin et

    LightweightMMMのモデルの解説 - Qiita
    sh19910711
    sh19910711 2024/01/22
    "MMM: GoogleのLightweightMMM,MetaのRobyn,UberのOrbitなど,近年ビッグテック企業が相次いでパッケージを公開 / LightweightMMM: NumpyroやJAXにより高速なサンプリングを実現 / 各メディアへの投資額がどのように売上に貢献するか" / 2023
  • 年始からお手軽ベクトル検索を作る - kurainの壺

    あけましておめでとうございます。 今年は、もうちょっとblogを書こうかなということで、三が日のうちに1つ出してみようと思います。 さて、2023年はLLMの利用と同時にベクトル検索が急に利用されるようになった年でした。 Retrieval-Augmented Generation(RAG)をみんな使い出したのと、OpenAIembedding APIの性能が思った以上に良かったことが主な理由だと思います。 ベクトル検索は faiss でもchromaでも、qdrant でも何を使ってもよいと思いますが、numpy を使えば数行で実装できるし性能も悪くないことがわかったので書き残しておきます。 import numpy as np class SimpleVecSearch(): def add(self, ndarray): self._ndarray = ndarray def

    年始からお手軽ベクトル検索を作る - kurainの壺
    sh19910711
    sh19910711 2024/01/19
    MLX、知らなかった / "ベクトル検索は faiss でもchromaでも、qdrant でも何を使ってもよい / MLX: apple silicon 向けの numpy 互換ライブラリ + GPU を使って線形代数計算を高速に計算 + numpy を mlx.core に書き換えるだけ"
  • ベクトル検索の高速化アルゴリズムと量子化パラメータの速度・データサイズ・精度の計測 - RAGでの利用時にはtop-N を意識する - A Day in the Life

    最近、文をembeddingsといった特徴ベクトルに変換するユースケースが増えている。そのベクトルから類似ベクトルを探す時に、数千ベクトルならほぼ何も考えなくともよく、数万ベクトル〜になると検索速度を高速化するためHNSW等のANNの近似最近傍探索アルゴリズムを使い、そして数百万ベクトル〜になってくると現実的なデータサイズ収めるために量子化等々を組み合わせた最適化を行うことが多いだろう。 これら類似ベクトル検索のための最適化(HNSW・IVFといったアルゴリズムや量子化)では、検索速度、データサイズ(メモリに乗るか)、精度、三つのトレードオフが発生する。これらトレードオフを踏まえた最適化戦略を考えるのだが、最適化時の正確さの計測結果として recall@10 や recall@100 が掲載されていることを多く見かける。例えばChoose the k-NN algorithm for yo

    ベクトル検索の高速化アルゴリズムと量子化パラメータの速度・データサイズ・精度の計測 - RAGでの利用時にはtop-N を意識する - A Day in the Life
    sh19910711
    sh19910711 2024/01/18
    "faiss の benchs: IVFやHNSW以外の計測や、例えばPCAで次元削減するベンチマークなど、ベクトル検索でこんなことやりたいよう、という計測も結構行われていたりする / faiss.index_factory(d, "IVF2048,PQ64")" / 2023
  • AWS Lambda Pythonでsqlite-vssによるベクトル検索を利用する - maybe daily dev notes

    昨今LLMの台頭により、テキストをベクトル化して類似文書の検索に利用する手法が流行っています。 今回はAWSでこの検索を実現するための一方法として、SQLiteのプラグインであるsqlite-vssをAWS Lambda上で使う方法をまとめます。 github.com 意外とハマりどころや特有の考慮事項が多いので、必見です! アーキテクチャ LambdaSQLite?と思った方のため、このアーキテクチャの要点をまとめます。 このアーキテクチャのメリットは、完全なサーバーレスでベクトル検索を実行できる点です。OpenSearchやPostgres (pgvector)、Redisなどのインスタンスを管理する必要はありません。サーバーレスの利点はもはや言うまでもないでしょう。 また、SQLiteを使うため、ベクトルだけでなく他のリレーショナルなデータをあわせて格納できる点も便利でしょう。例え

    AWS Lambda Pythonでsqlite-vssによるベクトル検索を利用する - maybe daily dev notes
    sh19910711
    sh19910711 2023/08/20
    "sqlite-vss: SQLiteのバージョンにより若干使い方が変わり + SQLiteが3.41.0未満の場合は、クエリする際のパラメータ指定方法がやや冗長 + Faissというライブラリが使われています / check_same_thread=False"
  • Python Pandasはバッチ処理に向いてない - Qiita

    Pandasって? Pandasは、DataFrameという表形式のデータ構造を中心に、様々なデータ処理ができるライブラリ。 データベースでいうところのテーブルなので、SQL知ってればすぐに入門できる。Pythonデータ分析する人にはお馴染み。 どういう経緯で導入したの? 伝聞情報も多いけれど、こんな流れで開発チームに導入されたのだと思う。 オンプレミスとクラウドのハイブリッド化が進み、どんどんデータベース・ストレージが分散していく。 データフローの管理が課題となり、Pythonでデータフローを組めるLuigiが導入される。 当初、Luigiは主にデータベース・ストレージへの入出力を担う予定だった。 チームの共通言語がScalaな事もあり、ロジックは外に切りだして堅く実装する予定だった。 Luigiから各データベース・ストレージへ接続できる環境を作る。 簡単な転送やレポートのデータフロー

    Python Pandasはバッチ処理に向いてない - Qiita
    sh19910711
    sh19910711 2023/06/24
    "簡単な転送やレポートのデータフローがLuigiで組まれていく / 改修が進みだんだんとフィルタ・結合・集計といった処理が入りこんで自然とPandasが使われる / 気づけばいくつかのバッチ処理がPandasに依存している状態" / 2017
  • k6で負荷試験してpandasで集計した話 - Qiita

    はじめに この記事はHRBrain Advent Calendar 2022 カレンダー3の19日目の記事です。 こんにちは!株式会社HRBrainでエンジニアをしているZamaです。 みなさんは負荷試験してますか? 画面をポチポチする機能テストはちゃんとやっていても、負荷試験は忘れられていたり先送りにされてしまいがちですよね…… そんな負荷試験ですが、k6を用いて実施したら結果表示がイマイチだったので詳細なログファイルをpandasで集計した話です! k6とは k6は負荷試験のツールで、JavaScriptAPIの呼び出しなどを記述します。 import http from 'k6/http'; export default function () { const res = http.get('https://example.com'); check(res, { 'response

    k6で負荷試験してpandasで集計した話 - Qiita
    sh19910711
    sh19910711 2023/06/16
    "k6 Cloud: 複数台のEC2インスタンスから負荷をかけられたり、詳細でリッチに可視化された結果を確認できたり / --out csv=<ファイル名>とオプションを付けて実行すれば、詳細なログがCSVファイルに吐き出されます" / 2022
  • データ分析でコードをクリーンに保つ技術 - Higu`s diary

    こんにちは、ひぐです。 最近データサイエンティストのための良いコーディング習慣という記事を読みました。 www.thoughtworks.com こうした方がいいよなという自分の経験則が綺麗に言語化されていてよかったです。 ここではデータ分析でコードをクリーンに保つ技術について、記事の内容と自分の取り組みを合わせて紹介したいと思います。 自分はまだチームでの開発経験などが浅いため、間違っている部分もあるかもしれません。 あらかじめご了承ください汗 コードが汚くなる要因 コードが解くべき問題の複雑さを増長させている時、そのコードは汚いと言えます。 汚いコードは汚い部屋で探し物をする時などと同じく、簡単な作業を困難にしてしまいます。 では、どのような書き方をするとコードが汚くなるのでしょうか。 元記事には下記のような例が記載されています。 関数やクラスを使って処理を抽象化しない 一つの関数に長

    データ分析でコードをクリーンに保つ技術 - Higu`s diary
    sh19910711
    sh19910711 2023/06/16
    "データサイエンティストのための良いコーディング習慣という記事 / 自分の経験則が綺麗に言語化 / コードが解くべき問題の複雑さを増長させている時、そのコードは汚い / jupyter notebookはコードを煩雑にしやすい" / 2020
  • PyMC+JAXでイベント参加率の比較する - Qiita

    はじめに この記事はHappy Elements Advent Calendar 2020の22日目の記事になります。 データアナリストとしての立場で書かせていただきます。 記事の内容 Happy Elements株式会社では「Make The World Happy!」というスローガンを掲げ、「ゲーム」を通じた喜びや感動をお届けすることで、沢山の人々にほんの少しでも幸せを感じてもらうことを目指しています。 そういった活動の中で、データ分析チームは、ゲームの「現状を知り、お客様に盛り上がっていただくためのボトルネックを解消する」ための分析を日々しています。 記事では、そんな分析の中から、一番最初に行う「現状を知る」ための手法を一つご紹介させていただこうと思います。 内容としては「ベイズ推論によるイベント参加率の比較」です。 作業はGoogle Colab上で行い、主なツールとしてPyM

    PyMC+JAXでイベント参加率の比較する - Qiita
    sh19910711
    sh19910711 2023/06/03
    "PyMC3は2020年12月7日に、JAXを使ったNUTSサンプリングが可能となったver3.10.0がリリース / イベントA・B・Cの参加率に差があるのか、またその差がどの程度なのか" / 2020
  • 【2023年版】Google ColabでSQLを使う【DuckDB, JupySQL】 - Qiita

    0. 使うもの JupySQLとDuckDBを使う。 JupySQLは以前紹介したipython-sqlと似たようなライブラリだが、現在あまり更新されていないipython-sqlに対して、(i) バグを修正し、(ii) 機能を追加しているものである。基的な使い方はipython-sqlと変わらない。 DuckDBSQLiteのOLAP版という立ち位置らしい。お手軽に使え、分析用途に強いDBだと理解している1。 ということで、実際に簡単に使う方法を見ていく。 1. 諸々準備 !pip install jupysql duckdb-engine # データ(csvファイル)のダウンロード !wget https://raw.githubusercontent.com/mwaskom/seaborn-data/master/penguins.csv

    【2023年版】Google ColabでSQLを使う【DuckDB, JupySQL】 - Qiita
    sh19910711
    sh19910711 2023/05/04
    "JupySQL: 現在あまり更新されていないipython-sqlに対して、(i) バグを修正し、(ii) 機能を追加しているもの / 2023年はPolarsとDuckDBとPRQLが流行ると思ってます / 既に流行ってるという説もあります"
  • 火災事故データを集計・分析してみる - Qiita

    NITEが公開している、製品起因の火災事故に関するデータを用いて、集計・分析していきたいと思います。 データの収集 NITE(独立行政法人 製品評価技術基盤機構)が公開しているデータセットを用いて、分析します。 NITEでは、数万件の製品事故情報をHP上でcsv形式で提供しています。 今回は、「火災」という文字列を含む製品事故に限定して収集します。 このように、検索条件を入力すると、 検索結果が返ってきます。 「火災」という文字列を含む製品事故は、12924件存在でした。 今回は、こちらのデータセットを対象に分析を進めたいと思います。 データの集計・分析(対象全データ) pythonのpandas-profilingを使います。 詳しい使い方については、こちらの記事を御覧ください。 # データの読み込み import pandas as pd df_fire = pd.read_csv('

    火災事故データを集計・分析してみる - Qiita
    sh19910711
    sh19910711 2023/04/30
    2019 / "NITEが公開している、製品起因の火災事故に関するデータ / 数万件の製品事故情報をHP上でcsv形式で提供 / 再発防止に関する情報が比較的少なかった + 状況、原因、対策が登録されている、非常に興味深いデータ"
  • データエンジニアリングで活用するPydantic - ITANDI Engineer Blog

    エンジニアの長部です。社内の分析用データ基盤構築の傍ら、物件連動基盤のリアーキテクチャや新規機能に関わる開発・設計に携わっています。 イタンジでは大量で多様な物件データを用いたETL処理を行っていますが、その信頼性向上のため行っている工夫の一つとして、Pydanticを利用したモデルベースのバリデーションについて紹介します。 イタンジにおける物件連動基盤とは イタンジでは様々な経路で入力された物件情報を社内の物件情報基盤に取り込み、それを組み合わせたり加工した上で、社が運営するサービスで利用したり、必要に応じてさらに外部のシステムに出稿したりといったことを行っています。 イタンジ社内における物件連動システムの位置づけ データ環境としての特色は、「社外から様々なフォーマットのデータが送られてくる」「物理的なファイル生成・取り込みが多い」ということです。 昨今のデータ基盤のトレンドに乗ってウェ

    データエンジニアリングで活用するPydantic - ITANDI Engineer Blog
    sh19910711
    sh19910711 2023/04/23
    "Pydantic: 型注釈を利用してデータの検証を行うためのPython製のライブラリ / FastAPIで採用されているためWebバックエンドでは広く活用 + データ処理の品質担保にも効果的に活用することができます"