まずは蝋の翼から。

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

2021年の振り返りと2022年に何をしていくか

仕事とプライベートどちらも大きな変革がありました。そのため2022年は色々やろうと思ったのでそれぞれ書いていこうと思います。端的に書くと、しくじり体験記です。 シニアDSになったけれども・・・ マネジやろうと思ったけどうまくできなかったよ ビジネス…

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 最適化の実行 目…

pipeを用いてpythonを極力メソッドチェーンで書く

この記事はなにか やりたいこと pipeを使わないで処理をする pipeを使って処理 余談 この記事はなにか 可読性/保守性を上げるために、できる限りメソッドチェーンで書きたい。 過去にメソッドチェーンについての記事は書いたが、どうしてもメソッドチェーン…

Jupyter noebookでデバッグをする方法

この記事はなにか 以下のTweetを見て知らなかったので、自分で手を動かした まじでマジックコマンドの"%debug"便利なのでjupyter使ってる人で知らない人いたら一度使ってみてほしい。。。「知らんかった!!」っていう人があまりにも多い。。。わざわざgif作…

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

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

「ドメイン知識」という言葉の解像度を上げてインプットに活かす

この記事はなにか 要約 背景 ドメイン知識の要素分解 問題設定のためのドメイン知識 分析のためのドメイン知識 活用のためのドメイン知識 余談:クライアントを介さない自己学習が可能なこと 前提知識 データサイエンティストの要諦 イシューからはじめよ 「…

「機械学習を解釈する技術」のここがすごい

はじめに 弊社の森下が書籍を出版することになりました。 「機械学習を解釈する技術 ~ 予測力と説明力を両立する実践テクニック」 gihyo.jp 本書のレビューに関わらせてもらったのでここが良かったぞ!という部分を書こうかなと思います。 はじめに 本書の特…

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

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

Optunaを使ってみる

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

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

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

自然言語処理を色々楽にするTextheroを使ってみる

Textheroでできること 前処理 前処理メソッド clean 解析 ベクトル変換 可視化 散布図 ワードランキング ワードクラウド その他 参考 Textheroでできること PythonライブラリTextheroでは、自然言語処理を簡単にできる。機能としては下記が可能。 前処理・・…

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

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

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

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

楽にEDA初手ができそうなSweetvizメモ

EDA初手としてpandas_profilingが有名だがデータ数が多いとめちゃくちゃ時間がかかるのであまり好きではない。 Sweetvizが高速かつ、データ比較もできるようなので雑に試す。 github.com 1データの場合 import sweetviz as sv my_report = sv.analyze(df) my…

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

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

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

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

データサイエンティストのデータサイエンス以外のスキル面について考えた

で、お前誰 どういう会社観点か 記事を書く目的と背景 PM/PL プロジェクトの進め方 どういった手法を使うか ドメイン知識 きれいなコードを書く/書かせる 正しいデータを出す 分析結果報告 資料作成 マネジメントについて ピープルマネジメント テックマネジ…

Tableau Serverユーザー追加メモ

Tableau Serverにユーザー追加する際に諸々めんどかったのでメモです。 ユーザーの追加 Tableau Serverにユーザーを追加。 Serverコンピュータからは以下、 http://localhost/#/users 外部コンピュータからの場合 http://自tableauサーバーアドレス/#/users …

データサイエンス案件とアジャイル② DSに適したアジャイル詳細

データサイエンス案件とアジャイルについて。 前回に各手法についてざっと取り上げた。 knknkn.hatenablog.com アジャイルサムライ――達人開発者への道作者:JonathanRasmusson,西村直人,角谷信太郎発売日: 2017/07/14メディア: Kindle版 SCR…

データサイエンス案件とアジャイル① 各既存手法まとめ

最近PL/PMすることが増えたので、チーム系の本(+マネジメント系の本)を読んだ。 チームが機能するとはどういうことか ― 「学習力」と「実行力」を高める実践アプローチ作者:エイミー・C・エドモンドソン発売日: 2014/09/05メディア: Kindle版 ハーバード・…

Tidyevalでの関数型プログラミング俺俺メモ

プログラミングをするときにはDRYの法則と言われるように、同じような処理は関数で書いて使い回す方がメンテ効率や可読性が上がる。 特に、データサイエンス的な場合はコードの使い捨てがしやすいので煩雑になるので特に意識した方が良い。 zerebom.hatenabl…

正規表現で文字列からほしい部分を抽出する

Rでstr_match_all(string, pattern)でstringに対してマッチしたpattern文字列を抽出する。 pattern部分は()を入れることでpattern中の一部分だけを取ることができる。 listの1要素目がマッチした部分の全体、2要素目以降が括弧でマッチさせた抽出される。 _a…

pythonで動的にオブジェクトを作成する

目的 pythonで動的にオブジェクトを変えたい。 ユースケース 乱数を変えたランダムサンプリングデータを複数個作りたいときや、絞り込みを変えたデータを作成したいときなど。 execでのやり方 execを使うと文字列でコードを書けるので利用する。 docs.python…

git俺俺メモ

Git(Github)の最低限checkout add commit pushはしているがそれくらいしかわからんので、これどーしたらいいっけというのをメモ。 用語 working tree: ファイルの最新状態。addすることでstage(index)に遷移。 stage(index): ファイルのaddした状態。commit…

BUSINESS DATA SCIENCE 6章 Controls

BUSINESS DATA SCIENCEの続き。 データなどは作者のgitにある。 Business Data Science: Combining Machine Learning and Economics to Optimize, Automate, and Accelerate Business Decisions作者:Taddy, Matt発売日: 2019/08/21メディア: ハードカバー 最…

mutate_atで引数付き関数を使う

やりたいこと mutateでは、関数を以下のように適用を適用することができる。 library(tidyverse) iris %>% group_by(Species) %>% mutate(Sepal.Length_lag2 = lag(Sepal.Length,2)) # Sepal.Length Sepal.Width Petal.Length Petal.Width Species Sepal.Len…

モデルに対して値の推定結果を作成する

やりたいこと モデルを作成して、そのモデルをある値に適用したときの推定結果を作成したい。 今回は モデルの学習データの推定値 任意の値をモデルに適用したときの推定値 の2パターンについて書く。 共通処理 今回、モデルはdiamondsに対して線形モデルlog…