kakakakakku blog

Weekly Tech Blog : Keep on Learning 👍

機械学習

実験管理を便利に行う MLflow Tracking に入門した

実験管理やモデルレジストリなど,機械学習ライフサイクルをうまく管理するプラットフォームとして有名な「MLflow」に入門する.GitHub リポジトリの Star は 12000 もあってスゴイ!MLflow は MLOps の文脈でもよく聞くので,1度試しておこうと思った. 現…

Pandas で指数表記を無効化する

Jupyter Notebook で Pandas のコードを実装しているときに「指数表記を無効化」する場合は pd.options の display.float_format を設定する.以下にサンプルとして「桁数 2」と「桁数 6」の例を載せておく. # 小数点以下 桁数 2 pd.options.display.float_…

Pandas で NDJSON (.jsonl) を読み込む

Pandas で NDJSON (Newline Delimited JSON) を読み込む場合 read_json() 関数に lines=True パラメータを設定すれば OK! pandas.pydata.org NDJSON サンプル dataset.jsonl { "id": 1, "name": "Alice" } { "id": 2, "name": "Bob" } { "id": 3, "name": "…

Scratchpad は便利!Jupyter Notebook で検証用のセルをシュッと追加する

Jupyter Notebook でコードを書いているときに「検証のために一時的にセルを追加してコードを書いて終わったらセルを消す」という操作を頻繁にしている(表現しにくいけど...).些細な操作ではあるけど地味に面倒だった. そこで「Scratchpad」を使ったら便…

Feature Engineering : Kaggle Courses で「特徴量エンジニアリング」を学ぶ

Kaggle が公開している「Kaggle Courses」で「Feature Engineering」コースを受講した.機械学習モデルを構築するときに重要になる「特徴量エンジニアリング」を多岐にわたる観点から学べる.「特徴量エンジニアリング」の目標は「データセットを目の前の問…

現場の視点で機械学習に必要な知識を学べる「仕事ではじめる機械学習 第2版」を読んだ

「仕事ではじめる機械学習 第2版」を読んだ.実は「第1版」を買ってずっと積読をしていたところに「第2版」が出たので書い直した書名に「仕事ではじめる」と書いてある通り,現場の視点で理解しておくべき「機械学習」の知識がまとまっていて良かった.そし…

train_test_split() の stratify パラメータを使って層化サンプリングをする

データセットを分割するときに scikit-learn の train_test_split() をよく使う.今回は train_test_split() に設定できる stratify パラメータを試す.stratify は「層化」という意味で「データセットの特性を考慮した分割」とも言える.特に「不均衡データ…

scikit-learn の Pipeline を使って前処理やアルゴリズムをまとめて宣言する

scikit-learn の Pipeline を使うと,データセットの前処理や機械学習アルゴリズムなどを「1つのオブジェクトに」まとめることができる. scikit-learn.org 前回の記事で紹介した「Kaggle Courses」の「Intermediate Machine Learning」コースでも使われてい…

Intermediate Machine Learning : Kaggle Courses で学びながら「住宅価格予測」コンペに参加する

Kaggle が公開している「Kaggle Courses」で「Intermediate Machine Learning」コースを受講した.Kaggle のコンペティション「Housing Prices Competition for Kaggle Learn Users(住宅価格予測)」をテーマに試行錯誤をして,実際にモデルを登録すること…

入門者でも挫折せずに読める!「機械学習図鑑」で "17種類" のアルゴリズムを学ぶ

「機械学習図鑑」を読んだので簡単にまとめる.正確には今年5月頃に読んでいたけど,まだ書評記事を書いてなかった まず前提として,本書を読んだときには僕は機械学習に詳しくなく入門者だった.機械学習に関連する書籍を何冊か買ってみたけど,そのときの…

imbalanced-learn の SMOTE モジュールを使って簡単にオーバーサンプリングを実現する

分類などの機械学習モデルを構築するときにデータセットに偏り(不均衡データ)があると適切に学習できない可能性がある.データセットを強制的に増やす操作を「オーバーサンプリング」と言って,SMOTE (Synthetic Minority Over-sampling Technique) や ADA…

iris データセットを libsvm フォーマットにする : scikit-learn の dump_svmlight_file()

scikit-learn の datasets モジュールの中に libsvm フォーマットのデータセットを扱う関数がある.libsvm フォーマットは以下のフォーマットでデータセットを表現し,1番左にラベル(教師データ)を持つ.例えば Amazon SageMaker の組み込みアルゴリズム X…

Intro to Machine Learning : Kaggle Courses で「住宅価格予測」に入門した

Kaggle が公開している「Kaggle Courses」で機械学習に入門できる「Intro to Machine Learning」コースを受講した.Intro と書いてある通り,入門レベルではあるけど,scikit-learn を使って「決定木(回帰)」や「ランダムフォレスト」で「住宅価格予測」を…

Scratch で機械学習を楽しめちゃう!「Scratch ではじめる機械学習」を読んだ

最近「Scratch ではじめる機械学習」を読んで,とても楽しめたので紹介したいと思う.本書は Scratch を使って「機械学習で実現できること」を実際に体験できる.そして「機械学習」をあまり意識せずに読むことができるので(特に前半),例えば「子供と一緒…

「単純パーセプトロン」を使った分類(フルーツのグループ分け)を体験できる Scratch プロジェクト

最近「Scratch ではじめる機械学習」を読んでいる.Scratch を使って「機械学習」を体験することができて,非常に楽しめている.書評記事はまた別に書く予定!本書の中で「第4章 : 機械学習について学ぼう」を読んでいたら「単純パーセプトロン」を使った分…

NumPy / Pandas / Matplotlib / scikit-learn などの理解度確認ができる「Python 3 エンジニア認定データ分析試験」に合格した

先週末に「Python 3 エンジニア認定データ分析試験」を受験して合格したとても良い試験で,特に試験勉強をする過程で知識の幅が広がった.試験の認知度向上のためにも紹介したいと思う.当然ながら試験問題に関しては何も書かず,基本的に公開情報をベースに…

Pandas で時系列データをグループ化して集計できる「Grouper」

Pandas で groupby() 関数を使うと,データセットをグループ化して集計できる.さらに Grouper オブジェクトと組み合わせると,より高機能なグループ化を実現できる.今回は groupby() 関数と Grouper オブジェクトを組み合わせて「時系列データの集計」を試…

Pandas の機能を実践的に学ぶならこの1冊!「Pandas ライブラリ活用入門」を読んだ

個人的に Pandas を使ってデータ分析をする機会が増えてきて,今までの浅い経験ではうまく使いこなせず,Pandas を中心に細かく学び直している.最近 Pandas 関連の記事を多く書いていることにも関連しているし,少し前には Pandas を学べる「Kaggle Courses…

scikit-learn でカテゴリ変数を変換する : OneHotEncoder と LabelEncoder

前回の記事では Pandas の get_dummies() 関数を使って「カテゴリ変数」の変換(One-Hot エンコーディング)を試した. kakakakakku.hatenablog.com Pandas 以外の選択肢として scikit-learn の sklearn.preprocessing モジュールを使うこともできる.今回は…

Pandas の get_dummies() 関数でカテゴリ変数をダミー変数に変換する

Pandas で get_dummies() 関数を使うと「カテゴリ変数」を「ダミー変数」に変換できる.「カテゴリ変数」とは,例えば「血液型」や「職業」など,限られた選択肢の中から選んだ値で,ENUM 型のようなイメージをするとわかりやすい分析業務を前提に考えると A…

Pandas で相関件数を計算して Seaborn で可視化する

Pandas で corr() 関数を使うと DataFrame と Series で「相関係数 (correlation coefficient)」を計算できる.今回は DataFrame の corr() 関数と Seaborn を使った可視化を試す. pandas.DataFrame.corr — pandas 1.2.4 documentation pandas.Series.corr …

Pandas で NaN を操作する : fillna() と interpolate()

先週紹介した学習コンテンツ「Kaggle Courses : Pandas」で「欠損値 (Missing data) : NaN」の取り扱いを学んだけど,その後「Pandas ライブラリ活用入門」を読んでいたら「置換 : fillna() 関数」に多くのパラメータがあり,他にも「補間 : interoperete() …

Jupyter Notebook と Pandas で DataFrame を全て表示するオプション設定

Jupyter Notebook で Pandas のコードを実装しているときに同じような表示関連設定を繰り返し使うため,メモも兼ねてまとめておく.オプションは他にも多くあり,詳細はドキュメントに載っている.今回は Python 3.9 と Pandas 1.2.4 を前提とする. pandas.…

Pandas を基礎から学ぶために「Kaggle Courses」の学習コンテンツを受講した

機械学習コンペティションを開催する Kaggle のサイトを見ていたら「Kaggle Courses」という「学習コンテンツ」が公開されていて,Python や SQL や 機械学習など様々なトピックを学べるようになっていた.なんと無料現時点でコースは「計17種類」もある.今…