まずは蝋の翼から。

学んだことを書きながら確認・整理するためのメモブログ。こういうことなのかな?といったことをふわっと書いたりしていますが、理解が浅いゆえに的はずれなことも多々あると思うのでツッコミ歓迎

機械学習

CourseraのDeepLearningコース+αを使ってどうDeepLearningを勉強したか

この記事はデータラーニングギルド Advent Calendar 2021です。 この記事はなにか 何を書かないか お前誰 本記事の要約 受講してみてどうだったか 勉強の進め方 どれくらいの時間を使ったか 英語字幕の視聴方法 プログラミング課題について 日本語に関して …

atmaCup #12に参加して覚えたことメモ②lightGBM関係

これはなにか 下準備 Cross Validationをいい感じに実行する カスタムメトリクスを使う これはなにか データ分析コンペのatmaCup #12に参加して、他の人のコードを読んで覚えたことのメモです。 atma.connpass.com コンペのdiscussionで公開されているコード…

atmaCup #12に参加して覚えたことメモ①特徴量作成

これはなにか よく使う項目グループを定数化 特徴量の作成 特徴量の処理の仕方 まとめて一気に関数処理 ひとつずつ処理 集約関数のエレガントな処理 これはなにか データ分析コンペのatmaCup #12に参加して、他の人のコードを読んで覚えたことのメモです。 a…

順序付き多値分類を回帰問題で解くときの閾値をoptunaで求める

目的 データ 分類問題として解く 回帰問題として解く 連続値の予測部分 パターン1.Clipping+四捨五入でラベル化する パターン2. Optunaで閾値を探索してラベル化する 計算時に変数を用いる 対応策1.高階関数 対応策2. Objective Class+call 最適化の実行 目…

scikit-learnの機能を拡張/変更したscikit-learn準拠モデルを作る

これはなにか scikit-learn準拠の自作予測モデルを作成する 実例 実際にリッジ回帰をおこなう場合のsklearn.linear_model.LinearRegression 自作のTransformerを使う 実例 外れ値の置き換え 特徴量追加 その他 参考 これはなにか scikit-learn APIにはない新…

GBDTのハイパーパラメータの意味を図で理解しつつチューニングを学ぶ

この記事は何か lightGBMやXGboostといったGBDT(Gradient Boosting Decision Tree)系でのハイパーパラメータを意味ベースで理解する。 その際に図があるとわかりやすいので図示する。 なお、ハイパーパラメータ名はlightGBMの名前で記載する。XGboostとかで…

Optunaを使ってみる

Optunaとは 実装1: 簡単な例 評価関数 目的関数 最適化 実装2: lightGBMでの例 実装3:閾値の最適化 その他 sample 複数アルゴリズムの使用 参考 Optunaとは ざっくり書くと、 良い感じのハイパーパラメーターを見つけてくれる ライブラリ。 ちゃんと書くと…

Classを用いて、特徴量作成を仕組み化する@ぐるぐる

これはなにか 自作関数での処理との違い 参考記事をトレス ブロックを使った特徴量作成処理(コピペ) 内部状態が更新されるブロック例・ CountEncoding 内部状態更新が行われないブロック例・StringLength 各特徴量処理ブロックをまとめて処理 内部状態更新が…

特徴量作成を楽にするライブラリいくつかまとめて試す②xfeat

この記事はなにか 何ができるか 特徴量の変換 特定型の特徴量のDFを作る 特徴量の加工 カテゴリカル変数 Label Encoding Count Encoding Target Encoding 列組み合わせ(文字列) 数値変数 集約関数 列組み合わせ(数値) Lambda処理 この記事はなにか 機械学習…

特徴量作成を楽にするライブラリいくつかまとめて試す① featuretools

この記事はなにか 何を書かないか featuretools 複数テーブルのあるデモデータで試す 1. EntitysetというER的なデータとデータ関係が入ったオブジェクトを作成 集計/変換処理をする 1テーブルのデータで試す 参考 この記事はなにか 機械学習の特徴量を作ると…

Shapashで機械学習モデルの挙動を可視化する

記事の目的 前回の記事ではShapashと同様に機械学習モデルの挙動を楽に可視化するEvidentlyを紹介した。 knknkn.hatenablog.com 記事中でShapashについても軽く触れたが使用用途としては以下のような違いがある。 Evidentlyはモデルの振る舞いを、推定元デー…

Evidentlyで機械学習モデルの挙動を可視化する

背景 機械学習モデルは作成後にそのモデルがどのような振る舞いをするのか調べる必要がある。 理由としては 実運用上での注意点 例えば、「このモデルは全体としてはそこそこの精度だが、20代では精度があまり良くない」といったことを把握しておくと実運用…

テキトーに予測したベースラインを作成するDummyRegressorとDummyRegressorを試す

DummyClassifier/DummyRegressorとは 過去記事(3. ベースラインを定める)にも書いたが、機械学習モデルを作成した際の評価は何かしらのベースラインと比較しなければその値が良いのか悪いのかわからない。 単純な比較対象として、「テキトーに予測した」結果…

sklearn.pipelineを試す

sklearn.pipelineとは sklearn.pipeline とは、前処理用のScaler(変換器)や機械学習モデルを一括で処理するためのオブジェクトを生成する。 これをおこなうことで、管理が容易になったり処理コード部分を簡潔に書くことができる。 実装 データはボストン住宅…

Permutation Importanceについての俺俺メモ

Permutation Importanceについて、以下のデータロボットさんの記事を改めて読んで、所見のときはちゃんと理解してなかった部分があったのでメモ。 blog.datarobot.com Permutation Importance自体の解説は上記記事もわかりやすいですが、以下の記事では更に…

機械学習モデルを構築するときに考えることと、全体の流れ

初の機械学習プロジェクトを仕事でおこなった。その際に、各プロセスでこういう部分をみたり考えたりした方が良さそうだと思ったことをまとめる。 なお、機械学習プロジェクトの話は「仕事ではじめる機械学習」をはじめとして既に色々なところで議論されてい…

ランダムフォレストについて改めて要点をまとめる

概要 ランダムフォレストは何が理解の要点なのかを中心として自分用に改めてまとめる。 各見出しで参考にしたリンクを都度記載しているので数式などはそちらを見てください。 まず、ランダムフォレストについて一言で説明すると、「決定木モデルに対してアン…

各モデルで使われる変数重要度についてまとめる

はじめに 機械学習タスクにおいて、ブラックボックス性を減らし解釈性を上げるためにどの特徴量がどれくらい効いたかを示す必要性が増えている。また、特徴量選択やフィーチャーエンジニアリングの際にも参考になる。そのため、機械学習タスクをやるにあたっ…

SHAP valueを使ってみる

SHAP valueを実際に試してみる。コードは以下の記事のものを拝借。 Shapを用いた機械学習モデルの解釈説明 - Qiita なお、データはkaggleのHouse Pricingコンペデータをテキトーに加工して作っている。SalePrice(対数化済)を目的変数として、簡易化のため変…