まずは蝋の翼から。

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

2020-01-01から1年間の記事一覧

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

で、お前誰 どういう会社観点か 記事を書く目的と背景 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…

purrrを使って、関数の引数を変えて適用したDFを結合していく

やりたいこと 関数の引数を変えて適用したDFを結合したい。 以下のように、指定した列colに対してunder_value以下となるdfを抽出して、そのunder_valueをfiltered_values列に追加する関数filtered_under_valueで考える。なお、見た目上わかりやすいためhead…

ggplotで他の変数を基準に並び替える

数値で並び替える場合 以下のようなグラフで考える。 library(tidyverse) data(diamonds) # データ作成 df = diamonds %>% group_by(clarity, cut) %>% summarise(n = n()) %>% ungroup() # わかりやすいものだけ抽出 df_filtered = df %>% filter(clarity %…

map2を使ってサブサンプルに分けた各データに対して複数モデルを適用する

表題通り、サブサンプルに分けた各データに対して複数モデルを適用したい。 より具体的に書くと、以下のdropoutさんの記事では 複数のモデルを当てはめる場合 diamondデータに対して、3モデルを適用 サブサンプルに分けて分析する場合 diamondデータをclarit…

ggplotのfacet日本語テキストを折り返す

これはなにか ggplotのfacet内の文字を任意の文字数で折り返し(改行)をしたい。 どういうことかというと、下記のようにirisベースでテキトーにSpeciesを日本語化して文字数を増やしたもので考える。 library(dplyr) iris2 = iris %>% mutate(Species_jp = ca…

リーダブルコード俺俺メモ①第一部 表面上の改善

最近コードを量産することが多いので、リーダブルコードを読む。 コードは今まで我流だったし、コードを書く機会がそこまで多くなかったので会社でレビューを受けた回数も少ないため一回ちゃんとしないとなぁというのがモチベーション。 自己認識としては、…

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

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

sklearn.pipelineを試す

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

ggchartsを試す

ggchartsとは Rのggplot2のラッパーで、aes + geom_xxxの形式ではなく、pythonのseabornやplotly_expressみたいにグラフ関数を用いて表現をすることができる。ラッパーなので、通常の書き方を組み合わせることができるので、ggplot2の機能が追加されただけと…

plotly expressを試す

plotly expressとは 可視化ライブラリplotlyのラッパー。 plotlyはグラフに対してドラッグ選択すると拡大ができたり、マウスポインタを合わせると詳細な数値をポップアップしてくれる。 そのplotlyをより簡単に記載することができるのがplotly express。 plo…

tqdmでプログレスバーを出す

pythonのtqdmライブラリを試す。 tqdmとは 何かしらの処理に対する進捗をプログレスバーとして表示するライブラリ。 github.com loop処理 基本的な使い方として、繰り返し処理の1loop毎にプログレスバーを更新することができる。 イメージとしては、通常の繰…

Permutation Importanceについての俺俺メモ

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

DataGripのショートカットキーなど俺俺メモ

もともとSQLはSublime Textで書いて、クエリ投げるのはDataGripだったんですがいいかげん1つに完結させるためにDataGripをちゃんと使えるようにする。 ちなみにDataGripってどんなん?っていう部分は以下の記事が端的でわかりやすい qiita.com キーボードシ…

Jupyter Labのショートカットキー俺俺メモ

Jupyter Lab(Notebookは一部違うが概ね同じっぽい?)をなんとなく使ってて、インデント系と実行系くらいしかショートカットキーを知らなかったのでちゃんと調べて使いそうなやつをメモ。ちなみにMacです。 公式ドキュメントに見当たらないが、有志によるチー…

assertrでRの中間データをチェックする

データを加工するときに、未加工と最終加工結果は値がおかしくないかチェックすることがわりかしあると思うが、最終結果に至る途中段階をチェックすることは手間がかかる。 そのようなとき、assertrではRのパイプラインの途中に入れることで、その段階におい…

pandasのstyleでテーブル出力をわかりやすくする

JupyterにおけるPandasのテーブルデータの出力に色をつけてわかりやすくしたい。 そのためには、pandasのstyle周りをいじれば良いみたい。 基本的にドキュメントのUser Guideベースで書いていく。 pandas.pydata.org pandas.pydata.org styleのいじり方は2つ…

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

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

Python, RでDBに接続するときのパスワードをコードに直打ちしない

Python, RともにDBに接続するときにパスワード情報をソースに直打ちすると、gitなどにアップするときに色々とヤバいので直打ちしない方法をメモ。 json設定ファイルから 以下のようなpassword管理用のjsonファイルを作る。 { "redshift": { "id": "myID", "p…

lemonパッケージでggplotをいい感じに見せる

ggplotをきれいに見せるパッケージlemonを動かしたので紹介。 基本的に公式ベース github.com facetしたときの軸目盛りの明示 以下のようなデータがあるとする。 library(tidyeval) g = mtcars %>% # ggplot(aes(wt, mpg)) + ggplot(aes(wt, mpg, color = fa…

seaborn(matplotlib)がまったくわからんからメモ

Rのggplot2を普段使っているため、Pythonのseaborn(matplotlib)がまじでよくわからん。俺たちは雰囲気でseabornをやっている。 中途半端にググってやりたいことに即したコードをコピペして・・・みたいなくそみたいなアンチパターンばかりしていていい加減効…