Superbase

supabase https://supabase.com/ 飛躍的に伸びているBaaS「Supabase」の概要と所感 PostgREST https://docs.postgrest.org/en/v12/ AWS https://github.com/supabase-community/supabase-on-aws Terraform: https://supabase.com/docs/guides/deployment/terraform PostGraphile https://www.graphile.org/postgraphile/

2025年1月5日 · 1 分

Svelte

Svelte チュートリアル ドキュメント:Svelte Gradio 1 2 3 4 5 6 7 8 9 10 11 12 import gradio as gr def greet(name): return f"Hello, {name}!" demo = gr.Interface( fn=greet, inputs="text", outputs="text", ) demo.launch() Gradio App.svelte カスタマイズ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import gradio as gr def greet(name): return f"Hello, {name}!" gr.Interface( fn=greet, inputs="text", outputs="text", title="My Gradio App", description="A simple greeting app.", # App.svelteのパスを指定 template_file="templates/custom_app.svelte" # カスタムCSS css="custom.css" ).launch() custom_app.svelte: ...

2025年1月5日 · 1 分

uv

uv https://docs.astral.sh/uv/ nix: https://github.com/pyproject-nix/uv2nix インストール 1 % curl -LsSf https://astral.sh/uv/install.sh | sh 1 2 3 4 5 6 7 8 9 10 11 downloading uv 0.5.14 aarch64-apple-darwin no checksums to verify installing to /Users/hdknr/.local/bin uv uvx everything's installed! To add $HOME/.local/bin to your PATH, either restart your shell or run: source $HOME/.local/bin/env (sh, bash, zsh) source $HOME/.local/bin/env.fish (fish) 1 2 3 % source .local/bin/env % which uv /Users/hdknr/.local/bin/uv 1 2 % uv --version uv 0.5.14 (9f1ba2b96 2025-01-02) uvx (uv tool run) uvではdevelop環境で利用するtoolをuv tool(uvx)というコマンド別管理することが可能 ...

2025年1月5日 · 1 分

Gradio

Gradio https://www.gradio.app/ 機械学習向けWeb UIライブラリ Gradio Gradio: Pythonで簡単にAIをWebアプリ化 gradio 入門 (1) - 事始め gradio 入門 (2) - Interface gradio 入門 (3) - Blocks gradio 入門 (4) - 主な機能

2024年12月30日 · 1 分

Matplotlib

Matplotlib ラベル Matplotlibの軸ラベルが見切れる時の対処法について

2024年12月27日 · 1 分

Python: HTTP

Python: HTTP 簡単なHTMLサーバー(http.server + SimpleHTTPRequestHandler) ディレクトリ一覧を返す 1 2 3 4 5 6 7 8 9 10 import http.server import socketserver PORT = 8000 Handler = http.server.SimpleHTTPRequestHandler with socketserver.TCPServer(("", PORT), Handler) as httpd: print("serving at port", PORT) httpd.serve_forever()

2024年12月15日 · 1 分

scikit-learn: 異常検知

異常検知 sklearnを用いた異常検知のサンプルコード sklearn(サイキットラーン)は、Pythonで機械学習を行うための強力なライブラリです。異常検知も、sklearnの様々なアルゴリズムを用いて行うことができます。 異常検知の手法選択 異常検知の手法は、データの種類や異常パターンによって異なります。代表的な手法としては、以下のものが挙げられます。 One-Class SVM: データの境界線を学習し、その境界から離れた点を異常と判定します。 Isolation Forest: データ点を孤立させるような決定木を複数作成し、異常度をスコア化します。 Local Outlier Factor (LOF): データ点の近傍の密度に基づいて異常度を計算します。 サンプルコード(Isolation Forest) ここでは、Isolation Forestを用いた異常検知のサンプルコードをPythonで記述します。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 from sklearn.ensemble import IsolationForest import numpy as np # サンプルデータ生成 np.random.seed(42) X = np.random.randn(100, 2) # 正常データ X = np.r_[X, np.random.randn(20, 2) + [3, 3]] # 異常データ # Isolation Forestモデルの作成 clf = IsolationForest(contamination=0.2) # 異常データの割合を指定 clf.fit(X) # 異常度の予測 y_pred = clf.predict(X) # 異常データの抽出 anomalies = X[y_pred == -1] # 結果の表示 print("異常データ:") print(anomalies) コード解説 データの生成: 正常なデータと異常なデータを生成します。 モデルの作成: IsolationForestのインスタンスを作成し、contaminationパラメータで異常データの割合を指定します。 モデルの学習: fitメソッドでモデルを学習させます。 異常度の予測: predictメソッドで各データの異常度を予測します。 異常データの抽出: 予測結果が-1のデータを異常データとして抽出します。 その他の注意点 contaminationパラメータ: 異常データの割合を事前にある程度把握している場合に、このパラメータを指定することで、より正確な異常検知が可能になります。 特徴量のスケーリング: 特徴量のスケールが異なる場合、標準化や正規化を行うことで、モデルの性能が向上する場合があります。 ハイパーパラメータのチューニング: Isolation Forestには、他にも様々なハイパーパラメータが存在します。GridSearchCVなどを用いて、最適なパラメータを探索することができます。 より詳細な情報 sklearnの公式ドキュメント: IsolationForestの詳しい説明や他の異常検知アルゴリズムについては、sklearnの公式ドキュメントを参照してください。 Qiitaなどの技術ブログ: 多くの技術ブログで、sklearnを用いた異常検知の具体的な事例や解説が紹介されています。 応用 異常検知は、不正検出、故障検知、品質管理など、様々な分野で活用されています。 ...

2024年12月12日 · 1 分

AWS: Device Farm

AWS Device Farm AWS Device Farmとは?利点と利用方法も紹介します! AWS Device Farmとは?実機を使ったモバイルアプリのテストについて解説 AWS Device Farmは、実際のモバイルデバイスやデスクトップブラウザを使用してアプリケーションをテストするサービスです。以下のような仕組みで動作しています: 実機デバイスの使用: AWS Device Farmは、エミュレーターやシミュレーターではなく、実際のスマートフォンやタブレットを使用します。 これにより、メモリ使用量、CPU負荷、位置情報、メーカーやキャリアによるファームウェアの違いなど、実際の使用環境に近い条件でテストが可能です 1 2。 リモートアクセス: 開発者はAWSのクラウド上にあるこれらの実機デバイスにリモートでアクセスし、アプリケーションをインストールしてテストを実行します。 これにより、物理的なデバイスを手元に用意する必要がなくなります 1 2。 自動化と手動テスト: Device Farmは、AppiumやEspressoなどのオープンソースのテストフレームワークを使用して自動テストを実行できます。 また、リモートアクセスを利用して手動でのテストも可能です 1 2。 テスト結果の収集と分析: テストの実行中に、動画、ログ、パフォーマンスデータなどが収集され、これらのデータを分析することで、アプリケーションの問題点を迅速に特定し、修正することができます 1 2。 スケーラビリティ: 複数のデバイスやブラウザで同時にテストを実行できるため、テストスイートの実行時間を短縮し、効率的にテストを進めることができます 1 2。 このように、AWS Device Farmは実際のデバイスを使用して、より現実に即したテスト環境を提供し、アプリケーションの品質向上を支援しています。

2024年12月9日 · 1 分

CHAID

CHAID CHAID とクラスタリング手法の関連性について CHAID(Chi-squared Automatic Interaction Detector)とクラスタリング手法は、どちらもデータをグループ化するという点で共通点がありますが、その目的やアプローチは異なります。 CHAID とクラスタリング手法の違い 特徴 CHAID クラスタリング 目的 目的変数との関係に基づいてデータを分割し、予測モデルを構築する データ間の類似性に基づいて、自然なグループを発見する 手法 決定木分析の一種であり、カイ二乗検定を用いて変数を分割する K-means、階層クラスタリングなど、様々なアルゴリズムが存在 出力 決定木 クラスタ 教師あり・なし学習 教師あり学習(目的変数あり) 教師なし学習(目的変数なし) それぞれの強み CHAID 目的変数との関係を明確化: 目的変数との関連性が高い変数を特定し、その関係性を可視化できるため、因果関係の分析に適している。 解釈の容易さ: 決定木という形で表現されるため、結果が直感的に理解しやすい。 非線形な関係の発見: 線形モデルでは捉えにくい、非線形な関係を検出できる。 クラスタリング 自然なグループの発見: データ間の類似性に基づいて、自然なグループを発見できる。 セグメンテーション: 顧客セグメンテーションなど、マーケティング分野で広く活用されている。 異常検知: クラスタから大きく外れたデータを異常値として検出できる。 具体的な活用例 CHAID: 顧客の属性データから、特定の商品を購入しやすい顧客グループを特定する。 医療データから、ある疾患になりやすい患者の特徴を抽出する。 クラスタリング: 顧客データをクラスタリングし、それぞれのクラスタに合わせたマーケティング施策を展開する。 文書データをクラスタリングし、トピックを抽出する。 両者の連携 CHAID とクラスタリングは、それぞれ異なる強みを持つため、組み合わせることでより深い分析が可能になります。例えば、 クラスタリングで得られたクラスタに対して、CHAID を用いて各クラスタの特徴を分析する。 CHAID で得られた決定木の葉ノードを新たなデータのクラスタとして利用する。 まとめ CHAID とクラスタリングは、どちらもデータをグループ化するという共通点がありますが、その目的やアプローチは異なります。どちらの手法が適切かは、分析の目的やデータの性質によって異なります。 目的変数との関係を明らかにしたい場合は CHAID データ間の類似性に基づいてグループ分けしたい場合はクラスタリング が一般的です。 どちらの手法が適切か迷う場合は、以下の点を考慮すると良いでしょう。 目的変数の有無: 目的変数がある場合は CHAID、ない場合はクラスタリングが適している。 データの性質: カテゴリカルデータが多い場合は CHAID、数値データが多い場合はクラスタリングが適している。 分析の目的: 予測モデルを構築したい場合は CHAID、自然なグループを発見したい場合はクラスタリングが適している。

2024年12月9日 · 1 分

Django Email

メール送信 Djangoでメールを送信する際に、都度サーバーを切り替える方法はいくつかあります。以下の手順で実装できます。 メールサーバーの設定を動的に変更する: DjangoのEmailMessageクラスを使用して、メール送信時にサーバー設定を動的に変更できます。例えば、以下のようにconnectionパラメータを使用して異なるサーバーを指定します。 1 2 3 4 5 6 7 8 9 10 11 12 13 from django.core.mail import EmailMessage, get_connection def send_email(subject, message, from_email, recipient_list, server_settings): connection = get_connection( host=server_settings['EMAIL_HOST'], port=server_settings['EMAIL_PORT'], username=server_settings['EMAIL_HOST_USER'], password=server_settings['EMAIL_HOST_PASSWORD'], use_tls=server_settings['EMAIL_USE_TLS'], use_ssl=server_settings['EMAIL_USE_SSL'], ) email = EmailMessage(subject, message, from_email, recipient_list, connection=connection) email.send() サーバー設定のリストを用意する: 複数のサーバー設定をリストで管理し、メール送信時にランダムまたは順番に選択する方法です。 ...

2024年11月28日 · 1 分