Pythonにおけるデザインパターン 当サイトについて GoFの定義した23コのデザインパターンをPythonで実装します。 ただし、Pythonのビルトイン機能で実現できるパターンもあります。 その際は、ビルトイン機能の紹介に留めます。 Pythonらしい書き方(Pythonicな書き方)ができるものは古典的な実装とPythonicな実装の両方を紹介します。 全デザインパターン パターンカテゴリ パターン名 コメント
こんにちは。エムスリーエンジニアリンググループAI・機械学習チームの池嶋です。これは エムスリー Advent Calendar 2021 の16日目の記事です。 AIチームでは機械学習を使ったプロダクトを開発し、自社サービスの改善や医療の臨床領域における研究開発など、社内外で多くのビジネス課題解決を目指しています。 このブログでは、機械学習で数量を当てるという問題に対して、AIチームにおける「予測モデル作成時の工夫」と「モデル性能説明手法」について紹介します。 予測モデル作成時の工夫編 回帰ではなく分類モデルを使用 複数のモデルをアンサンブル 特徴抽出からモデル学習・推論までパイプライン化 モデル性能説明手法編 PR曲線やROC-AUC:直感的でない ローレンツ曲線:ユースケースが限定される パーセンタイルごとの実ラベル割合グラフ:セグメントが多いとわかりにくい 混同行列を多クラスに拡張
皆さん,こんにちは!機械学習エンジニアの柏木(@asteriam)です. 本エントリーはコネヒトアドベントカレンダーの15日目の記事になります. 今回は機械学習モデルの実験管理をする際に使用しているAWSのSageMaker Experimentsの活用例を紹介したいと思います. アドベントカレンダー1日目でたかぱいさんがSageMaker Processingの使い所を紹介してくれているので,こちらも併せて参考下さい. tech.connehito.com はじめに 前回のエントリー*1でML Test Scoreの話をしましたが,その際にMLOpsの大事な要素である再現性(モデル学習など)に触れました.今回はこのモデル学習の再現性のために必要な実験結果(ハイパーパラメータの引数の値,モデル評価指標など)の管理をSageMaker Experimentsでしているというお話です. ※本エ
はじめに 2021年、Pythonで複数の暗号系ライブラリを開発してPyPIで公開してきました。その過程で、setuptools、flit、poetryと、幾つかのパッケージ管理をわたり歩き、GitHub上でのCI/CDも色々試す中で私的なべスプラが定まってきたので、2022年初に備忘録としてまとめておきます。 具体的には、pyenv、poetry、pre-commit、tox、GitHub Actions を活用し、低コストで(=なるべく自動で)、高品質のプロダクトをPyPIにデプロイする方法・設定を共有します。個別のツールの記事はよく目にするのですが、開発ライフサイクル全体をカバーする記事がなかなか無かったので。 開発環境の整備 - pyenvで複数のPythonバージョンでの開発環境を整備 パッケージ管理 - poetry/pyproject.tomlでの一元的なパッケージ管理 静的
これは、自然言語処理 Advent Calendar 2021の20日目の記事です。 新卒2年目のエンジニア、吉成です。 普段はフォルシアのDXプラットフォーム部・技術研究所という2つの部署に所属し、web開発と自然言語処理の二足の草鞋を履いています。二兎を追う者は一兎をも得ずという言葉もありますが、今はひーひー言いながらも二兎を追えるエンジニアを目指しています。 ところで皆さん、依存構造解析してますか? 依存構造解析は自然言語処理の実応用において重要な基礎解析の1つです。文中のどの単語(あるいは句)がどの単語(句)に依存しているか、またそれらの単語(句)間はどんな関係を持っているのか(依存構造)を解析します。一般的に依存構造解析は、文を単語や形態素に分割したり、単語や形態素に品詞のラベルを付与したりする形態素解析と呼ばれる処理の後に行われます。 (画像:「部屋から見える夜景が美しかった。
概要 Ginzaを使ってNLPでよく使ういくつかの処理を動かしてみる。 バージョン情報 ginza==2.2.0 Python 3.7.4 インストール pipで入れられる。 $ pip install "https://github.com/megagonlabs/ginza/releases/download/latest/ginza-latest.tar.gz" 詳細は下記参照。 https://megagonlabs.github.io/ginza/ 形態素解析 Ginzaは内部的にはSudachiPyを利用している。 import spacy nlp = spacy.load('ja_ginza') doc = nlp('庭にいる犬が鳴いてる') for sent in doc.sents: for token in sent: print( 'token.i={}'.forma
この記事は NSSOL advent carendar 12/23担当分です。よろしくお願いします。 昨日は研修を運営してみて思ったことでした。 研修対応すると、その後も割と忙しくて、振り返りの時間がちゃんと取れなかったりします。 まとまった現場知見・感想が読めるのって、ありがたいなと思いました。 さて、今回のテーマは、「疑似データ生成」です。 背景:実データの取得は大変 擬似データが使えるかも データ分析やシステム開発のために、実データかそれに近いデータが欲しくなることは多々あります。 ただ、顧客情報や営業秘密といった機微な情報が含まれる場合は、データ取得までに高いハードルがあることが多いです。 結果、試してみたいアイディア/製品/分析手法などの適用ができないこともあるかと思います。 解決策の1つとして、擬似データの利用、が挙げられそうです。参考 実データを入力して、データの形式や統計量
Copied from: Public/Study NLP100 2023 実践的な課題に取り組みながら,プログラミング,データ分析,研究のスキルを楽しく習得することを目指します.具体的には, Unix環境でのターミナルの操作. 研究室の実験環境の体験. Pythonプログラミングのチュートリアル. Pythonの実行環境のインストール. Pythonの基礎. Jupyter notebook, IPython, pipの使い方など. この勉強会では言語処理100本ノック 2020を教材として用います.自然言語処理に関するプログラムを実際に作ってもらい,互いにコードレビューを行います. 問題に対する答えは一つではありません.どんな方法でも構いませんので,自力で問題を解き,他人のコードを読むことで,よいプログラムとは何かを体感してください. This study group aims at
東京工業大学の岡崎直観教授が、大学の講義で使う資料「機械学習帳」をGitHubのホスティングサービス上で公開している。Webサイト上でPythonを実行できる開発環境「Jupyter Book」で作られており、利用者はPythonのコードとその実行結果を見ながら学べる。 同大学が2021年度4Q(12~2月)に開講する「機械学習」の講義ノート。学習できる内容は、単回帰、重回帰、ロジスティック回帰、ニューラルネットワーク、サポートベクトルマシン、クラスタリング、主成分分析、確率的勾配降下法、正則化といった機械学習の重要項目。初学者向けに原理なども丁寧に説明したとしている。 Pythonによって書かれたグラフは、学習回数や変数などで変動するものや3次元の場合はアニメーションとして視覚化されている。
はじめに 私はこれまで機械学習のパラメータチューニングに関し、様々な書籍やサイトで学習を進めてきました。 しかしどれもテクニックの解説が主体のものが多く、 「なぜチューニングが必要なのか?」 という目的に関する記載が非常に少なかったため、体系的な理解に苦労しました。 この経験を後世に役立てられるよう、「初心者でも体系的に理解できる丁寧さ!」をモットーに記事にまとめたいと思います。 具体的には、 1. パラメータチューニングの目的 2. チューニングの手順とアルゴリズム一覧 3. Pythonでの実装手順 (SVMでの分類を例に) の手順で解説を進めます。 独自解釈も含まれるため、間違っている点等ございましたら指摘頂けると有難いです。 なお、文中のコードはこちらのGitHubにもアップロードしております。 2021/9/6追記:LightGBMのチューニング実行例追加 以下の記事に、Ligh
Pythonにはclickというコマンドラインパーサとして使えるライブラリがあります。同様のライブラリとして以前からargparseがありますが、clickはargparseよりももっと簡単に使えるライブラリです。 clickでコマンドラインパーサを書く例は以下になります。 # main.py import click @click.command() @click.option( "--count", type=int, default=1, required=True, help="Number of greetings.", ) @click.option( "--name", type=str, default="Your name", required=True, help="The person to greet.", ) def hello( count: int, name
はじめに 本書は,筆者が長年書き溜めた様々な実務的な最適化問題についてまとめたものである. 本書は,Jupyter Laboで記述されたものを自動的に変換したものであり,以下のサポートページで公開している. コードも一部公開しているが,ソースコードを保管した Github 自体はプライベートである. 本を購入した人は,サポートページで公開していないプログラムを 圧縮ファイル でダウンロードすることができる. ダウンロードしたファイルの解凍パスワードは<本に記述>である. 作者のページ My HP 本書のサポートページ Support Page 出版社のページ Pythonによる実務で役立つ最適化問題100+ (1) ―グラフ理論と組合せ最適化への招待― Pythonによる実務で役立つ最適化問題100+ (2) ―割当・施設配置・在庫最適化・巡回セールスマン― Pythonによる実務で役立つ
この記事は BrainPad Advent Calendar 2021 9日目の記事です。2020年頃より、機械学習エンジニアやデータサイエンティストが Python でお手軽にウェブアプリを構築できる Streamlit が流行っていて、最近では業務で使っている人も多いのではないかと思います。Streamlit は、その設計思想から、シンプルな可視化であればほとんど困ることはありませんが、ちょっと手のこんだことをしようとすると、「あれ、どうしたらいいんだっけ?」と思うことがちょくちょくあります。この記事では、そういった時にどうしたらよいか、というのをいくつか紹介したいと思います。 アップロードしたファイルを保存する Streamlit には、ファイルのアップロード機能が実装されていて、簡単に手元のデータをサーバーにアップロードできます。アップロードしたファイルはメモリ上に配置され、ディス
この記事は刺身たんぽぽ同好会 Advent Calendar 2021[1] 8日目 の記事です. 7日目はげんしくんの 刺身たんぽぽ同好会を支えるDiscord鯖について - 最近のRecent です. 9日目はおのだ氏の Live2D #1 下準備(予定) です. はじめに Python3.10 がリリースされてから数ヶ月が経ちました.そこで,Python3.10 から入った新機能や,あまり知られていないが[2],知ってると便利な機能を紹介します.モダン Python を書いていきましょう. 型アノテーション 型アノテーション自体は Python3.5 からある機能[3]ですが,バージョンアップのたびに高機能になっています.Python3.10 では,| 演算子が型アノテーションに対しても使用できるようになりました. 使用例はこのような感じ
これは何? この記事は Kaggle Advent Calendar 2021 の7日目の記事です。 pandasはデータ分析ライブラリとして非常に便利ですが、書き方を間違えると簡単に処理が遅くなってしまうという欠点があります。そこで、この記事では遅くならない書き方をするために気をつけたいポイントをいくつかご紹介したいと思います。 この Colab Notebookの実行結果をエクスポートした上で、不要な部分を一部削って記事にしています。colab notebook をコピーして実行してもらえれば再現することが可能なはずです。(colabにコメント等をいただいても返すことはできないと思います、すみません。) 前提条件 この記事ではあくまで「遅くない(なりづらい)書き方を紹介する」ことに努めます。よって、以下のような改善点はあるが一旦考慮の外におくものとして話を進めます。 並列化ライブラリ
TL;DR Python 3 では、文字列データを表すのに bytes と str がある。bytes のインスタンスは符号なし 8 ビット値で構成され、ASCII(文字コードの標準規格) エンコーディングで表示される。str は Unicode コードポイントの文字列を含む。 bytes 型 と str 型 のポイント str と bytes は同時に扱えない ファイルにバイナリデータを書き込む場合、バイナリモードでオープンしなければならない bytes は 8 ビットの値の列を含む str は Unicode コードポイントの文字列を含む バイナリデータについて データ形式を大別すると、テキストとバイナリに分類される。バイナリデータとは、文字・画像・音楽・動画などテキストデータ以外のデータ。人が見ても意味が不明瞭なデータである。 バイナリデータを操作するためのものは 2 つある。 by
はじめに 本書は,筆者が長年書き溜めた様々な実務的な最適化問題についてまとめたものである. 本書は,Jupyter Laboで記述されたものを自動的に変換したものであり,以下のサポートページで公開している. コードも一部公開しているが,ソースコードを保管した Github 自体はプライベートである. 本を購入した人は,サポートページで公開していないプログラムを 圧縮ファイル でダウンロードすることができる. ダウンロードしたファイルの解凍パスワードは<本に記述>である. 作者のページ My HP 本書のサポートページ Support Page 出版社のページ Pythonによる実務で役立つ最適化問題100+ (1) ―グラフ理論と組合せ最適化への招待― Pythonによる実務で役立つ最適化問題100+ (2) ―割当・施設配置・在庫最適化・巡回セールスマン― Pythonによる実務で役立つ
本記事はNTTドコモR&Dアドベントカレンダー2021の8日目の記事です. こんにちは、NTTドコモの橋本(@dcm_hashimotom)です. 業務ではレコメンド関連の技術開発・施策検討を行っており,主にPythonやBigQuery, Apache Sparkを触ってます. SNSなどで投稿したコンテンツの検索性を上げるためには,そのコンテンツへのタグ(またはハッシュタグ)の付与が重要です.Qiitaではタグは5つまで付与することができ,タグを指定した絞り込み検索や,マイページでのプロフィールに使われております.しかし,タグの付与はユーザ手動なものが多く(要出典),検索性が高いものを選択するためには,ドメイン知識が必要です.なので,タグを付ける際に「このタグがついた投稿では他にこんなタグもついてます」的なレコメンドがあれば有用そうです.また,レコメンドということですが,近年レコメンド
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く