機械学習システムの設計に関して、今回は要件定義をするにあたって重要なポイントをまとめます。また、ML目標の決め方やMLアルゴリズムを簡単に紹介しています。
この記事では、FastAPIで実装したToDoアプリをテストするテストコードを pytest を使って実装していきます。
FastAPIとSQLModelでつくる簡単なToDoアプリ
この記事では、python をつかって簡単なToDoアプリを作成します。内容は、FastAPI を使用したAPIの作成にのみ焦点を当てますので、フロントエンドに関してはノータッチでいきます。また、今回データベースを扱うORM(Object Relational Mapping)は SQLModel を使用していきます。さらにデータベースのスキーマ管理は Alembic を用います。
SQLModelとは、PythonのモダンなORM(Object Relational Mapping)です。SQLModelは、SQLAlchemyとPydanticの利点を組み合わせたライブラリで、Web APIの開発に、特にFastAPIでの開発に適しています。この記事では、SQLModel をつかってテーブルを作成する手順を簡単に述べます。
SQLFluffでSQLをリントするための設定ファイルをつくる
SQLFluffとはSQLのリント(Lint)ツールです。SQLFluffのインストール方法は公式のGetting Startedページに記載されています。設定ファイル .sqlfluff を作成することで、独自のルールでSQLをリントすることができます。
この記事ではpoetryを用いた際の、setup.pyを生成する方法について述べます
【Google Cloud (GCP)】Cloud BuildでビルドしArtifact Registryへpushする方法
はじめにこの記事では、Google Cloud の Cloud Build を使って Docker image をビルドする方法と、ビルドしたイメージを Artifact Registry へpushする手順について述べます。Artifac
【Google Cloud (GCP)】Compute Engine のスナップショットを作成
この記事では Google Compute Engine のスナップショットの作成を gcloud CLI でおこないます。スナップショットは、ある時点の永続ディスクから、増分的にデータをバックアップしたものです。スナップショットで現在の状態を取得しておくと、それを使って新しいディスクにデータを復元できるようになります。また、スナップショットの取得は、毎時、毎日から毎週といった単位でスケジューリングが可能です。
【python】logを綺麗にコンソールとファイル出力する自作logger
この記事では、pythonでコンソールとファイルの両方にログを出力する方法を記載します。方針としては、rich ライブラリの RichHandler と、RotatingFileHandler を使用して自作loggerを作成します。
【Google Cloud (GCP)】Compute Engine のカスタムイメージを作成
この記事では Google Compute Engine のカスタムイメージの作成を gcloud CLI でおこないます。カスタムイメージは、既存の Compute Engine インスタンスの状態を保持するので、環境構築を再びおこなう手間を省けます。これにより Compute Engine の冗長化が簡単におこなえます。
【Google Cloud (GCP)】Compute Engine をCLIで作成
この記事では Google Cloud (GCP) の Compute Engine の作成を gcloud CLI を用いておこないます。また、作成したインスタンスにgcloud compute sshで ssh 接続してみます。
簡単なCNN(畳み込みニューラルネットワーク)を作成して、画像を分類するモデルを作成してみます。使用するデータセットはCIFAR-10です。深層学習はTensorFlowライブラリのKerasを使用することによって簡単に利用することができます。また、TensorBordを利用して学習過程を可視化します。
【深層学習入門】Kerasによる回帰ニューラルネットワークの実装
簡単なニューラルネットワークを作成して、データセット「Boston house-prices」を使って、住宅の情報から価格を予測する回帰問題を扱います。また、TensorBordを利用して学習過程を可視化します。
【深層学習入門】Kerasによる分類ニューラルネットワークの実装
簡単なニューラルネットワークを作成して、手書き数字画像(MNISTデータセット)を分類するモデルを作成してみます。深層学習はTensorFlowライブラリのKerasを使用することによって簡単に利用することができます。また、TensorBordを利用して学習過程を可視化します。
簡単なニューラルネットワークを作成して、手書き数字画像(MNISTデータセット)を分類するモデルを作成してみます。深層学習はTensorFlowライブラリのKerasを使用することによって簡単に利用することができます。また、TensorBordを利用して学習過程を可視化します。
多次元正規分布(多変量正規分布)の線形変換と標準化、積率母関数の証明
正規分布を一般に多次元に拡張したものを多次元正規分布(多変量正規分布)と呼びます。この記事では、多次元正規分布の線形変換と標準化、積率母関数の証明を記載します。
ベルヌーイ分布を一般的な多次元に拡張した確率分布はカテゴリカル分布と呼ばれ、二項分布を多次元に拡張した分布は多項分布と呼ばれています。今回は、そんなカテゴリカル分布と多項分布の期待値・分散・共分散の求め方について記載します。
MongoDBとMongo-expressをdocker-composeで立ち上げる
この記事では、MongoDBの環境をdocker-composeで立ち上げる方法を記載します。また、GUIツールとして、Mongo-expressも用意します。
【Docker】python + streamlitをmulti-stage buildで構築
この記事はDockerイメージの容量を小さくする方法の一つである、「multi-stage build」の備忘録です。ホストのpythonパッケージ管理はpoetryを使用しているものとします。
【GCP】Cloud RunでPython FastAPI・Streamlitをデプロイ
この記事では、pythonのアプリケーションをCloud Runにデプロイする方法について述べます。今回はフロントエンドを Streamlit 、バックエンドを FastAPI とし、2つのサービスをCloud Runにデプロイします。
【python】DockerでSeleniumを使い動的サイトをスクレイピング
pythonのSeleniumを使ったWebスクレイピング環境をDockerで構築します。UbuntuにChromeをインストール、起動をdockerfileで記載します。
ubuntuベースのDockerでタイムゾーンを日本時間にする設定と日本語入力を可能にする設定をおこないます。また、Vimで日本語入力を可能にする設定も同時に行います。
【python】ソフトマージンのサポートベクターマシン(SVM)の実装
ハードマージンSVMとソフトマージンSVMの違いを具体例を交えて述べ、次にpythonを用いたフルスクラッチによるSVMの実装を行います。また、scikit-learnによる実装も示します。
制約条件が不等式である際の、ラグランジュの未定乗数を用いた解の求め方を解説します。この問題はKKT条件と呼ばれる条件を考慮すれば良いことが知られています。
ソフトマージンのサポートベクターマシン(SVM)の解説 理論編
サポートベクターマシン(SVM)とは、パターン識別用の教師あり機械学習アルゴリズムの1種です。線形分離可能なデータを前提とした「ハードマージン」、線形分離不可能なデータを前提として誤分類をある程度許容する「ソフトマージン」があります。今回の記事ではソフトマージンのサポートベクターマシンの理論を説明します。
この記事では、MinIOをいうサービスを使って、Amazon S3をローカルで使用できる環境を構築します。MinIOはS3と互換性をもつので、aws sdk を用いたアクセスや、boto3を用いたpythonによる操作が可能です。
【DynamoDB Local】DynamoDBをローカルで使用する方法
この記事ではローカルで完結するDynamoDBの開発環境を docker-compose を用いて開発します。また、boto3を用いて、pythonにてDynamoDBを操作する方法も述べます。
【統計検定対策】区間推定、信頼区間の求め方とpythonによる実装
この記事では区間推定の仕方と、t分布による信頼区間の計算方法と、なぜt分布がでてくるのか、理由を述べます。母平均の最尤推定量である標本平均は一般には誤差を含み、母平均に一致しません。そこで母平均を高い確率で含む区間を求めることにします。
【Terraform入門】laCでAWSのEC2を構築する + python環境
Terraformとは、AWS、GCP、Azureなどのインフラストラクチャをコードベースで設計できるツールです。つまり、IaC(Infrastructure as Code)を実現するツールになります。この記事では、TerraformをつかってAWSのEC2インスタンスを構築してみます。
【AWS】IAMユーザーの作成とAWS CLIのインストール
この記事では、AWSのIAMユーザーの作成方法、アクセスキーの払い出し方法と、コマンドラインからAWSを操作できるAWS CLIのインストールについて述べます。
この記事では、t分布の性質とカイ二乗分布、正規分布との関係性について述べます。
この記事ではカイ二乗分布の再生性と正規分布との関係性について述べます。
この記事では統計学でもたびたび顔を出す、シュワルツの不等式の証明と、確率変数の期待値を用いた表式について述べます。
【統計検定対策】フィッシャー情報量、クラメール・ラオの不等式と有効推定量
今回は不偏推定量の分散の下限を与える「クラメール・ラオの不等式」と、その等式と達成する「有効推定量」について勉強します。
サンプルから元となる確率分布のパラメータ(母平均や母分散など)を推定することを、「点推定」といいます。この記事では、点推定の基本的な考え方である「最尤推定」について説明し、pythonを用いて実際の分布への当てはめをおこないます。また、不偏推定の考え方と不偏分散の導出もおこないます。
【統計検定対策】中心極限定理の証明とpythonを用いた実装
この記事では、大数の法則の精密化である中心極限定理について解説します。まず、中心極限定理の概要とその証明を述べ、その後実際にそれが成立する様子をpythonを用いて確かめます。
【統計検定対策】大数の法則とモンテカルロ法 pythonによる確認
ここでは、統計学の基盤をなす「大数の法則」について勉強します。統計学で実際に使用されているのは次回に学習する「中心極限定理」ですが、大数の法則はそれを理解する第一歩になる法則であり、イメージも沸きやすいものとなっています。また、大数の法則の具体的な応用例である、「モンテカルロ法」についても述べ、pythonによる実装もおこないます。
【統計検定対策】連続的な確率分布 期待値・分散・積率母関数の計算
さまざまな確率分布の内、連続的な確率分布についてその定義や要約統計量の計算方法を述べます。紹介する分布は、一様分布、正規分布、指数分布、ガンマ分布、カイ二乗分布、ワイブル分布です。
【統計検定対策】離散的な確率分布 期待値・分散・積率母関数の計算
さまざまな確率分布の内、離散的な確率分布についてその定義や要約統計量の計算方法について述べます。紹介する分布は、離散一様分布、ベルヌーイ分布、二項分布、ポアソン分布、幾何分布、負の二項分布です。
この記事では、確率変数の変換方法や、確率変数のモーメントを求めるのに便利な積率母関数について述べます。
今回は事象、確率や確率変数について述べます。また、条件付き確率やベイズの定理、期待値や分散についても記載します。
データ間の関係性を要約する方法として、相関係数がよく用いられます。相関係数には種類があり、データの順位しかわかっていない場合のような場合に用いられるものとして順位相関係数とよばれるものがあります。この記事では、順位相関係数の中でも特にスピアマンの順位相関係数に焦点を当て、その導出や、pythonを使った計算例を述べます。
この記事では多変量データの基本的な扱い方として散布図や散布図行列を、要約の方法として相関係数や、順位相関係数、分散共分散行列について述べます。
【統計検定対策】1変量データの扱い方 ヒストグラムと箱ひげ図
この記事では、1変量データの特徴を掴む方法として、平均、分散といった要約統計量や、視覚的に特徴を捉えるヒストグラム、箱ひげ図の作成方法について述べます。使用するプログラムはpythonで記載しており、それは以下のGoogle Colabで試すことができます。
【Google Cloud (GCP)】音声をテキストに Speech-to-Text APIの使い方
音声データに含まれる会話の内容を簡単に文字起こしすることができるAPIとして、Google Cloud の Speech-to-Text APIがあります。この記事では、Speech-to-Text APIをGoogle Cloud上で導入する方法と、Google Colab上で利用する方法について述べます。
VSCodeでおこなうpythonのデバッグ方法とlaunch.jsonについて解説
この記事ではVSCodeでpythonのデバッグをおこなう方法を述べます。デバッグの設定は、.vscode/launch.json ファイルに記載できます。このファイルはサイドバーの「デバッグと実行」から自動的に作成されます。
分類器の評価としてよく使用される「ROC曲線」と「AUR」について述べます。ROC曲線ではTPR (treu positive rate (= recall)) と FPR (false positive rate) を用いてます。
時間の間隔が空いているデータに対して、データの間隔を埋める方法を述べます。日時の間隔を埋めるには、pandasのasfreq関数を使います。
【Python】連続した日付、時間のリストの作成する pandas
pythonで連続した日付、時間のリストの作成方法について述べます。方針は、pandasのdate_range関数を使います。
この記事ではSourcetreeの使い方とGitコマンドの一覧を述べます。また、コンフリクトの解決方法として、mergetoolの「P4Merge」の使い方も述べます。
機械学習の分類評価指標 混同行列と正解率・適合率・再現率・F値
分類結果を可視化する混同行列と、分類評価指標である正解率・適合率・再現率・F値を解説します。pythonによる実装もおこないます。
k-means法のpythonによる実装とクラスター数の決定方法 エルボー法、シルエット分析
この記事ではk-means法の仕組みと、実装方法について述べます。また、k-means法は分類するクラスター数はあらかじめ与える必要がありますが、最適なクラスター数を決定する方法として、エルボー法とシルエット分析を紹介します。
labelImgというツールを使うと、YOLOなどの物体検出に使用する学習画像データセットが簡単に作成できます。この記事では、labelImgのインストール方法と使い方について述べます。
labelImgというツールを使うと、YOLOなどの物体検出に使用する学習画像データセットが簡単に作成できます。この記事では、labelImgのインストール方法と使い方について述べます。
YOLO v5で物体検出と学習をする方法 Google Colabで動作
この記事ではPythonで物体検出をおこないます。物体検出とは、画像内のどこに何が写っているかを検出する技術のことです。今回はそんな物体検出を簡単に試すことができる「YOLO v5」をGoogle Colabで動作させます。
matplotlibで日本語文字化けの対処法 japanize
この記事は、matplotlibで日本語を表示させるための備忘録です。対処法としては、japanize-matplotlib をpipインストールすれば良いです。
google colabでtalibを使う方法と、yahoo_finance_api2、mplfinanceで株価データを可視化します
kerasで学習画像のデータ拡張をする ImageDataGenerator
本記事ではkerasのImageDataGeneratorを使用して、データ拡張をする方法を述べます。
GCPでJupyterを使ってみる AI Platform Notebooks
AI Platfrom NotebooksでJupyter labを使う方法と、Anacondaでライブラリを新しく追加する方法を述べます。
正規分布の期待値、分散、積率母関数や各種性質を導出します
この記事はplotlyでwireframeを作成する際の備忘録です。plotlyはインタラクティブなグラフを簡単に作ることができるライブラリで、グラフをグリグリ動かすことができます。plotlyでは、matplotlibのplot_wir
線形回帰〜重回帰分析の理論とPythonのフルスクラッチ、scikit-learnによる実装〜
この記事では、複数の説明変数と目的変数の関係をモデル化する重回帰分析と、回帰係数を求める正規方程式の導出を行います。また、Pythonによるフルスクラッチとscikit-learnによる実装も行います。
【Python】pandasで全て0の列と行、一つでも0の列と行を削除する
この記事はpandasに関して、下記の内容の備忘録です。全て0の列を削除する方法一つでも0の列を削除する方法全て0の行を削除する方法一つでも0の行を削除する方法方針としてはpythonの組み込み関数である、all(), any() を用い
線形回帰〜最小二乗法の計算とPythonのフルスクラッチ、scikit-learnよる実装〜
機械学習の中でも歴史ある線形回帰について、なかでも「最小二乗法」についての理論とpython, scikit-learnによる実装を紹介します
pythonのソートについて、keyにlambdaを用いたものや、複数keyのソートについて述べます
この記事では、数理最適化問題を解く際の強力な手法である「ラグランジュの未定乗数法」について解説します。
ハードマージンのサポートベクターマシン(SVM) 〜実装編〜
ハードマージンのサポートベクターマシンをフルスクラッチとscikit-learnで実装します。 ここでは、Pythonを用いた実装をおこなっていきます。
「ブログリーダー」を活用して、ゆっくり機械学習さんをフォローしませんか?
指定した記事をブログ村の中で非表示にしたり、削除したりできます。非表示の場合は、再度表示に戻せます。
画像が取得されていないときは、ブログ側にOGP(メタタグ)の設置が必要になる場合があります。